| [news.eclipse.tools.emf] Re: [CDO] Deadlock in LRU cache? |
Sorry, due to wrapped lines I can't read the stack trace. Can you please attach it as a file?Hi,
can someone who is a little more into the LRU caching code confirm that this is a deadlock condition (it behaves like one ...), so I can open a bug?
Cheers /Eike
Thanks.
Thread [ModalContext] (Suspended) LRURevisionCache.removeHolder(RevisionHolder) line: 382 LRURevisionCache.access$1(LRURevisionCache, RevisionHolder) line:
380 LRURevisionCache$LRU.evict(LRURevisionHolder) line: 439 LRURevisionCache$LRU(LRURevisionList).eviction() line: 61 LRURevisionCache$LRU(LRURevisionList).add(DLRevisionHolder) line: 46 LRURevisionCache.addRevision(InternalCDORevision) line: 181 TwoLevelRevisionCache.addRevision(InternalCDORevision) line: 138 CDORevisionManagerImpl(CDORevisionResolverImpl).addCachedRevisionIfNotNull(InternalCDORevision)
line: 248 CDORevisionManagerImpl(CDORevisionResolverImpl).getRevision(CDOID,
int, boolean) line: 95 CDORevisionManagerImpl(CDORevisionResolverImpl).getRevision(CDOID,
int, boolean) line: 1 CDOViewImpl.getRevision(CDOID, boolean) line: 435 CDOViewImpl.createObject(CDOID) line: 574 CDOViewImpl.getObject(CDOID, boolean) line: 473 CDOViewImpl.convertIDToObject(Object) line: 705 CDOStore.get(InternalEObject, EStructuralFeature, int) line: 170 CDOObjectImpl$CDOStoreEList<E>.delegateGet(int) line: 928 CDOObjectImpl$CDOStoreEList<E>(DelegatingEList<E>).get(int) line:
396 DelegatingEList$EIterator<E1>.doNext() line: 1075 DelegatingEList$EIterator<E1>.next() line: 1062 ImportLinkXmlTask.getSnapshotFor(String, Date) line: 192 ImportLinkXmlTask.processBaseline(Baseline) line: 119 ImportLinkXmlTask.doTask() line: 72 ImportLinkXmlTask(AbstractRequipseTask).run(IProgressMonitor) line:
55 ModalContext$ModalContextThread.run() line: 121 Thread [main] (Suspended) LRURevisionHolder.stamp() line: 67 LRURevisionHolder.getRevision() line: 55 LRURevisionCache.getRevision(CDOID) line: 133 TwoLevelRevisionCache.getRevision(CDOID) line: 97 CDORevisionManagerImpl(CDORevisionResolverImpl).getRevision(CDOID,
int, boolean) line: 84 CDORevisionManagerImpl(CDORevisionResolverImpl).getRevision(CDOID,
int, boolean) line: 1 CDOViewImpl.getRevision(CDOID, boolean) line: 435 CDOViewImpl.createObject(CDOID) line: 574 CDOViewImpl.getObject(CDOID, boolean) line: 473 CDOViewImpl.getObject(CDOID) line: 440 CDOViewImpl.getObject(CDOID) line: 1 GeneralArtifactView$3$1.run() line: 247 RunnableLock.run() line: 35 UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 133 Display.runAsyncMessages(boolean) line: 3378 Display.readAndDispatch() line: 3036 ModalContext$ModalContextThread.block() line: 172 ModalContext.run(IRunnableWithProgress, boolean, IProgressMonitor,
Display) line: 370 WizardDialog.run(boolean, boolean, IRunnableWithProgress) line: 934 ImportLinkXmlWizard.performFinish() line: 41 WizardDialog.finishPressed() line: 742 WizardDialog.buttonPressed(int) line: 373 Dialog$2.widgetSelected(SelectionEvent) line: 624 TypedListener.handleEvent(Event) line: 228 EventTable.sendEvent(Event) line: 84 Button(Widget).sendEvent(Event) line: 1158 Display.runDeferredEvents() line: 3401 Display.readAndDispatch() line: 3033 WizardDialog(Window).runEventLoop(Shell) line: 825 WizardDialog(Window).open() line: 801 WizardHandler$Import.executeHandler(ExecutionEvent) line: 146 WizardHandler$Import(WizardHandler).execute(ExecutionEvent) line:
273 HandlerProxy.execute(ExecutionEvent) line: 281 Command.executeWithChecks(ExecutionEvent) line: 476 ParameterizedCommand.executeWithChecks(Object, Object) line: 508 HandlerService.executeCommand(ParameterizedCommand, Event) line: 169 SlaveHandlerService.executeCommand(ParameterizedCommand, Event)
line: 247 ActionFactory$WorkbenchCommandAction(CommandAction).runWithEvent(Event)
line: 157 ActionContributionItem.handleWidgetSelection(Event, boolean) line:
583 ActionContributionItem.access$2(ActionContributionItem, Event,
boolean) line: 500 ActionContributionItem$5.handleEvent(Event) line: 411 EventTable.sendEvent(Event) line: 84 MenuItem(Widget).sendEvent(Event) line: 1158 Display.runDeferredEvents() line: 3401 Display.readAndDispatch() line: 3033 Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 2382 Workbench.runUI() line: 2346 Workbench.access$4(Workbench) line: 2198 Workbench$5.run() line: 493 Realm.runWithDefault(Realm, Runnable) line: 288 Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 488 PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line:
149 IDEApplication.start(IApplicationContext) line: 113 EclipseAppHandle.run(Object) line: 193 EclipseAppLauncher.runApplication(Object) line: 110 EclipseAppLauncher.start(Object) line: 79 EclipseStarter.run(Object) line: 382 EclipseStarter.run(String[], Runnable) line: 179 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 597 Main.invokeFramework(String[], URL[]) line: 549 Main.basicRun(String[]) line: 504 Main.run(String[]) line: 1236 Main.main(String[]) line: 1212 Cheers,
Stefan