Summary: | Marker property value is too long for internal compiler error (java.lang.StackOverflowError) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Philipe Mulet <philippe_mulet> | ||||||||
Component: | Core | Assignee: | Philipe Mulet <philippe_mulet> | ||||||||
Status: | VERIFIED FIXED | QA Contact: | |||||||||
Severity: | normal | ||||||||||
Priority: | P3 | CC: | jerome_lanneluc | ||||||||
Version: | 3.5 | ||||||||||
Target Milestone: | 3.5 M4 | ||||||||||
Hardware: | PC | ||||||||||
OS: | Windows XP | ||||||||||
Whiteboard: | |||||||||||
Attachments: |
|
Description
Philipe Mulet
2008-11-27 03:36:04 EST
The consequence of this is that a build is failing with no indication for end user of the offending problem. Created attachment 118874 [details]
Proposed patch
Created attachment 118892 [details]
Better patch
Same patch applies for 3.4.x. In order to validate, try to compile the following code, and see how it gets handled: //https://bugs.eclipse.org/bugs/show_bug.cgi?id=172672 class T { } class N<Z> { } class C<X> extends N<N<? super C<C<X>>>> { N<? super C<T>> cast(C<T> c) { return c; } } Created attachment 118926 [details]
Proposed patch v3
This patch actually shortens the problem message to a one line summary from the exception trace. The batch compiler indeed does surface the exception independently, so there is no need to clutter the problem message in fact.
On the above example, we now get: ---------- 1. ERROR in Foo.java (at line 0) //https://bugs.eclipse.org/bugs/show_bug.cgi?id=172672 ^ Internal compiler error: java.lang.StackOverflowError at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substitute(ParameterizedTypeBinding.java:913) ---------- 2. WARNING in Foo.java (at line 4) class C<X> extends N<N<? super C<C<X>>>> { ^ The type parameter X is hiding the type X ---------- Released for 3.5M4. Fixed Verified for 3.5M4 using I20081209-0100 |