Bug 46084 - ArrayIndexOutOfBoundsException in compiler after feeding with non-real java code
Summary: ArrayIndexOutOfBoundsException in compiler after feeding with non-real java code
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 M6   Edit
Assignee: David Audel CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-11-05 02:23 EST by Adam Kiezun CLA
Modified: 2003-12-16 05:50 EST (History)
0 users

See Also:


Attachments
the attachment is a zipped java project (25.04 KB, application/octet-stream)
2003-11-05 02:26 EST, Adam Kiezun CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Kiezun CLA 2003-11-05 02:23:37 EST
3.0 M4
i fed the compiler with some java code with 'const' annotations (which makes it 
not java anymore). It made the compiler crash. Not severe but might be a 
usecase. Code attached.

java.lang.ArrayIndexOutOfBoundsException
	at java.lang.System.arraycopy(Native Method)
	at 
org.eclipse.jdt.internal.compiler.parser.Scanner.getCurrentTokenSource
(Scanner.java:361)
	at 
org.eclipse.jdt.internal.compiler.parser.diagnose.LexStream.readTokenFromScanner
(LexStream.java:84)
	at org.eclipse.jdt.internal.compiler.parser.diagnose.LexStream.token
(LexStream.java:137)
	at org.eclipse.jdt.internal.compiler.parser.diagnose.LexStream.kind
(LexStream.java:177)
	at 
org.eclipse.jdt.internal.compiler.parser.diagnose.DiagnoseParser.secondaryPhase
(DiagnoseParser.java:1552)
	at 
org.eclipse.jdt.internal.compiler.parser.diagnose.DiagnoseParser.errorRecovery
(DiagnoseParser.java:453)
	at 
org.eclipse.jdt.internal.compiler.parser.diagnose.DiagnoseParser.diagnoseParse
(DiagnoseParser.java:358)
	at 
org.eclipse.jdt.internal.compiler.parser.Parser.reportSyntaxErrorsForSkippedMeth
od(Parser.java:5686)
	at org.eclipse.jdt.internal.compiler.parser.Parser.reportSyntaxErrors
(Parser.java:5665)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse
(Parser.java:5642)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse
(Parser.java:5953)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse
(Parser.java:5925)
	at org.eclipse.jdt.internal.compiler.parser.Parser.dietParse
(Parser.java:4672)
	at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile
(Compiler.java:279)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:314)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile
(AbstractImageBuilder.java:201)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile
(AbstractImageBuilder.java:151)
	at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build
(IncrementalImageBuilder.java:112)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas
(JavaBuilder.java:222)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build
(JavaBuilder.java:150)
	at org.eclipse.core.internal.events.BuildManager$2.run
(BuildManager.java:475)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1018)
	at org.eclipse.core.runtime.Platform.run(Platform.java:461)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:130)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:201)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:156)
	at org.eclipse.core.internal.events.BuildManager$1.run
(BuildManager.java:182)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1018)
	at org.eclipse.core.runtime.Platform.run(Platform.java:461)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:185)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop
(BuildManager.java:219)
	at org.eclipse.core.internal.events.BuildManager.build
(BuildManager.java:247)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild
(AutoBuildJob.java:76)
	at org.eclipse.core.internal.events.AutoBuildJob.run
(AutoBuildJob.java:109)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62)
Comment 1 Adam Kiezun CLA 2003-11-05 02:26:06 EST
Created attachment 6656 [details]
the attachment is a zipped java project

create a project from the zip and compile
Comment 2 David Audel CLA 2003-12-09 10:21:07 EST
Simpler test case
TestResult.java:
/* comment comment comment comment comment comment comment comment
   comment comment comment comment comment comment comment comment*/

public class TestResult {
	void foo(const Object test) {
	}
}

TestListener.java:
public interface TestListener {
	public void titi(const Test test);
 	public void toto(const Test test);  
}
Comment 3 David Audel CLA 2003-12-09 10:27:22 EST
The "declarationEnd" of "titi" is not correct.

When there are several files to parse, Parser#rBraceStart and Parser#rBraceEnd 
and Parser#rBraceSuccessorStart are not reinitialized between the parsing of 
each file.
Comment 4 David Audel CLA 2003-12-11 10:29:56 EST
Parser#initialize() initialize Parser#rBraceStart and Parser#rBraceEnd 
and Parser#rBraceSuccessorStart values.

Fixed.
Comment 5 Frederic Fusier CLA 2003-12-16 05:50:46 EST
Verified with build I200312160010.