Community
Participate
Working Groups
AK (9/24/2001 6:30:21 PM) in event loop. i was catching up with stream hard to give detailed steps, really - never seen it before Log: Mon Sep 24 18:29:13 GMT+02:00 2001 4 org.eclipse.ui 0 Element not found: /org.eclipse.jdt.ui/Eclipse Java UI/org/eclipse/jdt/internal/ui/reorg. java.lang.IllegalArgumentException: Element not found: /org.eclipse.jdt.ui/Eclipse Java UI/org/eclipse/jdt/internal/ui/reorg. at org.eclipse.core.internal.watson.ElementTree.elementNotFound(ElementTree.java(Compiled Code)) at org.eclipse.core.internal.watson.ElementTree.getChildIDs(ElementTree.java(Compiled Code)) at org.eclipse.core.internal.resources.Container.getChildren(Container.java(Compiled Code)) at org.eclipse.core.internal.resources.Container.getChildren(Container.java(Compiled Code)) at org.eclipse.core.internal.resources.Container.getChildren(Container.java(Compiled Code)) at org.eclipse.core.internal.resources.Container.members(Container.java(Compiled Code)) at org.eclipse.core.internal.resources.Resource.accept(Resource.java(Compiled Code)) at org.eclipse.core.internal.resources.Resource.accept(Resource.java(Compiled Code)) at org.eclipse.core.internal.resources.Resource.accept(Resource.java(Compiled Code)) at org.eclipse.core.internal.resources.Resource.accept(Resource.java(Compiled Code)) at org.eclipse.core.internal.resources.Resource.accept(Resource.java(Compiled Code)) at org.eclipse.core.internal.resources.Resource.accept(Resource.java(Compiled Code)) at org.eclipse.core.internal.resources.Resource.accept(Resource.java(Compiled Code)) at org.eclipse.vcm.internal.ui.VCMLabelDecorator.isOutgoing(VCMLabelDecorator.java(Compiled Code)) at org.eclipse.vcm.internal.ui.VCMLabelDecorator.decorateText(VCMLabelDecorator.java(Compiled Code)) at org.eclipse.jface.viewers.DecoratingLabelProvider.getText(DecoratingLabelProvider.java(Compiled Code)) at org.eclipse.jface.viewers.TreeViewer.doUpdateItem(TreeViewer.java(Compiled Code)) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java(Compiled Code)) at org.eclipse.jface.viewers.StructuredViewer.update(StructuredViewer.java(Compiled Code)) at org.eclipse.jface.viewers.StructuredViewer.update(StructuredViewer.java(Compiled Code)) at org.eclipse.jface.viewers.StructuredViewer.handleLabelProviderChanged(StructuredViewer.java(Compiled Code)) at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged(ContentViewer.java(Compiled Code)) at org.eclipse.jface.viewers.LabelProvider.fireLabelProviderChanged(LabelProvider.java(Compiled Code)) at org.eclipse.vcm.internal.ui.VCMLabelDecorator.fireLabelUpdates(VCMLabelDecorator.java(Compiled Code)) at org.eclipse.vcm.internal.ui.VCMLabelDecorator$5.run(VCMLabelDecorator.java:285) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java(Compiled Code)) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java(Compiled Code)) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java(Compiled Code)) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code)) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java(Compiled Code)) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:258) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:335) at org.eclipse.vcm.internal.ui.sync.SyncCompareInput.run(SyncCompareInput.java:528) at org.eclipse.vcm.internal.ui.sync.SyncCompareInput.sync(SyncCompareInput.java:556) at org.eclipse.vcm.internal.ui.sync.MergeAction.run(MergeAction.java:71) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:407) at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContributionItem.java(Compiled Code)) at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java(Compiled Code)) at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java(Compiled Code)) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code)) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code)) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java(Compiled Code)) at org.eclipse.ui.internal.Workbench.run(Workbench.java:656) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:815) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:433) at org.eclipse.core.launcher.Main.main(Main.java:306) NOTES: EG (9/24/2001 8:05:36 AM) haven't seen this neither moving to CORE fyi. JohnA (9/25/2001 10:30:54 AM) This could be a concurrency problem. Since the tree is not locked during visitor traversal, another thread could delete a container between the existence check in Container#members() and ElementTree#getChildren(), causing the above exception. Minimally we should be catching the IllegalArgumentException thrown by the tree layer and throwing a core exception. At least then a message would get back to the user saying "Resource /foo/... does not exist", and they would know to redo the operation they were trying.
PRODUCT VERSION: 136
Added some protective code to make it safe during concurrent access. Since this method can be called from many places, some of which don't expect exceptions, I just return an empty set of children if the resource has been replaced concurrently during the call. This way visitors won't fail unneccesarily. Tested and released into HEAD. No readme or buildnotes needed.
Fixed in v211.