Bug 325321

Summary: [compiler] Synthetic constructors for non-static inner classes can exceed 255 parameters -> ClassFormatError
Product: [Eclipse Project] JDT Reporter: Satyam Kandula <satyam.kandula>
Component: CoreAssignee: Olivier Thomann <Olivier_Thomann>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: Olivier_Thomann
Version: 3.6Flags: satyam.kandula: review+
Target Milestone: 3.7 M2   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Proposed fix + regression test none

Description Satyam Kandula CLA 2010-09-15 05:39:53 EDT
This is a FUP of bug 321414. 

bug 321414 had fixed the problems for synthetic methods for private constructors of static inner classes. However, for non-static inner classes, the private constructor takes two additional parameters and both the Eclipse compiler and the Java compiler doesn't take care of it. Both compilers generated codes generate the ClassFormatError at runtime. 

I couldn't find any bug in Java bug database - We probably can file one there.
Comment 1 Olivier Thomann CLA 2010-09-15 10:07:30 EDT
Created attachment 178933 [details]
Proposed fix + regression test
Comment 2 Olivier Thomann CLA 2010-09-15 10:08:00 EDT
Satyam, please review
Comment 3 Satyam Kandula CLA 2010-09-15 10:58:36 EDT
Changes look good to me. 
+1
Comment 4 Olivier Thomann CLA 2010-09-15 11:34:19 EDT
Released for 3.7M2.
Added regression test:
org.eclipse.jdt.core.tests.compiler.regression.ProblemTypeAndMethodTest#test111
org.eclipse.jdt.core.tests.compiler.regression.ProblemTypeAndMethodTest#test112
Comment 5 Olivier Thomann CLA 2010-09-23 21:56:31 EDT
Verified for 3.7M2