Bug 3442

Summary: NPE in SourceElementParser (1GL496I)
Product: [Eclipse Project] JDT Reporter: Martin Aeschlimann <martinae>
Component: CoreAssignee: Olivier Thomann <Olivier_Thomann>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P2    
Version: 2.0   
Target Milestone: 2.0 M1   
Hardware: All   
OS: Windows NT   
Whiteboard:

Description Martin Aeschlimann CLA 2001-10-10 22:55:11 EDT
MA (05.10.2001 11:14:10)
1. Save the following source
package org.eclipse.jdt.ui.examples;


 *      final int[] index = new int[]{0};
 *      add.addListener(SWT.Selection, new Listener() {
 *              


2 org.eclipse.ui 0 Save Failed
java.lang.NullPointerException
	at org.eclipse.jdt.internal.compiler.SourceElementParser.notifySourceElementRequestor(SourceElementParser.java(Compiled Code))
	at org.eclipse.jdt.internal.compiler.SourceElementParser.notifySourceElementRequestor(SourceElementParser.java(Compiled Code))
	at org.eclipse.jdt.internal.compiler.SourceElementParser.endParse(SourceElementParser.java(Compiled Code))
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java(Compiled Code))
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java(Compiled Code))
	at org.eclipse.jdt.internal.compiler.SourceElementParser.parseCompilationUnit(SourceElementParser.java(Compiled Code))
	at org.eclipse.jdt.internal.core.CompilationUnit.generateInfos(CompilationUnit.java(Compiled Code))
	at org.eclipse.jdt.internal.core.Openable.buildStructure(Openable.java(Compiled Code))
	at org.eclipse.jdt.internal.core.WorkingCopy.reconcile(WorkingCopy.java(Compiled Code))
	at org.eclipse.jdt.internal.core.WorkingCopy.reconcile(WorkingCopy.java(Compiled Code))
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.doSaveDocument(CompilationUnitDocumentProvider.java:268)
	at org.eclipse.ui.texteditor.AbstractDocumentProvider.saveDocument(AbstractDocumentProvider.java:357)
	at org.eclipse.ui.texteditor.AbstractTextEditor$7.execute(AbstractTextEditor.java:1286)
	at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:64)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java(Compiled Code))
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:78)
	at org.eclipse.ui.texteditor.AbstractTextEditor.performSaveOperation(AbstractTextEditor.java:1304)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSaveOperation(CompilationUnitEditor.java:209)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:257)
	at org.eclipse.ui.internal.EditorManager$9.run(EditorManager.java:712)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:296)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:249)
	at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:335)
	at org.eclipse.ui.internal.EditorManager.runProgressMonitorOperation(EditorManager.java:570)
	at org.eclipse.ui.internal.EditorManager.saveEditor(EditorManager.java:717)
	at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:1227)
	at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:31)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java(Compiled Code))
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContributionItem.java(Compiled Code))
	at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java(Compiled Code))
	at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java(Compiled Code))
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:658)
	at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:820)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:151)
	at org.eclipse.core.launcher.Main.run(Main.java:433)
	at org.eclipse.core.launcher.UIMain.main(UIMain.java:52)



NOTES:
EG (10.10.2001 22:06:22)
	moving to JCORE
Comment 1 Olivier Thomann CLA 2001-10-15 13:31:08 EDT
Could you please be a little bit more specific on the source I have to save in 
order to be able to reproduce the problem?

Right now it is rather incomplete.
Comment 2 Martin Aeschlimann CLA 2001-10-18 10:53:08 EDT
The problem IS the incomplete source.
Just save the (incomplete) source, and you will get the walkback.
-----
package org.eclipse.jdt.ui.examples;


 *      final int[] index = new int[]{0};
 *      add.addListener(SWT.Selection, new Listener() {
 *            
------  
Comment 3 Olivier Thomann CLA 2001-10-18 12:13:24 EDT
The SourceElementParser retrieved a AnonymousDeclaration from this incomplete 
source with no allocation attached. The source didn't check that the allocation 
could be null before it tried to retrieve the type of the allocation expression.
Fixed for 206.
Comment 4 DJ Houghton CLA 2001-10-29 17:14:27 EST
PRODUCT VERSION:
	203_02