Community
Participate
Working Groups
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)
Can you attach the java file ?
It is a fairly big test case. I am investigating and I try to reproduce it first and then to reduce it.
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.
Fixed and released in HEAD. Regression test added.
Forgot to assign
Problem was similar to bug 40288, but in straight cast mode (not an argument) X x = (X) zork(); Fixed
Re
Fixed
Verified.