Bug 40423 - NPE Saving a file
Summary: NPE Saving a file
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 3.0 M2   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-07-17 15:49 EDT by Pascal Rapicault CLA
Modified: 2003-07-18 05:25 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 Pascal Rapicault CLA 2003-07-17 15:49:25 EDT
When I try to save a java file (which contains errors). I got a NPE.
Here is the stack trace:
!ENTRY org.eclipse.ui 4 4 Jul 17, 2003 15:41:19.124
!MESSAGE Save Failed
!ENTRY org.eclipse.ui 2 0 Jul 17, 2003 15:41:19.124
!MESSAGE Save Failed
!STACK 0
java.lang.NullPointerException
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.NullPointerException.<init>(NullPointerException.java:63)
	at 
org.eclipse.jdt.internal.compiler.problem.ProblemReporter.unnecessaryCast
(ProblemReporter.java:2919)
	at org.eclipse.jdt.internal.compiler.ast.CastExpression.resolveType
(CastExpression.java)
	at org.eclipse.jdt.internal.compiler.ast.ReturnStatement.resolve
(ReturnStatement.java)
	at 
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatement
s(AbstractMethodDeclaration.java)
	at 
org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements
(MethodDeclaration.java)
	at 
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve
(AbstractMethodDeclaration.java)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:887)
	at 
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve
(CompilationUnitDeclaration.java:270)
	at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:589)
	at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process
(CompilationUnitProblemFinder.java:172)
	at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure
(CompilationUnit.java:139)
	at org.eclipse.jdt.internal.core.Openable.generateInfos
(Openable.java:198)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed
(JavaElement.java)
	at org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent
(CompilationUnit.java:899)
	at 
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation
(ReconcileWorkingCopyOperation.java:48)
	at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:365)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java)
	at org.eclipse.jdt.internal.core.JavaElement.runOperation
(JavaElement.java:484)
	at org.eclipse.jdt.internal.core.CompilationUnit.reconcile
(CompilationUnit.java:1011)
	at org.eclipse.jdt.internal.core.CompilationUnit.reconcile
(CompilationUnit.java:988)
	at org.eclipse.jdt.internal.core.CompilationUnit.reconcile
(CompilationUnit.java:981)
	at 
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.doSaveDoc
ument(CompilationUnitDocumentProvider.java:900)
	at org.eclipse.ui.texteditor.AbstractDocumentProvider.saveDocument
(AbstractDocumentProvider.java:459)
	at org.eclipse.ui.texteditor.AbstractTextEditor$11.execute
(AbstractTextEditor.java:3111)
	at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run
(WorkspaceModifyOperation.java:71)
	at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1595)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run
(WorkspaceModifyOperation.java:85)
	at org.eclipse.ui.texteditor.AbstractTextEditor.performSaveOperation
(AbstractTextEditor.java:3131)
	at 
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSaveOperatio
n(CompilationUnitEditor.java:765)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave
(CompilationUnitEditor.java:829)
	at org.eclipse.ui.internal.EditorManager$11.run(EditorManager.java:1090)
	at org.eclipse.ui.internal.EditorManager$8.run(EditorManager.java:960)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread
(ModalContext.java:302)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:252)
	at org.eclipse.jface.window.ApplicationWindow$1.run
(ApplicationWindow.java:444)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java)
	at org.eclipse.jface.window.ApplicationWindow.run
(ApplicationWindow.java:441)
	at org.eclipse.ui.internal.WorkbenchWindow.run
(WorkbenchWindow.java:1617)
	at org.eclipse.ui.internal.EditorManager.runProgressMonitorOperation
(EditorManager.java:966)
	at org.eclipse.ui.internal.EditorManager.savePart
(EditorManager.java:1095)
	at org.eclipse.ui.internal.WorkbenchPage.savePart
(WorkbenchPage.java:2371)
	at org.eclipse.ui.internal.WorkbenchPage.saveEditor
(WorkbenchPage.java:2383)
	at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:57)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:842)
	at org.eclipse.ui.internal.commands.old.ActionHandler.execute
(ActionHandler.java:39)
	at org.eclipse.ui.internal.commands.old.ContextAndHandlerManager.pressed
(ContextAndHandlerManager.java:180)
	at 
org.eclipse.ui.internal.commands.old.ContextAndHandlerManager.access$1
(ContextAndHandlerManager.java:165)
	at 
org.eclipse.ui.internal.commands.old.ContextAndHandlerManager$7.widgetSelected
(ContextAndHandlerManager.java:274)
	at org.eclipse.ui.internal.AcceleratorMenu$2.handleEvent
(AcceleratorMenu.java:68)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1630)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:1613)
	at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:858)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
	at java.lang.reflect.AccessibleObject.invokeL(AccessibleObject.java:207)
	at java.lang.reflect.Method.invoke(Method.java:271)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:291)
	at org.eclipse.core.launcher.Main.run(Main.java:747)
	at org.eclipse.core.launcher.Main.main(Main.java:583)
Comment 1 Philipe Mulet CLA 2003-07-17 16:30:38 EDT
Can you attach the java file ?
Comment 2 Olivier Thomann CLA 2003-07-17 16:39:12 EDT
It is a fairly big test case. I am investigating and I try to reproduce it first
and then to reduce it.
Comment 3 Olivier Thomann CLA 2003-07-17 17:28:02 EDT
The change on org.eclipse.jdt.internal.compiler.ast.MessageSend to initialize
the resolveType fixed it. This is new in HEAD since build 200307170837. See
version 1.45 of org.eclipse.jdt.internal.compiler.ast.MessageSend.
Comment 4 Olivier Thomann CLA 2003-07-17 17:51:13 EDT
Fixed and released in HEAD.
Regression test added.
Comment 5 Philipe Mulet CLA 2003-07-17 18:01:09 EDT
Forgot to assign
Comment 6 Philipe Mulet CLA 2003-07-17 18:02:08 EDT
Problem was similar to bug 40288, but in straight cast mode (not an argument)

X x = (X) zork();

Fixed
Comment 7 Philipe Mulet CLA 2003-07-17 18:02:25 EDT
Re
Comment 8 Philipe Mulet CLA 2003-07-17 18:02:48 EDT
Fixed
Comment 9 David Audel CLA 2003-07-18 05:25:06 EDT
Verified.