Community
Participate
Working Groups
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)
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...
I'll investigate.
I could not reproduce using I20070724-0800.
A 1.6 VM seems to be required + all jdt.core projects (jdt.core + tests + internal tests).
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.
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.
Thanks for having investigated and the quick answer :-)
Verified for 3.4M1