Bug 73286

Summary: NPE on save
Product: [Eclipse Project] JDT Reporter: Richard <rich_jdnc>
Component: CoreAssignee: Kent Johnson <kent_johnson>
Status: VERIFIED FIXED QA Contact:
Severity: major    
Priority: P3    
Version: 3.0   
Target Milestone: 3.1 M2   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Richard CLA 2004-09-04 18:57:45 EDT
I have a file named AbstractDataModel in the package
org.jdesktop.jdnc.incubator.rbair.swing.data. I cannot save the file when it
contains the proper package statement. However, if it has a different package
statement, such as org.jdesktop.jdnc.incubator.rbair.data, or event
org.jdesktop.jdnc.incubator.rbair.swing.dat, it works fine. It seems like the
length of the package statement is choking eclipse.

The actual source file can be viewed out of cvs at
https://jdnc-incubator.dev.java.net/source/browse/jdnc-incubator/src/java/org/jdesktop/jdnc/incubator/rbair/swing/data/AbstractDataModel.java

I'm using build eclipse-SDK-N20040831-linux-gtk.zip. Here's the exception
stacktrace from $ECLIPSE_HOME/workspace/.metadata/.log

java.lang.NullPointerException
        at
org.eclipse.jdt.internal.compiler.lookup.MethodVerifier15.hasBoundedParameters(MethodVerifier15.java:127)
        at
org.eclipse.jdt.internal.compiler.lookup.MethodVerifier15.checkAgainstInheritedMethods(MethodVerifier15.java:52)
        at
org.eclipse.jdt.internal.compiler.lookup.MethodVerifier.checkMethods(MethodVerifier.java:245)
        at
org.eclipse.jdt.internal.compiler.lookup.MethodVerifier.verify(MethodVerifier.java:533)
        at
org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.verifyMethods(SourceTypeBinding.java:1132)
        at
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.verifyMethods(CompilationUnitScope.java:625)
        at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:561)
       at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:175)
        at
org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:148)
        at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:202)
        at
org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:546)
        at
org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:979)
        at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:58)
        at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
        at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:739)
        at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1100)
        at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1063)
        at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.commitWorkingCopy(CompilationUnitDocumentProvider.java:886)
        at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$2.execute(CompilationUnitDocumentProvider.java:951)
        at
org.eclipse.ui.editors.text.TextFileDocumentProvider$DocumentProviderOperation.run(TextFileDocumentProvider.java:126)
        at
org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:68)
        at
org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:98)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1674)
        at
org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:110)
        at
org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:73)
        at
org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:63)
        at
org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:440)
        at
org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:699)
        at
org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:3539)
        at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1357)
        at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1410)
        at org.eclipse.ui.internal.EditorManager$12.run(EditorManager.java:1325)
       at org.eclipse.ui.internal.EditorManager$10.run(EditorManager.java:1164)
       at
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:322)
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:269)
        at
org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:624)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
       at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:621)
        at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1842)
        at
org.eclipse.ui.internal.EditorManager.runProgressMonitorOperation(EditorManager.java:1170)
        at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1330)
        at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:2626)
        at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:2639)
        at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:67)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:988)
        at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:946)
        at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:896)
        at
org.eclipse.jface.action.ActionContributionItem$8.handleEvent(ActionContributionItem.java:851)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:973)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2643)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2346)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1435)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1406)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:263)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
        at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
        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:585)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
        at org.eclipse.core.launcher.Main.run(Main.java:684)
        at org.eclipse.core.launcher.Main.main(Main.java:668)
Comment 1 Kent Johnson CLA 2004-09-08 13:13:31 EDT
When you change the package statement, do you not get an error saying the type 
is defined in the wrong package?
Comment 2 Richard CLA 2004-09-08 14:37:51 EDT
When I give it the incorrect package name it tells me so, as it should. However,
it saves without a hitch (also, as it should). But when I give it the proper
package name, the error goes away but I get the NPE on save
Comment 3 Richard CLA 2004-09-08 14:38:50 EDT
I should also mention that this is a project backed by cvs (using Eclipse for
the cvs client)
Comment 4 Kent Johnson CLA 2004-09-09 14:08:43 EDT
We don't process the file after we detect the invalid package statement... 
that's why it saves in that case.

This problem is fixed. Needed a null check on the ParameterizedType's 
arguments.
Comment 5 Frederic Fusier CLA 2004-09-23 12:41:50 EDT
Verified for 3.1 M2 with build I200409230800.