Bug 29197 - NullPointerException when compiling Class with an assert in a method of an inner class
Summary: NullPointerException when compiling Class with an assert in a method of an in...
Status: RESOLVED DUPLICATE of bug 28750
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows XP
: P3 critical (vote)
Target Milestone: 2.1 M5   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-01-09 05:31 EST by Simon Kent CLA
Modified: 2003-01-09 06:03 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Kent CLA 2003-01-09 05:31:31 EST
The following class causes a NullPointerException to be thrown:

public class AClass {
    
    private void aMethod() {
    	assert true : "hello";
    }
    
    private class AnInnerClass {
    	public void execute() {
    	    assert true : "hello";
    	}
    }
}

If the line containing the J2SE 1.4 assert is removed, compilation succeeds.

When the assert is uncommented, two symptoms occur:

1) When saving, a dialog appears- 
   Error: Save Failed:null
2) Try saving again, save succeeds, build starts, but fails- 
   Save Problems: Save could not be completed, Reason: Errors during build
   
These are the corresponding errors in the log file:
1)
   Details: !SESSION Jan 09, 2003 09:25:06.856 --------------------------------
-------------
java.version=1.4.0_01
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_GB
Command-line arguments: -os win32 -ws win32 -arch x86 -install file:C:/eclipse/
!ENTRY org.eclipse.ui 4 4 Jan 09, 2003 09:25:06.856
!MESSAGE Save Failed
!ENTRY org.eclipse.ui 2 0 Jan 09, 2003 09:25:06.876
!MESSAGE Save Failed
!STACK 0
java.lang.NullPointerException
	at org.eclipse.jdt.internal.compiler.ClassFile.addFieldInfo
(ClassFile.java:434)
	at org.eclipse.jdt.internal.compiler.ClassFile.addFieldInfos
(ClassFile.java:579)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode
(TypeDeclaration.java:694)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode
(TypeDeclaration.java:762)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode
(TypeDeclaration.java:709)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode
(TypeDeclaration.java:770)
	at 
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.generateCode
(CompilationUnitDeclaration.java:158)
	at org.eclipse.jdt.internal.compiler.Compiler.resolve
(Compiler.java:591)
	at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process
(CompilationUnitProblemFinder.java:204)
	at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure
(CompilationUnit.java:90)
	at org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent
(CompilationUnit.java:664)
	at org.eclipse.jdt.internal.core.WorkingCopy.reconcile
(WorkingCopy.java:446)
	at org.eclipse.jdt.internal.core.WorkingCopy.reconcile
(WorkingCopy.java:421)
	at 
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.doSaveDo
cument(CompilationUnitDocumentProvider.java:903)
	at org.eclipse.ui.texteditor.AbstractDocumentProvider.saveDocument
(AbstractDocumentProvider.java:454)
	at org.eclipse.ui.texteditor.AbstractTextEditor$11.execute
(AbstractTextEditor.java:2772)
	at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run
(WorkspaceModifyOperation.java:65)
	at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1564)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run
(WorkspaceModifyOperation.java:79)
	at org.eclipse.ui.texteditor.AbstractTextEditor.performSaveOperation
(AbstractTextEditor.java:2790)
	at 
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSaveOperati
on(CompilationUnitEditor.java:849)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave
(CompilationUnitEditor.java:913)
	at org.eclipse.ui.internal.EditorManager$11.run
(EditorManager.java:1032)
	at org.eclipse.ui.internal.EditorManager$8.run(EditorManager.java:901)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread
(ModalContext.java:296)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:246)
	at org.eclipse.jface.window.ApplicationWindow$1.run
(ApplicationWindow.java:432)
	at org.eclipse.swt.custom.BusyIndicator.showWhile
(BusyIndicator.java:65)
	at org.eclipse.jface.window.ApplicationWindow.run
(ApplicationWindow.java:429)
	at org.eclipse.ui.internal.WorkbenchWindow.run
(WorkbenchWindow.java:1174)
	at org.eclipse.ui.internal.EditorManager.runProgressMonitorOperation
(EditorManager.java:907)
	at org.eclipse.ui.internal.EditorManager.saveEditor
(EditorManager.java:1037)
	at org.eclipse.ui.internal.WorkbenchPage.saveEditor
(WorkbenchPage.java:2143)
	at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:30)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:769)
	at org.eclipse.ui.internal.WWinKeyBindingService.invoke
(WWinKeyBindingService.java:139)
	at org.eclipse.ui.internal.WWinKeyBindingService.pressed
(WWinKeyBindingService.java:120)
	at org.eclipse.ui.internal.WWinKeyBindingService$6.widgetSelected
(WWinKeyBindingService.java:376)
	at org.eclipse.ui.internal.AcceleratorMenu$2.handleEvent
(AcceleratorMenu.java:55)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:825)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1446)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:1429)
	at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:845)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462)
	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:324)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:247)
	at org.eclipse.core.launcher.Main.run(Main.java:703)
	at org.eclipse.core.launcher.Main.main(Main.java:539)

2)
!ENTRY org.eclipse.core.resources 4 2 Jan 09, 2003 09:25:12.313
!MESSAGE Problems occurred when invoking code from plug-
in: "org.eclipse.core.resources".
!STACK 0
java.lang.NullPointerException
	at org.eclipse.jdt.internal.compiler.ClassFile.addFieldInfo
(ClassFile.java:434)
	at org.eclipse.jdt.internal.compiler.ClassFile.addFieldInfos
(ClassFile.java:579)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode
(TypeDeclaration.java:694)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode
(TypeDeclaration.java:762)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode
(TypeDeclaration.java:709)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode
(TypeDeclaration.java:770)
	at 
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.generateCode
(CompilationUnitDeclaration.java:158)
	at org.eclipse.jdt.internal.compiler.Compiler.process
(Compiler.java:543)
	at org.eclipse.jdt.internal.compiler.Compiler.compile
(Compiler.java:337)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile
(AbstractImageBuilder.java:194)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile
(AbstractImageBuilder.java:144)
	at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build
(IncrementalImageBuilder.java:106)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas
(JavaBuilder.java:190)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build
(JavaBuilder.java:118)
	at org.eclipse.core.internal.events.BuildManager$2.run
(BuildManager.java:384)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:852)
	at org.eclipse.core.runtime.Platform.run(Platform.java:413)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:120)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:176)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:186)
	at org.eclipse.core.internal.events.BuildManager$1.run
(BuildManager.java:146)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:852)
	at org.eclipse.core.runtime.Platform.run(Platform.java:413)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:160)
	at org.eclipse.core.internal.events.BuildManager.build
(BuildManager.java:211)
	at org.eclipse.core.internal.resources.Workspace.endOperation
(Workspace.java:861)
	at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1569)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run
(WorkspaceModifyOperation.java:79)
	at org.eclipse.ui.texteditor.AbstractTextEditor.performSaveOperation
(AbstractTextEditor.java:2790)
	at 
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSaveOperati
on(CompilationUnitEditor.java:849)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave
(CompilationUnitEditor.java:913)
	at org.eclipse.ui.internal.EditorManager$11.run
(EditorManager.java:1032)
	at org.eclipse.ui.internal.EditorManager$8.run(EditorManager.java:901)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread
(ModalContext.java:296)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:246)
	at org.eclipse.jface.window.ApplicationWindow$1.run
(ApplicationWindow.java:432)
	at org.eclipse.swt.custom.BusyIndicator.showWhile
(BusyIndicator.java:65)
	at org.eclipse.jface.window.ApplicationWindow.run
(ApplicationWindow.java:429)
	at org.eclipse.ui.internal.WorkbenchWindow.run
(WorkbenchWindow.java:1174)
	at org.eclipse.ui.internal.EditorManager.runProgressMonitorOperation
(EditorManager.java:907)
	at org.eclipse.ui.internal.EditorManager.saveEditor
(EditorManager.java:1037)
	at org.eclipse.ui.internal.WorkbenchPage.saveEditor
(WorkbenchPage.java:2143)
	at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:30)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:769)
	at org.eclipse.ui.internal.WWinKeyBindingService.invoke
(WWinKeyBindingService.java:139)
	at org.eclipse.ui.internal.WWinKeyBindingService.pressed
(WWinKeyBindingService.java:120)
	at org.eclipse.ui.internal.WWinKeyBindingService$6.widgetSelected
(WWinKeyBindingService.java:376)
	at org.eclipse.ui.internal.AcceleratorMenu$2.handleEvent
(AcceleratorMenu.java:55)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:825)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1446)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:1429)
	at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:845)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462)
	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:324)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:247)
	at org.eclipse.core.launcher.Main.run(Main.java:703)
	at org.eclipse.core.launcher.Main.main(Main.java:539)


I would finally add, that when using asserts elsewhere, I have had no 
problems.  This code compiled okay under v2.0.1 with the rest of the 
environment unchanged.
Comment 1 Philipe Mulet CLA 2003-01-09 06:03:04 EST
Duplicate of bug 28750. FYI we recently made a change to assertion support 
which exposed this long living bug (collision in between this$0 and class 
literal synthetic field).

This is fixed in latest and will be released in next integration build.
We will issue a patch in the meantime.
Comment 2 Philipe Mulet CLA 2003-01-09 06:03:26 EST

*** This bug has been marked as a duplicate of 28750 ***