diff options
-rw-r--r-- | bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java | 28 | ||||
-rw-r--r-- | lib/bcel/bcel-src.zip | bin | 313692 -> 326237 bytes | |||
-rw-r--r-- | lib/bcel/bcel-verifier-src.zip | bin | 182111 -> 183372 bytes | |||
-rw-r--r-- | lib/bcel/bcel-verifier.jar | bin | 159627 -> 161556 bytes | |||
-rw-r--r-- | lib/bcel/bcel.jar | bin | 271193 -> 285387 bytes | |||
-rw-r--r-- | tests/bugs181/435446/Application.java | 37 | ||||
-rw-r--r-- | tests/bugs181/435446/MyAspect.java | 9 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java | 4 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc181/ajc181.xml | 7 |
9 files changed, 72 insertions, 13 deletions
diff --git a/bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java b/bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java index 2196df3e7..9e19c417d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/ConstantsInitializer.java @@ -337,20 +337,22 @@ public class ConstantsInitializer { | Constants.INDEXED; Constants.instExcs[Constants.INVOKEVIRTUAL] = ExceptionConstants.EXCS_INTERFACE_METHOD_RESOLUTION_INVOKESPECIAL_INVOKEVIRTUAL; + //@formatter:off char[] lengths = // . = varies in length, / = undefined ("1111111111111111" + // nop > dconst_1 - "2323322222111111" + // bipush > lload_1 - "1111111111111111" + // lload_2 > laload - "1111112222211111" + // faload > lstore_0 - "1111111111111111" + // lstore_1 > iastore - "1111111111111111" + // lastore > swap - "1111111111111111" + // iadd > ddiv - "1111111111111111" + // irem > land - "1111311111111111" + // ior > d2l - "1111111113333333" + // d2f > if_icmpeq - "3333333332..1111" + // if_icmpne > dreturn - "1133333335/32311" + // areturn > athrow - "3311.433551/////").toCharArray(); // checkcast > + "2323322222111111" + // bipush > lload_1 + "1111111111111111" + // lload_2 > laload + "1111112222211111" + // faload > lstore_0 + "1111111111111111" + // lstore_1 > iastore + "1111111111111111" + // lastore > swap + "1111111111111111" + // iadd > ddiv + "1111111111111111" + // irem > land + "1111311111111111" + // ior > d2l + "1111111113333333" + // d2f > if_icmpeq + "3333333332..1111" + // if_icmpne > dreturn + "1133333335532311" + // areturn > athrow + "3311.433551/////").toCharArray(); // checkcast > + //@formatter:on int count = 0; for (; count < lengths.length; count++) { Constants.iLen[count] = (byte) (lengths[count] - 48); @@ -374,7 +376,7 @@ public class ConstantsInitializer { "1212021211212212" + // ior > d2l "1111111110000000" + // d2f > if_icmpeq "0000000010000000" + // if_icmpne > dreturn - "00.0.0..../11111" + // areturn > athrow + "00.0.0.....11111" + // areturn > athrow "11000100010/").toCharArray(); // checkcast > count = 0; for (; count < producesOnStack.length; count++) { diff --git a/lib/bcel/bcel-src.zip b/lib/bcel/bcel-src.zip Binary files differindex 9150034a6..090f7083a 100644 --- a/lib/bcel/bcel-src.zip +++ b/lib/bcel/bcel-src.zip diff --git a/lib/bcel/bcel-verifier-src.zip b/lib/bcel/bcel-verifier-src.zip Binary files differindex ba3f777d1..bf5a86a3e 100644 --- a/lib/bcel/bcel-verifier-src.zip +++ b/lib/bcel/bcel-verifier-src.zip diff --git a/lib/bcel/bcel-verifier.jar b/lib/bcel/bcel-verifier.jar Binary files differindex a86266c05..c407530cf 100644 --- a/lib/bcel/bcel-verifier.jar +++ b/lib/bcel/bcel-verifier.jar diff --git a/lib/bcel/bcel.jar b/lib/bcel/bcel.jar Binary files differindex 3a1fb89e5..20e2af40c 100644 --- a/lib/bcel/bcel.jar +++ b/lib/bcel/bcel.jar diff --git a/tests/bugs181/435446/Application.java b/tests/bugs181/435446/Application.java new file mode 100644 index 000000000..f332729d2 --- /dev/null +++ b/tests/bugs181/435446/Application.java @@ -0,0 +1,37 @@ +package de.scrum_master.app; + +import java.util.HashMap; +import java.util.Map; + +public class Application { + static Map/*<String, Map<Integer, String>>*/ languages = new HashMap<>(); + + static { + Map<Integer, String> englishNumbers = new HashMap<>(); + englishNumbers.put(11, "eleven"); + englishNumbers.put(12, "twelve"); + englishNumbers.put(13, "thirteen"); + languages.put("EN", englishNumbers); + + Map<Integer, String> germanNumbers = new HashMap<>(); + germanNumbers.put(11, "elf"); + germanNumbers.put(12, "zwölf"); + germanNumbers.put(13, "dreizehn"); + languages.put("DE", germanNumbers); + + + } + + public static void main(String[] args) { + languages.entrySet().stream().forEach((language) -> { +// String languageCode = language.getKey(); + Map/*<Integer, String>*/ numbers = (Map)((Map.Entry)language).getValue(); +// System.out.println("Language code = " + languageCode); + numbers.entrySet().stream().forEach((number) -> { +// int numericValue = number.getKey(); +// String textualValue = number.getValue(); +// System.out.println(" " + numericValue + " -> " + textualValue); + }); + }); + } +} diff --git a/tests/bugs181/435446/MyAspect.java b/tests/bugs181/435446/MyAspect.java new file mode 100644 index 000000000..fb45a513f --- /dev/null +++ b/tests/bugs181/435446/MyAspect.java @@ -0,0 +1,9 @@ +package de.scrum_master.aspect; + +import de.scrum_master.app.Application; + +public aspect MyAspect { + before() : execution(* Application.lambda$0(..)) { +// System.out.println(thisJoinPointStaticPart); + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java b/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java index 2bc5e0c0c..3fc5e17cd 100644 --- a/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc181/Ajc181Tests.java @@ -22,6 +22,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase; */ public class Ajc181Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testLvarTable_435446() throws Exception { + runTest("lvartable"); + } + public void testBrokenAnnotations_377096() throws Exception { runTest("broken annotations"); Method method = getMethodFromClass(getClassFrom(ajc.getSandboxDirectory(), "C"), "xxx"); diff --git a/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml b/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml index cd2066506..fdbe11d21 100644 --- a/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml +++ b/tests/src/org/aspectj/systemtest/ajc181/ajc181.xml @@ -2,6 +2,13 @@ <suite> + <ajc-test dir="bugs181/435446" title="lvartable"> + <compile options="-1.8" files="Application.java MyAspect.java"> + </compile> + <run class="de.scrum_master.app.Application"> + </run> + </ajc-test> + <ajc-test dir="bugs181/377096" title="broken annotations"> <compile options="-1.5 -proceedOnError" files="A.java"> <message kind="error" text="The attribute wibble is undefined for the annotation type A"/> |