Bug 197414 - StackOverflowError while compiling R3_0_maintenance code
Summary: StackOverflowError while compiling R3_0_maintenance code
Status: VERIFIED WONTFIX
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 3.4 M1   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-07-22 07:09 EDT by Frederic Fusier CLA
Modified: 2007-12-20 06:56 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 Frederic Fusier CLA 2007-07-22 07:09:33 EDT
Using build I20070717-1020 on a 3.0 maintenance workspace (ie. in which I have JDT/Core projects R3_0_maintenance branch code).

When I try to build my workspace I get following StackOverflowError:

org.eclipse.core.runtime.AssertionFailedException: assertion failed: Marker property value is too long: Internal compiler error
java.lang.StackOverflowError
at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:334)
...
at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:334)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:334)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(M
at org.eclipse.core.runtime.Assert.isTrue(Assert.java:109)
at org.eclipse.core.internal.resources.MarkerInfo.checkValidAttribute(MarkerInfo.java:62)
at org.eclipse.core.internal.resources.MarkerInfo.setAttribute(MarkerInfo.java:145)
at org.eclipse.core.internal.resources.MarkerInfo.setAttributes(MarkerInfo.java:172)
at org.eclipse.core.internal.resources.Marker.setAttributes(Marker.java:277)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.storeProblemsFor(AbstractImageBuilder.java:725)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.storeProblemsFor(BatchImageBuilder.java:284)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.updateProblemsFor(AbstractImageBuilder.java:783)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.acceptResult(AbstractImageBuilder.java:127)
at org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:486)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:411)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:362)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:173)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:299)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:59)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:251)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:172)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:302)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:334)
at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:328)
at org.eclipse.ui.actions.GlobalBuildAction$1.run(GlobalBuildAction.java:183)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 1 Frederic Fusier CLA 2007-07-22 07:11:31 EDT
Note that this exception also occurs on a brand new workspace while building after having checked out the projects but does not while building same projects using a 3.0.2 build...
Comment 2 Olivier Thomann CLA 2007-07-23 11:28:30 EDT
I'll investigate.
Comment 3 Olivier Thomann CLA 2007-07-26 12:19:39 EDT
I could not reproduce using I20070724-0800.
Comment 4 Olivier Thomann CLA 2007-07-26 12:53:24 EDT
A 1.6 VM seems to be required + all jdt.core projects (jdt.core + tests + internal tests).
Comment 5 Olivier Thomann CLA 2007-07-26 13:12:25 EDT
The problem comes from the method org.eclipse.jdt.tests.core.OldSearchTests.testPotentialSubclassesOfObject(). In the 3.0.2 version, this method contains a huge recursive call to StringBuffer.append(...).append(...)......append(....).
This is the cause of the error.

I need to see why it compiles fine when using a 3.0.2 build.
Comment 6 Olivier Thomann CLA 2007-07-26 13:52:15 EDT
Changing the stack size seems to be the only way to fix this.
Using -Xss512K fixed it.
The only explanation I can see why it works using 3.0.2 is that the stack size is slightly smaller and just below the stack max size.
The resolution of message send receiver type has not changed between 3.0.2 and 3.3.
In fact it looks really similar to bug 32957.
Closing as WONTFIX.
Comment 7 Frederic Fusier CLA 2007-07-27 01:53:54 EDT
Thanks for having investigated and the quick answer :-)
Comment 8 Frederic Fusier CLA 2007-12-20 06:56:58 EST
Verified for 3.4M1