Community
Participate
Working Groups
Build ID: I20080609-1311 Steps To Reproduce: 1. compile class (see "more information") for java 1.6 2. check (dump) .class-file DM2.class 3. signature is "[L[Ljava/lang/String;;" - results in error at least when loaded by another classloader: java.lang.ClassFormatError: Illegal class name "[L[Ljava/lang/String;;" in class file a/lng/pkg/name/DM2 4. compile class (see "more information") for java 1.4 5. check (dump) .class-file DM2.class 6. signature is ok - no problems with other classloaders More information: package a.lng.pkg.name; public class DM2 { static class DL { public void setDL(String[][] strings) { for (int i = 0; i < strings.length; i++) { System.out.println(strings[i][0] + "=" + strings[i][1]); } } } String[][] sa; protected DM2() { super(); sa = new String[][] { {"1", "2" }, {"3", "4" } }; } public DL anyDL(String dkPfx, String fldTbl, String map, String ntrSfx) { DL dl = new DL(); dl.setDL(sa); // --- eclipse-1.6-compiler (works fine on eclipse-1.4-compiler): // generated code for 1.6: "[L[Ljava/lang/String;;" String[][] ss = new String[][] { {"prefix", dkPfx != null ? dkPfx : "" }, {"table", fldTbl != null ? fldTbl : "" }, {"map", map != null ? map : "" }, {"suffix", ntrSfx != null ? ntrSfx : "" } }; dl.setDL(ss); // --- end return dl; } }
Reproduced. I am working on it. Philippe, this might be a candidate for 3.4.1.
+1 for 3.4.1 (even earlier if needed)
Created attachment 106822 [details] Proposed fix + regression tests for HEAD
Same patch can also be applied in 3.4 maintenance.
Thanks for the test case. Released for 3.5M1. Will release shortly for 3.4.1.
Released for 3.4.1.
Created attachment 106828 [details] Proposed fix + regression tests for 3.3 maintenance Patch to apply on 3.3 maintenance stream.
Backported to 3.3 maintenance.
Verified for 3.5M1 using I20080805-1307
Verified for 3.4.1 using M20080827-2000.