Bug 41805 - ArrayIndexOutOfBoundsException while creating AST
Summary: ArrayIndexOutOfBoundsException while creating AST
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.0 M3   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-08-21 10:39 EDT by Martin Aeschlimann CLA
Modified: 2003-08-28 06:10 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Aeschlimann CLA 2003-08-21 10:39:30 EDT
20030813

Save the following code:
-> ArrayIndexOutOfBoundsException thrown
---
package p1;

public class Foo {
	private String g() {
		final synchronized int i[]; 
		for (i= null; i != null; ) {
		}
		return toString();
	}
}


java.lang.ArrayIndexOutOfBoundsException
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.Throwable.<init>(Throwable.java:68)
	at
java.lang.ArrayIndexOutOfBoundsException.<init>(ArrayIndexOutOfBoundsException.java:63)
	at org.eclipse.jdt.internal.compiler.parser.Parser.pushOnIntStack(Parser.java)
	at org.eclipse.jdt.internal.compiler.parser.Parser.consumeToken(Parser.java)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java)
	at
org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.parseStatements(MethodDeclaration.java:95)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.parseMethod(TypeDeclaration.java:719)
	at org.eclipse.jdt.internal.compiler.Compiler.getMethodBodies(Compiler.java:381)
	at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:582)
	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:448)
	at
org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:881)
	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:994)
	at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:970)
	at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:963)
	at
org.eclipse.jdt.internal.ui.javaeditor.filebuffers.CompilationUnitDocumentProvider2.saveDocument(CompilationUnitDocumentProvider2.java:800)
	at
org.eclipse.ui.texteditor.AbstractTextEditor$17.execute(AbstractTextEditor.java:3153)
	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:3173)
	at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSaveOperation(CompilationUnitEditor.java:785)
	at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:849)
	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:84)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:441)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1636)
	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:37)
	at
org.eclipse.ui.internal.commands.old.ContextAndHandlerManager.pressed(ContextAndHandlerManager.java:171)
	at
org.eclipse.ui.internal.commands.old.ContextAndHandlerManager.access$1(ContextAndHandlerManager.java:156)
	at
org.eclipse.ui.internal.commands.old.ContextAndHandlerManager$7.widgetSelected(ContextAndHandlerManager.java:265)
	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:1680)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:1663)
	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.invokeImpl(Native Method)
	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)
Comment 1 Olivier Thomann CLA 2003-08-21 10:45:54 EDT
I will investigate.
Comment 2 Olivier Thomann CLA 2003-08-21 12:01:42 EDT
The problem is coming from the synchronized modifier. I am investigating a fix.
Comment 3 Olivier Thomann CLA 2003-08-22 11:11:43 EDT
Fixed and released in HEAD.
Regression test added.
Comment 4 David Audel CLA 2003-08-28 06:10:31 EDT
Verified.