From 611e04a9e1f3f2368f3ce3237b6288b119ac9943 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Mon, 7 Nov 2016 16:18:54 -0800 Subject: [PATCH] Fix 500796: Allow for kotlin creating 'synthetic' local variable table entries --- .../apache/bcel/generic/MethodGen.java | 21 ++++++++++++++---- lib/bcel/bcel-src.zip | Bin 326975 -> 327092 bytes lib/bcel/bcel-verifier-src.zip | Bin 183372 -> 183372 bytes lib/bcel/bcel-verifier.jar | Bin 161556 -> 161556 bytes lib/bcel/bcel.jar | Bin 285423 -> 285489 bytes .../systemtest/ajc150/AnnotationBinding.java | 7 +++--- .../systemtest/ajc150/GenericITDsDesign.java | 13 ++++++----- .../systemtest/ajc150/GenericsTests.java | 12 +++++----- .../systemtest/ajc160/SanityTests.java | 1 + .../systemtest/ajc1610/NewFeatures.java | 1 + .../systemtest/ajc163/Ajc163Tests.java | 6 ++--- .../org/aspectj/weaver/bcel/BcelAdvice.java | 1 - .../aspectj/weaver/bcel/BcelTypeMunger.java | 1 - .../aspectj/weaver/bcel/LazyMethodGen.java | 3 ++- .../aspectj/weaver/bcel/UnwovenClassFile.java | 4 ++-- .../aspectj/weaver/bcel/WorldTestCase.java | 2 -- 16 files changed, 41 insertions(+), 31 deletions(-) diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodGen.java index 59cf7397e..21673dec0 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodGen.java @@ -880,9 +880,19 @@ public class MethodGen extends FieldGenOrMethodGen { } /** - * Compute maximum number of local variables. + * Compute maximum number of local variables based on the parameter count and bytecode usage of variables. */ public void setMaxLocals() { + setMaxLocals(false); + } + + /** + * Compute maximum number of local variables. + * + * @param respectLocalVariableTable if true and the local variable table indicates more are in use + * than the code suggests, respect the higher value from the local variable table data. + */ + public void setMaxLocals(boolean respectLocalVariableTable) { if (il != null) { int max = isStatic() ? 0 : 1; @@ -903,10 +913,13 @@ public class MethodGen extends FieldGenOrMethodGen { } } } - - maxLocals = max; + if (!respectLocalVariableTable || max > maxLocals) { + maxLocals = max; + } } else { - maxLocals = 0; + if (!respectLocalVariableTable) { + maxLocals = 0; + } } } diff --git a/lib/bcel/bcel-src.zip b/lib/bcel/bcel-src.zip index c96574cdf3b76885f55024625c2ac3d410f37d57..58136055bbc8790991d69d0e6604d41abdc827de 100644 GIT binary patch delta 10935 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 delta 10809 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 K!9S!X;Qs)^6^)$$ diff --git a/lib/bcel/bcel-verifier-src.zip b/lib/bcel/bcel-verifier-src.zip index bf5a86a3e8bfe2f9367f79f53bdb3ae7b04e5370..c6a16a60b7a62a1b38130804577adc227213288e 100644 GIT binary patch delta 77 zcmX>zgZs=3?g@KYbVGi7Y&;mk2xe@SWSYnWW;L(lYhTC5xP2WT)8fTok?ozgZs=3?g@J*>IiH+>%qu!H80I&vn10*9x$tU9bfx8KF00q_?Q+ip3c3ANnm^8 aCZ-t>Wz+v|W=fpyu%C%#d(sxBSKTD}io=IUysZRbXJZDaZy$mW7c33Z<0MQYhuCrBGO_1h*Ag zWg|MiHl%RK;lUeR$#YUicH7Av&N-cr3PKQ z&qbjytpRcG5<>O-0a>Imf?X# z3sS*HwJ6quh}OMiZkWjEYZw$w)QU%V=nPh*A2)D8)JUKm27| zXgNh7EapH;pnXIpSRJ7&%J`&=dEY#(!+r~fXTNt_y)8(Y|LjysS7M!?*%cXDbVBG2 zFA?Yp)e1)qG*X-dx(73f|E{CoM@z@VE3ve16QadHb+|{dZx2Ynkue!Re>F~ zpR2%(v|}&VPOec@HQ1HmPeb~;1$8yV32#?JA)fdt6h+Fja2mJpt{%674WsQ=XhvGF zLK9M94e#Z24YZ>6l#O?Kzy@uot=M?9t`=OVU8@BrQhpuxeO3n!mc{K&& zkXvmWlt?tos*H`BqR8J)bV4?5vhjB57ryL@9G%%fK8<+p#?%kNk3 K<9j~g1J8fonOlee delta 1869 zcmYk5e@xV69LJyM!{yyUT*Tm%VFi=HT>(O;7K8#ZXTSy&90+p99mjD8cN}-%T`^LR za5gAQJm@>hYM_H*>adG_Gg`{#Y}F_=*=&g9GUtkstlDhD?C$${9@h7t=e5u0{d|5t z-@#?&;IdLxQ5qqOBt$_-No&bV1F9!w(wUWtXI%!KZ#|3W%nQ}3%Mj{>9G%Q2fs7Z-dg>zJSzRS*$ z5mKxW7PXKT^lo)9$?crD2o$g8rL$1!MG-QoGUg?kMk4<;SDAB)*G4u>`y z?kwmyHpb$_e>BQy`eQ$%{E=ox6Qd)H%1(UANHx~WXlQ(hQRc)b#Xj~u_+@KoIHe#g z=0RG(Jt7l~*3gQwKB;8dH&1D>-lE~zZ=VlobwEf#;MPe^@a`E86B#CNvX=9wt}|Pr z_$h1o%DHRIHZlEx=}ula%bIJrxaARSQ~2h+%}Ck*>`+Q8G0xBIj0_DrG4#UA1-e30 zg(Er|DNX_{!ARo2>*)8<(lzmN9PPvBFB)`IgL4%7cG6*dHe%|_bWw#`rHRgCUh%G# zreLXJjGbCp+%6|IZ9wh9LAs4u*Y{B$HX{!7Q(GY*H|yc#Nz z#;TzPiPk^`lD-BSk*3!uc{iBRc4#;EF0Iikwa|dxsah}~sq46{s}3w^`?(Hkk+$#Q zwi9aCp%`!c6!Ib!7&wg^cvX)Y!GvD75n7NIj9^D9Zs4_? zYJfJhJz?UN?l(a@+Ez^5+h_(S+OC?xfmGPYb)PkYl|`{YH_|Z+bRfkx!9Juw6C6ZJ zw1N+5$O`pHe_Npy$?i~lOO6>$2dV8F38A;#9y$fx88f7j{=Uw1JU3NRSjkfa_p>Xrrd)<5*zq|R= zj2>R|tcUAzJD?Zi&2(^YRwu9OgHCuAz3RPumv8Kad9<0meEXNYe7{;BpYw4ac>V)8 CLROXl diff --git a/lib/bcel/bcel.jar b/lib/bcel/bcel.jar index 5da57de723b8e601113d18a46ffd64683d7c8756..fdfd8dedae8fcd6393accd25eea986c2525d6d09 100644 GIT binary patch delta 16939 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 delta 16837 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 tbKZ{Mh9EmPQ4tH<{;4 l = asm.getRelationshipMap().get(ipe); assertTrue("Should have a relationship but does not ", l.size() > 0); ipe = top.findElementForLabel(top.getRoot(), IProgramElement.Kind.DECLARE_ANNOTATION_AT_METHOD, @@ -343,7 +344,7 @@ public class AnnotationBinding extends XMLBasedAjcTestCase { "declare @field: int A.i : @Fruit(\"orange\")"); assertTrue("Couldn't find 'declare @type' element in the tree", ipe != null); - List l = asm.getRelationshipMap().get(ipe); + List l = asm.getRelationshipMap().get(ipe); assertTrue("Should have a relationship but does not ", l.size() > 0); ipe = top.findElementForLabel(top.getRoot(), IProgramElement.Kind.DECLARE_ANNOTATION_AT_FIELD, @@ -375,7 +376,7 @@ public class AnnotationBinding extends XMLBasedAjcTestCase { "declare @constructor: A.new(java.lang.String) : @Fruit(\"pear\")"); assertTrue("Couldn't find 'declare @constructor' element in the tree", ipe != null); - List l = asm.getRelationshipMap().get(ipe); + List l = asm.getRelationshipMap().get(ipe); assertTrue("Should have a relationship but does not ", l.size() > 0); ipe = top.findElementForLabel(top.getRoot(), IProgramElement.Kind.DECLARE_ANNOTATION_AT_CONSTRUCTOR, diff --git a/tests/src/org/aspectj/systemtest/ajc150/GenericITDsDesign.java b/tests/src/org/aspectj/systemtest/ajc150/GenericITDsDesign.java index dfedf65a0..6209298c1 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/GenericITDsDesign.java +++ b/tests/src/org/aspectj/systemtest/ajc150/GenericITDsDesign.java @@ -15,6 +15,7 @@ import org.aspectj.apache.bcel.util.ClassPath; import org.aspectj.apache.bcel.util.SyntheticRepository; import org.aspectj.testing.XMLBasedAjcTestCase; import org.aspectj.tools.ajc.Ajc; +import org.aspectj.weaver.ConcreteTypeMunger; import org.aspectj.weaver.CrosscuttingMembers; import org.aspectj.weaver.ReferenceType; import org.aspectj.weaver.ResolvedMember; @@ -75,12 +76,12 @@ public class GenericITDsDesign extends XMLBasedAjcTestCase { .equals(sig)); } - public List /* BcelTypeMunger */getTypeMunger(String classname) { + public List getTypeMunger(String classname) { ClassPath cp = new ClassPath(ajc.getSandboxDirectory() + File.pathSeparator + System.getProperty("java.class.path")); recentWorld = new BcelWorld(cp.toString()); ReferenceType resolvedType = (ReferenceType) recentWorld.resolve(classname); CrosscuttingMembers cmembers = resolvedType.collectCrosscuttingMembers(true); - List tmungers = cmembers.getTypeMungers(); + List tmungers = cmembers.getTypeMungers(); return tmungers; } @@ -100,9 +101,9 @@ public class GenericITDsDesign extends XMLBasedAjcTestCase { return null; } - public Hashtable getMeTheFields(String classname) { + public Hashtable getMeTheFields(String classname) { JavaClass theClass = getClassFromDisk(ajc, classname); - Hashtable retval = new Hashtable(); + Hashtable retval = new Hashtable<>(); org.aspectj.apache.bcel.classfile.Field[] fs = theClass.getFields(); for (int i = 0; i < fs.length; i++) { Field field = fs[i]; @@ -206,7 +207,7 @@ public class GenericITDsDesign extends XMLBasedAjcTestCase { // Verifying what gets into a class targetted with a field ITD public void testDesignF() { runTest("generic itds - design F"); - Hashtable fields = getMeTheFields("C"); + Hashtable fields = getMeTheFields("C"); // Declared in src as: List C.list1; and List C.list2; Field list1 = (Field) fields.get("list1");// ajc$interField$$list1"); @@ -229,7 +230,7 @@ public class GenericITDsDesign extends XMLBasedAjcTestCase { // Verifying what gets into a class when an interface it implements was targetted with a field ITD public void testDesignG() { runTest("generic itds - design G"); - Hashtable fields = getMeTheFields("C"); + Hashtable fields = getMeTheFields("C"); // The ITDs are targetting an interface. That interface is generic and is parameterized with // 'String' when implemented in the class C. This means the fields that make it into C should diff --git a/tests/src/org/aspectj/systemtest/ajc150/GenericsTests.java b/tests/src/org/aspectj/systemtest/ajc150/GenericsTests.java index 21efa3328..1ec2b21c1 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/GenericsTests.java +++ b/tests/src/org/aspectj/systemtest/ajc150/GenericsTests.java @@ -875,11 +875,11 @@ public class GenericsTests extends XMLBasedAjcTestCase { * bridge methods have been created. */ public void checkMethodsExist(String classname,String[] methods) { - Set methodsFound = new HashSet(); + Set methodsFound = new HashSet<>(); StringBuffer debugString = new StringBuffer(); try { ClassLoader cl = new URLClassLoader(new URL[]{ajc.getSandboxDirectory().toURL()}); - Class clz = Class.forName(classname,false,cl); + Class clz = Class.forName(classname,false,cl); java.lang.reflect.Method[] ms = clz.getDeclaredMethods(); if (ms!=null) { for (int i =0;i[] noparms = new Class[0]; java.lang.reflect.Method isBridge = java.lang.reflect.Method.class.getMethod("isBridge", noparms); Boolean result = (Boolean) isBridge.invoke(m, new Object[0]); @@ -959,7 +958,6 @@ public class GenericsTests extends XMLBasedAjcTestCase { public static void checkOneSignatureAttribute(Ajc ajc,String classname) { JavaClass clazz = getClass(ajc,classname); - Signature sigAttr = null; Attribute[] attrs = clazz.getAttributes(); int signatureCount = 0; StringBuffer sb = new StringBuffer(); @@ -981,7 +979,7 @@ public class GenericsTests extends XMLBasedAjcTestCase { sigAttr.getSignature().equals(sig)); } - private static String stringify(Class[] clazzes) { + private static String stringify(Class[] clazzes) { if (clazzes==null) return ""; StringBuffer sb = new StringBuffer(); for (int i = 0; i < clazzes.length; i++) { diff --git a/tests/src/org/aspectj/systemtest/ajc160/SanityTests.java b/tests/src/org/aspectj/systemtest/ajc160/SanityTests.java index 5d0462c99..45eac49ce 100644 --- a/tests/src/org/aspectj/systemtest/ajc160/SanityTests.java +++ b/tests/src/org/aspectj/systemtest/ajc160/SanityTests.java @@ -94,6 +94,7 @@ public class SanityTests extends org.aspectj.testing.XMLBasedAjcTestCase { // } /* For the specified class, check that each method has a stackmap attribute */ + @SuppressWarnings("unused") private void checkStackMapExistence(String classname, String toIgnore) throws ClassNotFoundException { toIgnore = "_" + (toIgnore == null ? "" : toIgnore) + "_"; JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), classname); diff --git a/tests/src/org/aspectj/systemtest/ajc1610/NewFeatures.java b/tests/src/org/aspectj/systemtest/ajc1610/NewFeatures.java index b9de3dff7..588d71186 100644 --- a/tests/src/org/aspectj/systemtest/ajc1610/NewFeatures.java +++ b/tests/src/org/aspectj/systemtest/ajc1610/NewFeatures.java @@ -31,6 +31,7 @@ public class NewFeatures extends org.aspectj.testing.XMLBasedAjcTestCase { } } + @SuppressWarnings("unused") public void testMakeSJPOptimizationCollapsedSJPYes14() { this.runTest("makeSJP optimization - Collapsed SJP - Yes 1.4"); try { diff --git a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java index 224f695ef..15abc8921 100644 --- a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java @@ -11,7 +11,6 @@ package org.aspectj.systemtest.ajc163; import java.io.File; -import java.util.Iterator; import java.util.List; import junit.framework.Test; @@ -174,9 +173,8 @@ public class Ajc163Tests extends org.aspectj.testing.XMLBasedAjcTestCase { if (whereToLook.getSourceLocation() != null && whereToLook.getSourceLocation().getLine() == line) { return whereToLook; } - List kids = whereToLook.getChildren(); - for (Iterator iterator = kids.iterator(); iterator.hasNext();) { - IProgramElement object = (IProgramElement) iterator.next(); + List kids = whereToLook.getChildren(); + for (IProgramElement object: kids) { if (object.getSourceLocation() != null && object.getSourceLocation().getLine() == line) { return object; } diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelAdvice.java b/weaver/src/org/aspectj/weaver/bcel/BcelAdvice.java index a9f214723..d22b17d12 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelAdvice.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelAdvice.java @@ -26,7 +26,6 @@ import org.aspectj.apache.bcel.generic.InstructionConstants; import org.aspectj.apache.bcel.generic.InstructionFactory; import org.aspectj.apache.bcel.generic.InstructionHandle; import org.aspectj.apache.bcel.generic.InstructionList; -import org.aspectj.apache.bcel.generic.InvokeDynamic; import org.aspectj.apache.bcel.generic.LineNumberTag; import org.aspectj.apache.bcel.generic.LocalVariableTag; import org.aspectj.bridge.ISourceLocation; diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java index 8d5d26499..9768cb9e4 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java @@ -44,7 +44,6 @@ import org.aspectj.bridge.MessageUtil; import org.aspectj.bridge.WeaveMessage; import org.aspectj.bridge.context.CompilationAndWeavingContext; import org.aspectj.bridge.context.ContextToken; -import org.aspectj.weaver.AjAttribute; import org.aspectj.weaver.AjcMemberMaker; import org.aspectj.weaver.AnnotationAJ; import org.aspectj.weaver.AnnotationOnTypeMunger; diff --git a/weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java b/weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java index 0b02041ab..2655a3456 100644 --- a/weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java +++ b/weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java @@ -1020,7 +1020,8 @@ public final class LazyMethodGen implements Traceable { } else { packBody(gen); } - gen.setMaxLocals(); + + gen.setMaxLocals(true); gen.setMaxStack(); } else { gen.setInstructionList(null); diff --git a/weaver/src/org/aspectj/weaver/bcel/UnwovenClassFile.java b/weaver/src/org/aspectj/weaver/bcel/UnwovenClassFile.java index 79a96c775..d02c90130 100644 --- a/weaver/src/org/aspectj/weaver/bcel/UnwovenClassFile.java +++ b/weaver/src/org/aspectj/weaver/bcel/UnwovenClassFile.java @@ -71,10 +71,10 @@ public class UnwovenClassFile implements IUnwovenClassFile { } public void writeUnchangedBytes() throws IOException { - writeWovenBytes(getBytes(), Collections.EMPTY_LIST); + writeWovenBytes(getBytes(), Collections.emptyList()); } - public void writeWovenBytes(byte[] bytes, List childClasses) throws IOException { + public void writeWovenBytes(byte[] bytes, List childClasses) throws IOException { writeChildClasses(childClasses); // System.err.println("should write: " + getClassName()); diff --git a/weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java b/weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java index 1fb756852..3d21b57ad 100644 --- a/weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java +++ b/weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java @@ -13,8 +13,6 @@ package org.aspectj.weaver.bcel; import java.lang.reflect.Modifier; -import java.util.Objects; -import java.util.function.Consumer; import org.aspectj.weaver.Advice; import org.aspectj.weaver.BcweaverTests; -- 2.39.5