Bug 5616 - NPE when compiling invalid code defining a array of strings
Summary: NPE when compiling invalid code defining a array of strings
Status: RESOLVED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows 2000
: P1 normal (vote)
Target Milestone: 2.0 M1   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-11-07 10:51 EST by Olivier Thomann CLA
Modified: 2002-01-11 09:13 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 Olivier Thomann CLA 2001-11-07 10:51:44 EST
Reported on EC:

Compiling this code leads to a NPE. See stack trace below.

===== START SOURCE =====
import javax.swing.table.AbstractTableModel;
  public class MyTableModel extends AbstractTableModel {
    private String stuff = {
      {"A","B","C","D","E","F"},
      {"A","B","C","D","E","F"},
      {"A","B","C","D","E","F"}};
  public int getRowCount() {
    return stuff.length;
  }
  public int getColumnCount() {
    return stuff[0].length;
  }
  public Object getValueAt(int r, int c) {
    return stuff[r][c];
  }
}
===== END SOURCE =====

The problem has been reproduced using latest 2.0 JDT Core HEAD contents.

java.lang.NullPointerException
	at 
org.eclipse.jdt.internal.compiler.codegen.CodeStream.newArray(CodeStream.java:45
08)
	at 
org.eclipse.jdt.internal.compiler.ast.ArrayInitializer.generateCode(ArrayInitial
izer.java:40)
	at 
org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.generateCode(FieldDeclara
tion.java:70)
	at 
org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration.internalGenerateCod
e(ConstructorDeclaration.java:212)
	at 
org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration.generateCode(Constr
uctorDeclaration.java:119)
	at 
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclarati
on.java:589)
	at 
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclarati
on.java:633)
	at 
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.generateCode(Co
mpilationUnitDeclaration.java:129)
	at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:440)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:239)
	at 
org.eclipse.jdt.internal.core.builder.impl.AbstractImageBuilder.compile(Abstract
ImageBuilder.java:90)
	at 
org.eclipse.jdt.internal.core.builder.impl.IncrementalImageBuilder.applySourceDe
lta(IncrementalImageBuilder.java:263)
	at 
org.eclipse.jdt.internal.core.builder.impl.JavaBuilder.incrementalBuild(JavaBuil
der.java:208)
	at 
org.eclipse.jdt.internal.core.builder.impl.JavaBuilder.build(JavaBuilder.java:54
)
	at 
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:332)
	at 
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:812
)
	at org.eclipse.core.runtime.Platform.run(Platform.java:395)
	at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:88)
	at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:153)
	at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:163)
	at 
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:112)
	at 
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:812
)
	at org.eclipse.core.runtime.Platform.run(Platform.java:395)
	at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:126)
	at 
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:188)
	at 
org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:693)
	at 
org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1193)
	at 
org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.jav
a:78)
	at 
org.eclipse.ui.texteditor.AbstractTextEditor.performSaveOperation(AbstractTextEd
itor.java:1305)
	at 
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSaveOperatio
n(CompilationUnitEditor.java:355)
	at 
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationU
nitEditor.java:403)
	at org.eclipse.ui.internal.EditorManager$9.run(EditorManager.java:776)
	at 
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:29
6)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:249)
	at 
org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:3
35)
	at 
org.eclipse.ui.internal.EditorManager.runProgressMonitorOperation(EditorManager.
java:634)
	at 
org.eclipse.ui.internal.EditorManager.saveEditor(EditorManager.java:781)
	at 
org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:1183)
	at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:31)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:451)
	at 
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionCont
ributionItem.java:407)
	at 
org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContribu
tionItem.java:361)
	at 
org.eclipse.jface.action.ActionContributionItem.access$0(ActionContributionItem.
java:352)
	at 
org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(Actio
nContributionItem.java:47)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java(Compiled 
Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:638)
	at 
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1167)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:675)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:658)
	at 
org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:82
0)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285)
	at SlimLauncher.main(SlimLauncher.java:14)
Comment 1 Philipe Mulet CLA 2001-11-07 12:36:53 EST
Fix integrated in latest. Could you please add a regression test for this one, 
it seems quite simple to reproduce.