Bug 100919 - Closing or deleting projects leads to Java model error
Summary: Closing or deleting projects leads to Java model error
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 3.2 M6   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-06-20 14:06 EDT by Douglas Pollock CLA
Modified: 2006-03-27 09:22 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Douglas Pollock CLA 2005-06-20 14:06:45 EDT
3.1 RC3, Solaris 8, Motif, CDE

I have all the Platform/UI code and its dependencies checked out.  Then, to
isolate one particular change, I close all projects except one,
"org.eclipse.ui.tests".  This leads to the following errors:


!SESSION 2005-06-20 13:08:00.684 -----------------------------------------------
eclipse.buildId=I20050617-1618
java.version=1.4.2
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=solaris, ARCH=sparc, WS=motif, NL=en_US
Command-line arguments:  -os solaris -ws motif -arch sparc -data workspace

!ENTRY org.eclipse.core.resources 1 1 2005-06-20 13:08:09.367
!MESSAGE Could not load library: libcore_3_1_0.so.  This library provides
platform-specific optimizations for certain file system operations.  This
library is not present on all platforms, so this may not be an error.  The
resources plug-in will safely fall back to using java.io.File functionality.

!ENTRY org.eclipse.jdt.ui 4 0 2005-06-20 13:47:37.866
!MESSAGE Error in JDT Core during reconcile
!STACK 1
Java Model Exception: Java Model Status [org.eclipse.ui.workbench does not
exist]
	at
org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:468)
	at
org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:328)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:233)
	at
org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:488)
	at
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:232)
	at
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:218)
	at
org.eclipse.jdt.internal.core.JavaProject.getJavaProjectElementInfo(JavaProject.java:1513)
	at
org.eclipse.jdt.internal.core.JavaProject.newNameLookup(JavaProject.java:2419)
	at
org.eclipse.jdt.internal.core.SearchableEnvironment.<init>(SearchableEnvironment.java:60)
	at
org.eclipse.jdt.internal.core.SearchableEnvironment.<init>(SearchableEnvironment.java:74)
	at
org.eclipse.jdt.internal.core.CancelableNameEnvironment.<init>(CancelableNameEnvironment.java:26)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:148)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:214)
	at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:79)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777)
	at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1081)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:98)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
	at org.eclipse.core.runtime.Platform.run(Platform.java:783)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:147)
	at
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86)
	at
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94)
	at
org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75)
	at
org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:339)
	at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204)
!SUBENTRY 1 org.eclipse.jdt.core 4 969 2005-06-20 13:47:37.870
!MESSAGE org.eclipse.ui.workbench does not exist

!ENTRY org.eclipse.jdt.ui 4 0 2005-06-20 13:47:37.877
!MESSAGE Error in JDT Core during reconcile
!STACK 1
Java Model Exception: Java Model Status [org.eclipse.ui.workbench does not
exist]
	at
org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:468)
	at
org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:328)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:233)
	at
org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:488)
	at
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:232)
	at
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:218)
	at
org.eclipse.jdt.internal.core.JavaProject.getJavaProjectElementInfo(JavaProject.java:1513)
	at
org.eclipse.jdt.internal.core.JavaProject.newNameLookup(JavaProject.java:2419)
	at
org.eclipse.jdt.internal.core.SearchableEnvironment.<init>(SearchableEnvironment.java:60)
	at
org.eclipse.jdt.internal.core.SearchableEnvironment.<init>(SearchableEnvironment.java:74)
	at
org.eclipse.jdt.internal.core.CancelableNameEnvironment.<init>(CancelableNameEnvironment.java:26)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:148)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:214)
	at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:79)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777)
	at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1081)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:104)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
	at org.eclipse.core.runtime.Platform.run(Platform.java:783)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:147)
	at
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86)
	at
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94)
	at
org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75)
	at
org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:339)
	at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204)
!SUBENTRY 1 org.eclipse.jdt.core 4 969 2005-06-20 13:47:37.879
!MESSAGE org.eclipse.ui.workbench does not exist
Comment 1 Jerome Lanneluc CLA 2005-06-21 04:44:37 EDT
A reconcile operation that needs a project being closed is running. We never
(even in 2.0) handled this case. 

We would either need a way to force the project close to wait for the reconcile
operation to finish before proceeding, or we would need to not log the error. 

Note that we only log the JavaModelException, the user would notice only if s/he
looked at the .log file.
Comment 2 Tod Creasey CLA 2005-06-21 08:12:20 EDT
You also get this case when you delete your projects from the workbench.

STEPS
1) Load org.eclipse.platform.doc.isv and org.eclipse.platform.doc.user
2) Delete them (delete contents too)

!ENTRY org.eclipse.jdt.ui 4 10001 2005-06-21 08:09:42.500
!MESSAGE Internal Error
!STACK 1
Java Model Exception: Java Model Status [org.eclipse.platform.doc.isv does not
exist]
	at
org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:468)
	at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:328)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:233)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:488)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:232)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:218)
	at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:173)
	at
org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoots(JavaProject.java:1706)
	at
org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester.isInferTypeArgumentsAvailable(RefactoringAvailabilityTester.java:386)
	at
org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester.isInferTypeArgumentsAvailable(RefactoringAvailabilityTester.java:413)
	at
org.eclipse.jdt.ui.actions.InferTypeArgumentsAction.selectionChanged(InferTypeArgumentsAction.java:97)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:210)
	at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(SelectionDispatchAction.java:205)
	at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:162)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
	at org.eclipse.core.runtime.Platform.run(Platform.java:783)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
	at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:160)
	at
org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1784)
	at
org.eclipse.jface.viewers.StructuredViewer.handleInvalidSelection(StructuredViewer.java:991)
	at
org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$PackageExplorerProblemTreeViewer.handleInvalidSelection(PackageExplorerPart.java:406)
	at
org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1213)
	at
org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$PackageExplorerProblemTreeViewer.preservingSelection(PackageExplorerPart.java:624)
	at
org.eclipse.jface.viewers.AbstractTreeViewer.remove(AbstractTreeViewer.java:1420)
	at
org.eclipse.jface.viewers.AbstractTreeViewer.remove(AbstractTreeViewer.java:1442)
	at
org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider$5.run(PackageExplorerContentProvider.java:640)
	at
org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider$7.run(PackageExplorerContentProvider.java:659)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:118)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3047)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2706)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
	at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
	at org.eclipse.core.launcher.Main.run(Main.java:973)
	at org.eclipse.core.launcher.Main.main(Main.java:948)
!SUBENTRY 1 org.eclipse.jdt.core 4 969 2005-06-21 08:09:42.515
!MESSAGE org.eclipse.platform.doc.isv does not exist

Comment 3 Douglas Pollock CLA 2005-06-21 15:02:07 EDT
Duplicate of Bug 98769?
Comment 4 Jerome Lanneluc CLA 2005-06-22 06:13:21 EDT
No, it is not a dup of bug 98769 (which is about refactoring attempting to use a
Java project that has been closed).
Comment 5 Jerome Lanneluc CLA 2006-03-01 10:48:57 EST
Changed ReconcileWorkingCopyOperation#makeConsistent(...) to catch the JavaModelException and ignore it if the project has lost it Java nature, is closed, or is removed.
Comment 6 Maxime Daniel CLA 2006-03-27 09:22:24 EST
Verified for 3.2M6 using build I20060327-0010.