Bug 132494 - JavaModelException opening up class file in non java project
Summary: JavaModelException opening up class file in non java project
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.2   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: 2006-03-19 22:59 EST by Brock Janiczak CLA
Modified: 2006-03-28 05:06 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 Brock Janiczak CLA 2006-03-19 22:59:13 EST
Version: 3.2.0
Build id: I20060223-1656

1. Create a new simple project
2. Copy a class file into the project
3. Attempt to open the class file
4. Observe: A dialog box should pop up and the following shoudl appear in the log

The editor looks ok, but the source attachment section is empty (which is as much as you would expect to get)

Java Model Exception: Java Model Status [Reports does not exist]
at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:483)
at org.eclipse.jdt.internal.core.JavaModelManager.getPerProjectInfoCheckExistence(JavaModelManager.java:1406)
at org.eclipse.jdt.internal.core.JavaProject.getPerProjectInfo(JavaProject.java:1902)
at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2040)
at org.eclipse.jdt.internal.core.PackageFragmentRoot.getRawClasspathEntry(PackageFragmentRoot.java:587)
at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor$SourceAttachmentForm.createSourceAttachmentControls(ClassFileEditor.java:222)
at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor$SourceAttachmentForm.createControl(ClassFileEditor.java:197)
at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.verifyInput(ClassFileEditor.java:700)
at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.createPartControl(ClassFileEditor.java:657)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:591)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:367)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:555)
at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:212)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2392)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2325)
at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:2317)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2303)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2298)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2283)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:384)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:347)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:275)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:139)
at org.eclipse.jdt.internal.ui.actions.OpenActionUtil.open(OpenActionUtil.java:49)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:181)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:165)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:267)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:243)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:296)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(PackageExplorerPart.java:650)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:780)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:816)
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.StructuredViewer.fireOpen(StructuredViewer.java:778)
at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1009)
at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1108)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:244)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:239)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:278)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:925)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3287)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2907)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1899)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1863)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:417)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:99)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:374)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
Comment 1 Dani Megert CLA 2006-03-20 09:55:30 EST
This is caused by Java Model:

Up to 3.1.x the Java Model threw a JavaModelException when calling
  IClassFile.getSourceRange()
now in 3.2 this no longer fails but returns null.

Added an additional guard on our side and moving to JDT Core to comment on the API change.
Comment 2 Jerome Lanneluc CLA 2006-03-27 05:21:12 EST
Changed ClassFile#getBuffer() to throw a JavaModelException if the returned buffer is null.

Added regression test ClassFileTests#testSourceRangeNonJavaProject().
Comment 3 Maxime Daniel CLA 2006-03-28 05:06:46 EST
Verified for 3.2M6 using build I20060327-0010.