]> source.dussan.org Git - aspectj.git/commitdiff
Ensure version of generated class is correct
authorAndy Clement <aclement@pivotal.io>
Wed, 27 Sep 2017 21:43:04 +0000 (14:43 -0700)
committerAndy Clement <aclement@pivotal.io>
Wed, 27 Sep 2017 21:43:04 +0000 (14:43 -0700)
Important to ensure we generate it of the right version as it may
end up containing code derived from a particular class that needs
a be run with a certain level of verifier. In this case if
inserting invokestatic targeting a interface method, we need to
be using something later than a java 1.2 level class file.

weaver/src/org/aspectj/weaver/bcel/BcelShadow.java

index 10fdbd05ceb5ca2c25aa9beb52bc94d0cc2cdddc..6ba22ed97cca20906a1efa3b877261c7310eb5ce 100644 (file)
@@ -3059,6 +3059,7 @@ public class BcelShadow extends Shadow {
 
                LazyClassGen closureClass = new LazyClassGen(closureClassName, superClassName, getEnclosingClass().getFileName(),
                                Modifier.PUBLIC, new String[] {}, getWorld());
+               closureClass.setMajorMinor(getEnclosingClass().getMajor(), getEnclosingClass().getMinor());
                InstructionFactory fact = new InstructionFactory(closureClass.getConstantPool());
 
                // constructor