Bug 29029 - Use of "assert" in inner class causes NullPointerException in compiler
Summary: Use of "assert" in inner class causes NullPointerException in compiler
Status: RESOLVED DUPLICATE of bug 28750
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.1   Edit
Hardware: PC Linux-GTK
: P3 normal (vote)
Target Milestone: 2.1 M5   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-01-06 09:37 EST by Dominic Seymour CLA
Modified: 2003-01-17 07:42 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 Dominic Seymour CLA 2003-01-06 09:37:46 EST
On 2.1M4 the Java compiler seems to break with an NPE when it encounters an
assert statement inside an non-static inner class. For me, the following minimal
code reproduces the problem. The content of the assert expression doesn't seem
to make any difference. Making the inner class static removes the problem.

public class AssertBreaker {   
    class Inner {
        public void something() {
            assert true;                       
        }    
    }  
}

The exception produced is:

!ENTRY org.eclipse.ui 2 0 Jan 06, 2003 14:32:06.406
!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.doSaveDocument(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.performSaveOperation(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:868)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1456)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1278)
	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)
Comment 1 Kent Johnson CLA 2003-01-06 10:43:14 EST

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