Bug 33748

Summary: Cannot open working copy on .java file in simple project
Product: [Eclipse Project] JDT Reporter: Jerome Lanneluc <jerome_lanneluc>
Component: CoreAssignee: Jerome Lanneluc <jerome_lanneluc>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 2.1   
Target Milestone: 2.1 RC2   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description Jerome Lanneluc CLA 2003-03-04 09:25:45 EST
Build 20030304

1. Create simple project Test
2. Create file Test/X.java
Observe: When the Java editor opens you get the following stack trace in the 
log:
Java Model Exception: Java Model Status [Test does not exist.]
        at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException
(JavaElement.java:475)
        at 
org.eclipse.jdt.internal.core.JavaModelManager.getPerProjectInfoCheckExistence
(JavaModelManager.java:964)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1454)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1439)
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:298)
        at org.eclipse.jdt.internal.core.WorkingCopy.getElementInfo
(WorkingCopy.java:169)
        at org.eclipse.jdt.internal.core.JavaElement.getChildren
(JavaElement.java:252)
        at 
org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ChildrenProvider.getChild
ren(JavaOutlinePage.java:257)
        at 
org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ChildrenProvider.getEleme
nts(JavaOutlinePage.java:283)
        at org.eclipse.jface.viewers.StructuredViewer.getRawChildren
(StructuredViewer.java:505)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren
(AbstractTreeViewer.java:642)
        at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren
(StructuredViewer.java:454)
        at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren
(StructuredViewer.java:555)
        at org.eclipse.jface.viewers.AbstractTreeViewer$1.run
(AbstractTreeViewer.java:299)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:65)
        at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren
(AbstractTreeViewer.java:287)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel
(AbstractTreeViewer.java:824)
        at 
org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$JavaOutlineViewer.interna
lExpandToLevel(JavaOutlinePage.java:395)
        at org.eclipse.jface.viewers.AbstractTreeViewer$5.run
(AbstractTreeViewer.java:719)
        at org.eclipse.jface.viewers.StructuredViewer.preservingSelection
(StructuredViewer.java:798)
        at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged
(AbstractTreeViewer.java:710)
        at org.eclipse.jface.viewers.ContentViewer.setInput
(ContentViewer.java:232)
        at org.eclipse.jface.viewers.StructuredViewer.setInput
(StructuredViewer.java:988)
        at org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage.createControl
(JavaOutlinePage.java:950)
        at org.eclipse.ui.views.contentoutline.ContentOutline.doCreatePage
(ContentOutline.java:125)
        at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:306)
        at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:561)
        at org.eclipse.ui.views.contentoutline.ContentOutline.partBroughtToTop
(ContentOutline.java:191)
        at org.eclipse.ui.internal.PartListenerList$2.run
(PartListenerList.java:63)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:867)
        at org.eclipse.core.runtime.Platform.run(Platform.java:413)
        at org.eclipse.ui.internal.PartListenerList.firePartBroughtToTop
(PartListenerList.java:61)
        at org.eclipse.ui.internal.WorkbenchPage.firePartBroughtToTop
(WorkbenchPage.java:1188)
        at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor
(WorkbenchPage.java:2056)
        at org.eclipse.ui.internal.WorkbenchPage.access$6
(WorkbenchPage.java:1978)
        at org.eclipse.ui.internal.WorkbenchPage$8.run(WorkbenchPage.java:1965)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:65)
        at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:1960)
        at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:1865)
        at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor
(EditorUtility.java:129)
        at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor
(EditorUtility.java:102)
        at org.eclipse.jdt.internal.ui.actions.OpenActionUtil.open
(OpenActionUtil.java:47)
        at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:158)
        at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:147)
        at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun
(SelectionDispatchAction.java:191)
        at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run
(SelectionDispatchAction.java:169)
        at 
org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen
(PackageExplorerActionGroup.java:323)
        at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$3.open
(PackageExplorerPart.java:318)
        at org.eclipse.jface.viewers.StructuredViewer$2.run
(StructuredViewer.java:397)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:867)
        at org.eclipse.core.runtime.Platform.run(Platform.java:413)
        at org.eclipse.jface.viewers.StructuredViewer.fireOpen
(StructuredViewer.java:395)
        at org.eclipse.jface.viewers.StructuredViewer.handleOpen
(StructuredViewer.java:602)
        at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen
(StructuredViewer.java:691)
        at org.eclipse.jface.util.OpenStrategy.fireOpenEvent
(OpenStrategy.java:203)
        at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:198)
        at org.eclipse.jface.util.OpenStrategy$1.mouseSelectItem
(OpenStrategy.java:337)
        at org.eclipse.jface.util.OpenStrategy$1.handleEvent
(OpenStrategy.java:305)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:836)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1775)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1483)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1271)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:1254)
        at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:845)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
        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.basicRun(Main.java:247)
        at org.eclipse.core.launcher.Main.run(Main.java:703)
        at org.eclipse.core.launcher.Main.main(Main.java:539)
Comment 1 Philipe Mulet CLA 2003-03-04 10:03:59 EST
This is a consequence of fixing bug 31799. Since no per project info is 
incorrectly cached any longer, then this issue is now detected.

Must fix to preserve special opening rules for working copies outside the 
classpath.
Comment 2 Jerome Lanneluc CLA 2003-03-04 10:41:22 EST
Added catch block in JavaElement.getElementInfo() to handle projects that don't 
have the Java nature and added regression test 
WorkingCopyNotInClasspathTests.testSimpleProject()
Comment 3 David Audel CLA 2003-03-10 11:02:37 EST
Verified.