Summary: | [1.5][compiler] StackOverflow compiling heavily generic code | ||||||
---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Osvaldo Pinali Doederlein <opinali> | ||||
Component: | Core | Assignee: | Philipe Mulet <philippe_mulet> | ||||
Status: | CLOSED FIXED | QA Contact: | |||||
Severity: | major | ||||||
Priority: | P3 | CC: | john.arthorne | ||||
Version: | 3.1 | ||||||
Target Milestone: | 3.1 RC2 | ||||||
Hardware: | PC | ||||||
OS: | Windows 2000 | ||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Osvaldo Pinali Doederlein
2005-05-31 08:21:00 EDT
Please provide steps to reproduce, then reopen. Normally, an additional problem should have been added on line 1 of offending file; associated to a message containing the stack trace you got in the log. This should help you narrow the problem. Created attachment 22056 [details]
Test workspace
Oops, your're right, the compiler creates a problem marker pointing to the source file that caused the error. So I managed to produce a minimal workspace (attached) that shows the problem. Steps to reproduce: 1) Fresh install of Eclipse RC1 (just Platform + JDT) 2) Open this workspace 3) CTRL+B to build --> produces the compiler error 4) Open the file PSClass.java --> produces another related error, "Requesting Java AST from selection". Then you have to close the editor, otherwise this error cycles in a loop if you close the dialog. The second stack trace indicates that an IMarker had a message of more than 65,536 bytes in length. Perhaps the stack trace of the StackOverflowError is being added to the marker message or another marker property, causing a very long message? I have entered bug 97608 against platform resources to handle the marker save failure (second stack). Reproduced using build N20050608-0010 on workspace provided in comment 2. You just need ot open PSClass.java and click everywhere in the code or move the cursor... Simpler testcase: public class X<E> { X<? super E> parent; X<? super E> current; void foo() { current = current.parent; } } Our protection for circular captures didn't perform for lower bounds. Fixed, added GenericTypeTest#test Verified for 3.1 RC2 using build N20050609-0010 + JDT/Core HEAD Verified with I20050610-0010 |