Bug 73286 - NPE on save
Summary: NPE on save
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Linux
: P3 major with 1 vote (vote)
Target Milestone: 3.1 M2   Edit
Assignee: Kent Johnson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-09-04 18:57 EDT by Richard CLA
Modified: 2004-09-23 12:41 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.