From ab8339852515f04236d41b9af486ea9f0c50c6c7 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Sun, 24 Sep 2017 22:00:25 -0700 Subject: [PATCH] Various changes to get tests passing on 1.8 and 1.9 --- .../ui/utils/TestCompilerConfiguration.java | 7 +- .../aspectj/tools/ajdoc/AjdocTestCase.java | 20 +- .../org/aspectj/tools/ajdoc/BugTests.java | 4 +- .../aspectj/tools/ajdoc/CoverageTestCase.java | 44 +- .../aspectj/tools/ajdoc/DeclareFormsTest.java | 32 +- .../aspectj/apache/bcel/util/ClassPath.java | 55 +- lib/bcel/bcel-src.zip | Bin 340935 -> 340600 bytes lib/bcel/bcel-verifier.jar | Bin 166985 -> 166985 bytes lib/bcel/bcel.jar | Bin 319627 -> 319540 bytes .../org/aspectj/tools/ajc/AjcTestCase.java | 2 + .../weaver/patterns/HasMemberTypePattern.java | 9 +- tests/java5/annotations/itds/AtItd3.aj | 1 + .../systemtest/ajc1611/newfeatures-tests.xml | 3 +- .../aspectj/systemtest/ajc1612/ajc1612.xml | 6 +- .../org/aspectj/systemtest/ajc173/ajc173.xml | 3 +- .../systemtest/ajc190/Ajc190Tests.java | 12 + .../systemtest/ajc190/AllTestsAspectJ190.java | 1 + .../systemtest/ajc190/Annotations.java | 176 + .../org/aspectj/systemtest/ajc190/ajc190.xml | 24 + .../systemtest/ajc190/ajc190_from150.xml | 6290 +++++++++++++++++ .../aspectj/weaver/bcel/ClassPathManager.java | 4 +- .../org/aspectj/weaver/bcel/LazyClassGen.java | 9 +- .../StaticEnclosingTjpBeforeHelloWorld.txt | 4 +- .../StaticTjpBeforeHelloWorld.1.9.txt | 8 +- weaver/testdata/StaticTjpBeforeHelloWorld.txt | 8 +- weaver/testdata/TjpAround2HelloWorld.1.9.txt | 8 +- weaver/testdata/TjpAround2HelloWorld.txt | 8 +- weaver/testdata/TjpAroundHelloWorld.1.9.txt | 8 +- weaver/testdata/TjpAroundHelloWorld.txt | 8 +- weaver/testdata/TjpBeforeHelloWorld.1.9.txt | 8 +- weaver/testdata/TjpBeforeHelloWorld.txt | 8 +- 31 files changed, 6633 insertions(+), 137 deletions(-) create mode 100644 tests/src/org/aspectj/systemtest/ajc190/Annotations.java create mode 100644 tests/src/org/aspectj/systemtest/ajc190/ajc190_from150.xml diff --git a/ajde/testsrc/org/aspectj/ajde/ui/utils/TestCompilerConfiguration.java b/ajde/testsrc/org/aspectj/ajde/ui/utils/TestCompilerConfiguration.java index 2e5520a45..32f12c82d 100644 --- a/ajde/testsrc/org/aspectj/ajde/ui/utils/TestCompilerConfiguration.java +++ b/ajde/testsrc/org/aspectj/ajde/ui/utils/TestCompilerConfiguration.java @@ -25,6 +25,7 @@ import org.aspectj.ajde.core.IOutputLocationManager; import org.aspectj.ajde.core.JavaOptions; import org.aspectj.tools.ajc.AjcTests; import org.aspectj.util.FileUtil; +import org.aspectj.util.LangUtil; /** * Test implementation of ICompilerConfiguration. Allows users to configure the settings via setter methods. By default returns null @@ -64,8 +65,12 @@ public class TestCompilerConfiguration implements ICompilerConfiguration { } public String getClasspath() { - return projectPath + File.pathSeparator + System.getProperty("sun.boot.class.path") + File.pathSeparator + String cp = projectPath + File.pathSeparator + System.getProperty("sun.boot.class.path") + File.pathSeparator + AjcTests.aspectjrtClasspath(); + if (LangUtil.is19VMOrGreater()) { + cp = LangUtil.getJrtFsFilePath()+File.pathSeparator+cp; + } + return cp; } public Set getInpath() { diff --git a/ajdoc/testsrc/org/aspectj/tools/ajdoc/AjdocTestCase.java b/ajdoc/testsrc/org/aspectj/tools/ajdoc/AjdocTestCase.java index d75f8cb64..afe288a3b 100644 --- a/ajdoc/testsrc/org/aspectj/tools/ajdoc/AjdocTestCase.java +++ b/ajdoc/testsrc/org/aspectj/tools/ajdoc/AjdocTestCase.java @@ -160,8 +160,14 @@ public class AjdocTestCase extends TestCase { if (inputFiles.length == 0) { fail("need to pass some files into ajdoc"); } - if (!sourceLevel.equals("1.3") && !sourceLevel.equals("1.4") && !sourceLevel.equals("1.5")) { - fail("need to pass ajdoc '1.3', '1.4', or '1.5' as the source level"); + if (!sourceLevel.equals("1.3") && + !sourceLevel.equals("1.4") && + !sourceLevel.equals("1.5") && + !sourceLevel.equals("1.6") && + !sourceLevel.equals("1.7") && + !sourceLevel.equals("1.8") && + !sourceLevel.equals("1.9")) { + fail("need to pass ajdoc '1.3' > '1.9' as the source level"); } String[] args = new String[6 + inputFiles.length + ajOptions.length]; args[0] = "-source"; @@ -186,8 +192,14 @@ public class AjdocTestCase extends TestCase { if (!visibility.equals("public") && !visibility.equals("protected") && !visibility.equals("private")) { fail("need to pass 'public','protected' or 'private' visibility to ajdoc"); } - if (!sourceLevel.equals("1.3") && !sourceLevel.equals("1.4") && !sourceLevel.equals("1.5")) { - fail("need to pass ajdoc '1.3', '1.4', or '1.5' as the source level"); + if (!sourceLevel.equals("1.3") && + !sourceLevel.equals("1.4") && + !sourceLevel.equals("1.5") && + !sourceLevel.equals("1.6") && + !sourceLevel.equals("1.7") && + !sourceLevel.equals("1.8") && + !sourceLevel.equals("1.9")) { + fail("need to pass ajdoc '1.3' > '1.9' as the source level"); } if (inputFiles.length == 0) { fail("need to pass some files into ajdoc"); diff --git a/ajdoc/testsrc/org/aspectj/tools/ajdoc/BugTests.java b/ajdoc/testsrc/org/aspectj/tools/ajdoc/BugTests.java index 647b71b22..163774864 100644 --- a/ajdoc/testsrc/org/aspectj/tools/ajdoc/BugTests.java +++ b/ajdoc/testsrc/org/aspectj/tools/ajdoc/BugTests.java @@ -69,7 +69,7 @@ public class BugTests extends AjdocTestCase { initialiseProject("pr148906"); File[] files = {new File(getAbsoluteProjectDir() + "/C.java")}; String[] ajOptions = {new String("-aspectpath"), new String(getAbsoluteProjectDir() + File.separator + "simple.jar")}; - runAjdoc(files,"1.5",ajOptions); + runAjdoc(files,"1.6",ajOptions); assertFalse("expected clean build of project but found that build aborted",Main.hasAborted()); File html = new File(getAbsolutePathOutdir() + File.separator + "C.html"); if (!html.exists()) { @@ -90,7 +90,7 @@ public class BugTests extends AjdocTestCase { initialiseProject("pr148906"); File[] files = {new File(getAbsoluteProjectDir() + "/C.java")}; String[] ajOptions = {new String("-outxml"),new String("-aspectpath"), new String(getAbsoluteProjectDir() + File.separator + "simple.jar")}; - runAjdoc(files,"1.5",ajOptions); + runAjdoc(files,"1.6",ajOptions); assertFalse("expected clean build of project but found that build aborted",Main.hasAborted()); File html = new File(getAbsolutePathOutdir() + File.separator + "C.html"); if (!html.exists()) { diff --git a/ajdoc/testsrc/org/aspectj/tools/ajdoc/CoverageTestCase.java b/ajdoc/testsrc/org/aspectj/tools/ajdoc/CoverageTestCase.java index 144b4e478..70aa02b22 100644 --- a/ajdoc/testsrc/org/aspectj/tools/ajdoc/CoverageTestCase.java +++ b/ajdoc/testsrc/org/aspectj/tools/ajdoc/CoverageTestCase.java @@ -55,7 +55,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testCoveragePublicMode() throws Exception { File[] files = {file3,file9}; - runAjdoc("public","1.4",files); + runAjdoc("public","1.6",files); // have passed the "public" modifier as well as // one public and one package visible class. There @@ -87,7 +87,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAJdocHasAspectTitle() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/A.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/A.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath()+ " - were there compilation errors?"); @@ -101,7 +101,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAJdocHasClassTitle() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/C.java")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/C.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath()+ " - were there compilation errors?"); @@ -117,7 +117,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testInnerAspect() throws Exception { File[] files = {file1, file2}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/ClassA.InnerAspect.html"); if (!htmlFile.exists()) { @@ -205,7 +205,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdviceNamingCoverage() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/AdviceNamingCoverage.html"); if (!htmlFile.exists()) { @@ -237,7 +237,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisesRelationshipCoverage() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/AdvisesRelationshipCoverage.html"); if (!htmlFile.exists()) { @@ -290,7 +290,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedByMethodExecution() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { @@ -321,7 +321,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedByConstructorExecution() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { @@ -352,7 +352,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedByMethodCall() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { @@ -383,7 +383,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedByConstructorCall() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { @@ -414,7 +414,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedByGet() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { @@ -445,7 +445,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedBySet() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { @@ -494,7 +494,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedByInitialization() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { @@ -522,7 +522,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedByStaticInitialization() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { @@ -543,7 +543,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedByHandler() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { @@ -581,7 +581,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testTwoBeforeAdvice() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/A2.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/C2.html"); if (!htmlFile.exists()) { @@ -627,7 +627,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testNoSpuriousAdvisedByRels() throws Exception { File[] files = {file4}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/AdvisesRelationshipCoverage.html"); if (!htmlFile.exists()) { @@ -646,7 +646,7 @@ public class CoverageTestCase extends AjdocTestCase { public void testCoverage() { File[] files = {aspect1,file0,file1,file2,file3,file4,file5,file6, file7,file8,file9,file10}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); } /** @@ -656,7 +656,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testNestedAspect() throws Exception { File[] files = {file9}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/PkgVisibleClass.NestedAspect.html"); if (!htmlFile.exists()) { @@ -738,7 +738,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testNestedAspectWithSimilarName() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/ClassWithNestedAspect.java")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/ClassWithNestedAspect.NestedAspect.html"); if (!htmlFile.exists()) { @@ -819,7 +819,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdviceInNestedAspect() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/ClassWithNestedAspect.java")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/ClassWithNestedAspect.NestedAspect.html"); if (!htmlFile.exists()) { @@ -850,7 +850,7 @@ public class CoverageTestCase extends AjdocTestCase { */ public void testAdvisedByInNestedAspect() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/ClassWithNestedAspect.java")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/ClassWithNestedAspect.html"); if (!htmlFile.exists()) { diff --git a/ajdoc/testsrc/org/aspectj/tools/ajdoc/DeclareFormsTest.java b/ajdoc/testsrc/org/aspectj/tools/ajdoc/DeclareFormsTest.java index fbb711bdc..130a43a9e 100644 --- a/ajdoc/testsrc/org/aspectj/tools/ajdoc/DeclareFormsTest.java +++ b/ajdoc/testsrc/org/aspectj/tools/ajdoc/DeclareFormsTest.java @@ -39,7 +39,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testCoverage() { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareCoverage.java")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); } /** @@ -49,7 +49,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testDeclareStatments() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareCoverage2.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/DeclareCoverage2.html"); if (!htmlFile.exists()) { @@ -84,7 +84,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testDeclareWarning() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareCoverage2.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/DeclareCoverage2.html"); if (!htmlFile.exists()) { @@ -116,7 +116,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testMatchesDeclareCall() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareCoverage2.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Main2.html"); if (!htmlFile.exists()) { @@ -149,7 +149,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testMatchesDeclareExecution() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareCoverage2.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point2.html"); if (!htmlFile.exists()) { @@ -180,7 +180,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testDeclareParents() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareCoverage2.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/DeclareCoverage2.html"); if (!htmlFile.exists()) { @@ -211,7 +211,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testAspectDeclarations() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareCoverage2.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point2.html"); if (!htmlFile.exists()) { @@ -234,7 +234,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testDeclareSoft() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareCoverage2.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/DeclareCoverage2.html"); if (!htmlFile.exists()) { @@ -265,7 +265,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testSoftenedBy() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareCoverage2.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Main2.html"); if (!htmlFile.exists()) { @@ -304,7 +304,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testDeclareAnnotation() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareAtType.aj")}; - runAjdoc("private","1.5",files); + runAjdoc("private","1.6",files); // Aspect AnnotationTest should contain within it's declare // detail and summary the declare annotation statement. @@ -350,7 +350,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testMethodAnnotatedBy() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareAtMethod.aj")}; - runAjdoc("private","1.5",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/C.html"); if (!htmlFile.exists()) { @@ -383,7 +383,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testConstructorAnnotatedBy() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareAtConstructor.aj")}; - runAjdoc("private","1.5",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/C.html"); if (!htmlFile.exists()) { @@ -417,7 +417,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testFieldAnnotatedBy() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareAtField.aj")}; - runAjdoc("private","1.5",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/C.html"); if (!htmlFile.exists()) { @@ -451,7 +451,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testTypeAnnotatedBy() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareAtType.aj")}; - runAjdoc("private","1.5",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/C.html"); if (!htmlFile.exists()) { @@ -474,7 +474,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testMatchesDeclareAndAdvisedBy() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "A.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/C.html"); if (!htmlFile.exists()) { @@ -520,7 +520,7 @@ public class DeclareFormsTest extends AjdocTestCase { public void testTwoDeclareParents() throws Exception { initialiseProject("declareForms"); File[] files = {new File(getAbsoluteProjectDir() + File.separatorChar + "DeclareParents.aj")}; - runAjdoc("private","1.4",files); + runAjdoc("private","1.6",files); File htmlFile = new File(getAbsolutePathOutdir() + "/foo/DeclareParents.html"); if (!htmlFile.exists()) { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassPath.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassPath.java index 1f624a003..0f5df2d4d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassPath.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassPath.java @@ -108,10 +108,10 @@ public class ClassPath implements Serializable { try { if (file.exists()) { - if (file.isDirectory()) + if (file.isDirectory()) { vec.add(new Dir(path)); - else if (file.getName().endsWith(".jimage")) { - vec.add(new JImage(file)); + } else if (file.getName().endsWith("jrt-fs.jar")) { // TODO a bit crude... + vec.add(new JImage()); } else { vec.add(new Zip(new ZipFile(file))); } @@ -422,21 +422,15 @@ public class ClassPath implements Serializable { private static String JAVA_BASE_PATH = "java.base"; //$NON-NLS-1$ private java.nio.file.FileSystem fs; - private final Map fileMap; - - JImage(File jimage) { - // TODO bizarre that you use getFileSystem with just the jrt:/ and not the path !! What happens - // if there are two? + JImage() { fs = FileSystems.getFileSystem(JRT_URI); fileMap = buildFileMap(); } - private Map buildFileMap() { final Map fileMap = new HashMap<>(); -System.out.println("Building filemap"); final java.nio.file.PathMatcher matcher = fs.getPathMatcher("glob:*.class"); Iterable roots = fs.getRootDirectories(); for (java.nio.file.Path path : roots) { @@ -506,50 +500,11 @@ System.out.println("Building filemap"); // Class files are in here under names like this: // /modules/java.base/java/lang/Object.class (jdk9 b74) // so within a modules top level qualifier and then the java.base module - String fileName = name + suffix; - -// try { -// Path p = fs.getPath(MODULES_PATH,JAVA_BASE_PATH,fileName); -// byte[] bs = Files.readAllBytes(p); -// BasicFileAttributeView bfav = Files.getFileAttributeView(p, BasicFileAttributeView.class); -// BasicFileAttributes bfas = bfav.readAttributes(); -// long time = bfas.lastModifiedTime().toMillis(); -// long size = bfas.size(); -// return new ByteBasedClassFile(bs, "jimage",fileName,time,size); -// } catch (NoSuchFileException nsfe) { -// // try other modules! -// Iterable roots = fs.getRootDirectories(); -// roots = fs.getRootDirectories(); -// for (java.nio.file.Path path : roots) { -// DirectoryStream stream = Files.newDirectoryStream(path); -// try { -// for (java.nio.file.Path module: stream) { -// // module will be something like /packages or /modules -// for (java.nio.file.Path submodule: Files.newDirectoryStream(module)) { -// // submodule will be /modules/java.base or somesuch -// try { -// Path p = fs.getPath(submodule.toString(), fileName); -// byte[] bs = Files.readAllBytes(p); -// BasicFileAttributeView bfav = Files.getFileAttributeView(p, BasicFileAttributeView.class); -// BasicFileAttributes bfas = bfav.readAttributes(); -// long time = bfas.lastModifiedTime().toMillis(); -// long size = bfas.size(); -// return new ByteBasedClassFile(bs, "jimage", fileName,time,size); -// } catch (NoSuchFileException nsfe2) { -// } -// } -// } -// } finally { -// stream.close(); -// } -// } -// return null; -// } + String fileName = name.replace('.', '/') + suffix; Path p = fileMap.get(fileName); if (p == null) { return null; } - // Path p = fs.getPath(MODULES_PATH,JAVA_BASE_PATH,fileName); byte[] bs = Files.readAllBytes(p); BasicFileAttributeView bfav = Files.getFileAttributeView(p, BasicFileAttributeView.class); BasicFileAttributes bfas = bfav.readAttributes(); diff --git a/lib/bcel/bcel-src.zip b/lib/bcel/bcel-src.zip index b3dbc2ea7a9ebba132b28eaff8ef8478e3d46fa1..98eafb651e6f3fddd784972edbaa1205d81866f6 100644 GIT binary patch delta 4839 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 Nvo!z!ulxi6001KNJ1GDF delta 5203 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 Nvo!z!{`~|10010>&h7vJ diff --git a/lib/bcel/bcel-verifier.jar b/lib/bcel/bcel-verifier.jar index c44a3365fc51e5bcf88aa172fae0d480c5236dc5..ce127c29b3e0d86289e6e320912ad2ea6703122a 100644 GIT binary patch delta 1598 zcmXw%du-EH6vuz}>|s|etl0uiL>6%`Kq=@XhHVT4BAe_%7~xgiU?OX~c8_i?rEB-< zN{c~ovL6wh850T&WLWCYESnBv(3$AeEMq!Q`9s1oBR;Z3G)DLP-rK*;%T(>Aj4a+kSc07d;d>Uam2jRbbHFU0H>k$L&1;jD7 zR*m6@sZS5Mp5%T2uwlVEEg+b7Ef!F;WVa4*Y1JTCEIBJK_*ERonLKxE}XsNHiMtCE0Z*;pE$5Tzw@zOd11ftXKvYE$|U5x zS&>0=)SNp~TJKx)Bq_(rWq2Lbfb?bKo7Gumlb_H z&XtU7PsCy9qU%5Mp$%UcxpHjuwH4@SZSI-TBuJ8Rz9bc@9Sur3W9t*tIwhoKXK*!2 z@my9q2U_n!_8mS^$eYWOaMzB(^vz3Wd;Fd*4?9_w-0!A%`QH|LL>Vt(H4ma}({9!_ z7c^>SDfj})bS+EA$V#%Eb@PKFPPRA&d6UOkG1s2#Vh(Jigk*LLzf|#$u|K%x9%tDa zR9yXm{ly2re3wmQW998%*bH7Sa)RFA1{rHMA2@TO*W-D6FX!%GoIB>V#sC!epH|J-?nR(C6KHG6D2k zLCo`h1JyuDYZO*jBUM9*caR0p;1D@?9kid9JIM|B+DY|*jR(mC`0OD00L3nH07hJ7 z1Y{i|GeAB>V*smLG`!&!!>?`<3!ZKg$%!5@hSx){plZrPjexyg0h3;GLD}9caz1Gm zV-&Q|0a%e1`UVha6_&nDtlS!fKikNLoR`~$HQp|sGRG%w^}J84yr@H5%j+FtLgp7a uRzJ0)&x~JKm50R`qld`}s~{j==Ys&|s|etl0uiL>6%`Kq=@XhHVT4BAe_%7~xgiU?OX~c8_i?rEB-< zN{c~ovLB+(i~$7)GA#9HmQ9B-=uC8KmN6Zu{2^hP5g%D1CPw%B-rK*Aj4a+kSc07d;d>Uam2jRbbHFU0H>k$L&1;jD7 zR*m6@sZS5Mp5%T2uwlVEEg+b7Ef!F;WVa4*Y1JTCEIBJK_*ERonLQzE}XsNHiMtCE0Z*;pE$5Tzw@zOd11ft7jD^J$|U5R zs>q-@YR(-gt@rJDl9XiVELo5tH`kL!POT+PIKFat9#ThKLwtaM_ZEk$b`5W5_vP_+ z5&w4_g26A6P*v7l&KLQp=R8l|*W1e>;cP31qvsBAxF0&rq5HxRhdq5h4tFkgaqzw` z%G3J$xiWEO2|qOMYKSYBBfrP$)vfCK?r*Zq-b{cbX|;T1AzK!{Iq)t|@(g~(%Zff3 z=Ss%4C*m-4(ey~X*X+| z3mP@E6np_?x|XG5WF^_oy7@s7CtI9?yvgINm}^gVF$XqMLNdFBU#j@W*q>Z;kF#tI zDz5&>{^o;UzRRYuvGUHZYz8kEIYDpmf@MT2_$cLidKI5px%W6##9^672hN*6PL`x+ zR^sDa%%ue7XeLc1;|NzSO`x4pR!UoVzxTG#+WD$0|5ioI0jVZh1=wk#JiuEfdLD4w zL@xpiW-0-+nQ1HF2QzI4WLu~d5U|ibz`ZDxRnuN51J%MxwF>C4QaP+CEA0Uk*o1P) zMwL*KYiK8+wniuuQCL$elygzg)d|HOg~>W`dVW1spwF3lG6D2k zLCo_(1JyuDYZO*jBUM9*caR0p;1D@?9kid9JIM|B#!2;njR(mC`1~OG0L3nH07hJ7 z1Y{i|GeAB>V*smLG`!&!!>?`<3!ZKg$%!5@hSx){plZrPjexyg0h3;GLD}9caz1Sq zV-&Q|0a%e1`W6sq6_&nDtlS!fzuL%#oR`~$HQp|sGRG%w^@2~Vyr@H5%j+FtLgp7a uRzJ0)&x~JKm50R`qld`}s~{j==feQqgmNM%p7NidcrW7-afdgKP~HEuI~qU$ diff --git a/lib/bcel/bcel.jar b/lib/bcel/bcel.jar index e70b115665adc6aa02a9610327c80d03a1ecb4ff..1542a602fcfed49861925694e66b9fc83152f79a 100644 GIT binary patch delta 12707 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 WT3p|vsbEjn074A^*VjY8X#Wo(_PLY* delta 12881 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 diff --git a/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjcTestCase.java b/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjcTestCase.java index ef744fb14..12b1e3508 100644 --- a/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjcTestCase.java +++ b/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjcTestCase.java @@ -90,6 +90,8 @@ public class AjcTestCase extends TestCase { + "bcel" + File.separator + "bcel-verifier.jar" + + + File.pathSeparator + ".." + File.separator + "lib" + File.separator + "asm" + File.separator + "asm-6.0_BETA.renamed.jar" // When the build machine executes the tests, it is using code built into jars rather than code build into // bin directories. This means for the necessary types to be found we have to put these jars on the classpath: diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/patterns/HasMemberTypePattern.java b/org.aspectj.matcher/src/org/aspectj/weaver/patterns/HasMemberTypePattern.java index 6aa55a45a..2b1f28fd4 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/patterns/HasMemberTypePattern.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/patterns/HasMemberTypePattern.java @@ -87,11 +87,18 @@ public class HasMemberTypePattern extends TypePattern { continue; } if (signaturePattern.matches(method, type.getWorld(), false)) { - if (method.getDeclaringType().resolve(world) != type) { + ResolvedType declaringType = method.getDeclaringType().resolve(world); + if (declaringType != type) { if (Modifier.isPrivate(method.getModifiers())) { continue; } } + // J9: Object.finalize() is marked Deprecated it seems... triggers unhelpful messages + if (method.getName().equals("finalize") && declaringType.equals(ResolvedType.OBJECT) + && (signaturePattern.getAnnotationPattern() instanceof ExactAnnotationTypePattern) + && ((ExactAnnotationTypePattern)signaturePattern.getAnnotationPattern()).getAnnotationType().getSignature().equals("Ljava/lang/Deprecated;")) { + continue; + } return true; } } diff --git a/tests/java5/annotations/itds/AtItd3.aj b/tests/java5/annotations/itds/AtItd3.aj index c3412cf56..8af19ed71 100644 --- a/tests/java5/annotations/itds/AtItd3.aj +++ b/tests/java5/annotations/itds/AtItd3.aj @@ -24,6 +24,7 @@ public class AtItd3 { if (!aa.toString().equals("@Ann(id=goodbye, anInt=4)")) // < Java8 order if (!aa.toString().equals("@Ann(anInt=4, id=goodbye)")) // Java8 order + if (!aa.toString().equals("@Ann(anInt=4, id=\"goodbye\")")) // Java9 quotes strings throw new RuntimeException("Incorrect output, expected:"+ "@Ann(id=goodbye, anInt=4) but got "+aa.toString()); diff --git a/tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml b/tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml index 7ba5316b5..0a8105df7 100644 --- a/tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml +++ b/tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml @@ -109,7 +109,8 @@ - + + diff --git a/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml b/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml index 11746e122..8011cd68f 100644 --- a/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml +++ b/tests/src/org/aspectj/systemtest/ajc1612/ajc1612.xml @@ -257,8 +257,10 @@ - - + + + + diff --git a/tests/src/org/aspectj/systemtest/ajc173/ajc173.xml b/tests/src/org/aspectj/systemtest/ajc173/ajc173.xml index 7c2b88a54..4a784fff8 100644 --- a/tests/src/org/aspectj/systemtest/ajc173/ajc173.xml +++ b/tests/src/org/aspectj/systemtest/ajc173/ajc173.xml @@ -9,7 +9,8 @@ - + + diff --git a/tests/src/org/aspectj/systemtest/ajc190/Ajc190Tests.java b/tests/src/org/aspectj/systemtest/ajc190/Ajc190Tests.java index d2375625b..26d0905e8 100644 --- a/tests/src/org/aspectj/systemtest/ajc190/Ajc190Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc190/Ajc190Tests.java @@ -21,6 +21,18 @@ import junit.framework.Test; */ public class Ajc190Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + public void testVarious_SettingFinalStatic() { + runTest("setting static final outside clinit"); + } + + public void testAnnotMethodHasMember_pr156962_1() { // From similar in Ajc153Tests + runTest("Test Annot Method Has Member 1"); + } + + public void testAnnotMethodHasMember_pr156962_2() { // From similar in Ajc153Tests + runTest("Test Annot Method Has Member 1"); + } + public void testFunnySignature() { runTest("funny signature with method reference"); } diff --git a/tests/src/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java b/tests/src/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java index 70dc872b5..139e99e69 100644 --- a/tests/src/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java +++ b/tests/src/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java @@ -20,6 +20,7 @@ public class AllTestsAspectJ190 { // $JUnit-BEGIN$ suite.addTest(Ajc190Tests.suite()); suite.addTest(SanityTests19.suite()); + suite.addTest(Annotations.suite()); // $JUnit-END$ return suite; } diff --git a/tests/src/org/aspectj/systemtest/ajc190/Annotations.java b/tests/src/org/aspectj/systemtest/ajc190/Annotations.java new file mode 100644 index 000000000..b2f8c267e --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc190/Annotations.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2004, 2017 IBM + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.aspectj.systemtest.ajc190; + +import java.io.File; + +import junit.framework.Test; + +import org.aspectj.apache.bcel.classfile.JavaClass; +import org.aspectj.apache.bcel.classfile.Method; +import org.aspectj.testing.XMLBasedAjcTestCase; + +/** + * A copy of the 1.5.0 Annotations test but with compliance set to 1.9 + * The testdata is referenced in the 150 test folder but the XML file indicates compliance of 1.9. + * + * @author Andy Clement + */ +public class Annotations extends XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Annotations.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/ajc190/ajc190_from150.xml"); + } + + public void testCompilingAnnotation() { + runTest("compiling an annotation"); + } + + public void testCompilingAnnotatedFile() { + runTest("compiling annotated file"); + } + + public void testCompilingUsingWithinAndAnnotationTypePattern() { + runTest("annotations and within (src)"); + } + + /** + * We had a bug where annotations were not present in the output class file for + * methods that got woven. This was due to unpacking bugs in LazyMethodGen. This + * test compiles a simple program then checks the annotations were copied + * across. + */ + public void testBugWithAnnotationsLostOnWovenMethods() throws ClassNotFoundException { + runTest("losing annotations..."); + if (getCurrentTest().canRunOnThisVM()) { + + JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "Program"); + Method[] meths = jc.getMethods(); + for (int i = 0; i < meths.length; i++) { + Method method = meths[i]; + if (method.getName().equals("m1")) { + assertTrue("Didn't have annotations - were they lost? method=" + method.getName(), + method.getAnnotations().length == 1); + } + } + } + } + + public void testAnnotatedAnnotations() { + runTest("annotated annotations (@Target)"); + } + + public void testSimpleAnnotatedAspectMembers() { + runTest("simple annotated aspect members"); + } + + public void testAnnotatedAspectMembersWithWrongAnnotationType() { + runTest("simple annotated aspect members with bad target"); + } + + // more implementation work needed before this test passes + public void testAnnotatedITDs() { + runTest("annotated itds"); + } + + public void testAnnotatedITDs2() { + runTest("annotated public itds"); + } + + public void testAnnotatedITDs3() { + runTest("annotated public itds - values"); + } + + public void testAnnotatedITDs4() { + runTest("annotated public itds - multiple complex annotations"); + } + + public void testAnnotatedITDsWithWrongAnnotationType() { + runTest("annotated itds with bad target"); + } + + public void testAnnotatedAdvice() { + runTest("annotated advice"); + } + + public void testAnnotatedAdviceWithWrongAnnotationType() { + runTest("annotated advice with bad target"); + } + + public void testAnnotatedPointcut() { + runTest("annotated pointcut"); + } + + // FIXME asc uncomment this test when parser is opened up + // public void testAnnotatedDeclareStatements() { + // runTest("annotated declare statements"); + // } + + public void testBasicDeclareAnnotation() { + runTest("basic declare annotation parse test"); + } + + public void testAJDKAnnotatingAspects() { + runTest("ajdk: annotating aspects chapter"); + } + + public void testAJDKAnnotatingAspects2() { + runTest("ajdk: annotating aspects chapter, ex 2"); + } + + public void testAnnotationPatterns() { + runTest("ajdk: annotation pattern matching"); + } + + public void testAnnotationTypePatterns() { + runTest("ajdk: annotation type pattern matching"); + } + + public void testAnnotationSigPatterns() { + runTest("ajdk: annotations in sig patterns"); + } + + public void testAnnotationRuntimeMatching() { + runTest("ajdk: runtime annotations"); + } + + public void testAnnotationRetentionChecking() { + runTest("ajdk: @retention checking"); + } + + public void testAnnotationInheritance() { + runTest("ajdk: @inherited"); + } + + public void testAnnotationDEOW() { + runTest("ajdk: deow-ann"); + } + + public void testAnnotationDecp() { + runTest("ajdk: decp-ann"); + } + + public void testAnnotationDecPrecedence() { + runTest("ajdk: dec precedence"); + } + + public void testAnnotationDecAnnotation() { + runTest("ajdk: dec annotation"); + } + + public void testAnnotationsAndITDs() { + runTest("nasty annotation and itds test"); + } + + // helper methods..... + +} \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/ajc190/ajc190.xml b/tests/src/org/aspectj/systemtest/ajc190/ajc190.xml index a270116e3..c2cb7cee8 100644 --- a/tests/src/org/aspectj/systemtest/ajc190/ajc190.xml +++ b/tests/src/org/aspectj/systemtest/ajc190/ajc190.xml @@ -10,5 +10,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/ajc190/ajc190_from150.xml b/tests/src/org/aspectj/systemtest/ajc190/ajc190_from150.xml new file mode 100644 index 000000000..41a75c0ae --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc190/ajc190_from150.xml @@ -0,0 +1,6290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weaver/src/org/aspectj/weaver/bcel/ClassPathManager.java b/weaver/src/org/aspectj/weaver/bcel/ClassPathManager.java index 92f6cbe6d..2f9c4cfe0 100644 --- a/weaver/src/org/aspectj/weaver/bcel/ClassPathManager.java +++ b/weaver/src/org/aspectj/weaver/bcel/ClassPathManager.java @@ -310,8 +310,8 @@ public class ClassPathManager { public static class JImageEntry extends Entry { private final static FileSystem fs = FileSystems.getFileSystem(JRT_URI); - private final static Map fileCache = new HashMap<>(); - private final static Map packageCache = new HashMap<>(); + private final static Map fileCache = new HashMap(); + private final static Map packageCache = new HashMap(); private static boolean packageCacheInitialized = false; public JImageEntry() { diff --git a/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java b/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java index 933402248..08dd909b7 100644 --- a/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java +++ b/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java @@ -53,6 +53,7 @@ import org.aspectj.apache.bcel.generic.Type; import org.aspectj.bridge.IMessage; import org.aspectj.bridge.ISourceLocation; import org.aspectj.bridge.SourceLocation; +import org.aspectj.util.LangUtil; import org.aspectj.weaver.AjAttribute; import org.aspectj.weaver.AjAttribute.WeaverState; import org.aspectj.weaver.AjAttribute.WeaverVersionInfo; @@ -1003,7 +1004,13 @@ public final class LazyClassGen { return tjpField; } - int modifiers = Modifier.STATIC | Modifier.FINAL ; + int modifiers = Modifier.STATIC; + + // J9: Can't always be final on Java 9 because it is set outside of clinit + // But must be final in interface + if (shadow.getEnclosingClass().isInterface()) { + modifiers |= Modifier.FINAL; + } // XXX - Do we ever inline before or after advice? If we do, then we // better include them in the check below. (or just change it to diff --git a/weaver/testdata/StaticEnclosingTjpBeforeHelloWorld.txt b/weaver/testdata/StaticEnclosingTjpBeforeHelloWorld.txt index 847ee5214..62425ac53 100644 --- a/weaver/testdata/StaticEnclosingTjpBeforeHelloWorld.txt +++ b/weaver/testdata/StaticEnclosingTjpBeforeHelloWorld.txt @@ -1,6 +1,6 @@ public class HelloWorld extends java.lang.Object: - private static final org.aspectj.lang.JoinPoint$EnclosingStaticPart ajc$tjp_0 [Synthetic] - private static final org.aspectj.lang.JoinPoint$EnclosingStaticPart ajc$tjp_1 [Synthetic] + private static org.aspectj.lang.JoinPoint$EnclosingStaticPart ajc$tjp_0 [Synthetic] + private static org.aspectj.lang.JoinPoint$EnclosingStaticPart ajc$tjp_1 [Synthetic] public void (): ALOAD_0 // LHelloWorld; this (line 5) INVOKESPECIAL java.lang.Object. ()V diff --git a/weaver/testdata/StaticTjpBeforeHelloWorld.1.9.txt b/weaver/testdata/StaticTjpBeforeHelloWorld.1.9.txt index 58863d8b4..72ec8a056 100644 --- a/weaver/testdata/StaticTjpBeforeHelloWorld.1.9.txt +++ b/weaver/testdata/StaticTjpBeforeHelloWorld.1.9.txt @@ -1,8 +1,8 @@ public class HelloWorld extends java.lang.Object: - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] public void (): ALOAD_0 // LHelloWorld; this (line 5) INVOKESPECIAL java.lang.Object. ()V diff --git a/weaver/testdata/StaticTjpBeforeHelloWorld.txt b/weaver/testdata/StaticTjpBeforeHelloWorld.txt index 587838f4f..ff631f57f 100644 --- a/weaver/testdata/StaticTjpBeforeHelloWorld.txt +++ b/weaver/testdata/StaticTjpBeforeHelloWorld.txt @@ -1,8 +1,8 @@ public class HelloWorld extends java.lang.Object: - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] public void (): ALOAD_0 // LHelloWorld; this (line 5) INVOKESPECIAL java.lang.Object. ()V diff --git a/weaver/testdata/TjpAround2HelloWorld.1.9.txt b/weaver/testdata/TjpAround2HelloWorld.1.9.txt index 4e334a65c..242d2be48 100644 --- a/weaver/testdata/TjpAround2HelloWorld.1.9.txt +++ b/weaver/testdata/TjpAround2HelloWorld.1.9.txt @@ -1,8 +1,8 @@ public class HelloWorld extends java.lang.Object: - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] public void (): ALOAD_0 // LHelloWorld; ajc$this (line 5) INVOKESPECIAL java.lang.Object. ()V diff --git a/weaver/testdata/TjpAround2HelloWorld.txt b/weaver/testdata/TjpAround2HelloWorld.txt index 6a1affae8..76c19fca8 100644 --- a/weaver/testdata/TjpAround2HelloWorld.txt +++ b/weaver/testdata/TjpAround2HelloWorld.txt @@ -1,8 +1,8 @@ public class HelloWorld extends java.lang.Object: - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] public void (): ALOAD_0 // LHelloWorld; ajc$this (line 5) INVOKESPECIAL java.lang.Object. ()V diff --git a/weaver/testdata/TjpAroundHelloWorld.1.9.txt b/weaver/testdata/TjpAroundHelloWorld.1.9.txt index 1e814c70d..65abd2ef6 100644 --- a/weaver/testdata/TjpAroundHelloWorld.1.9.txt +++ b/weaver/testdata/TjpAroundHelloWorld.1.9.txt @@ -1,8 +1,8 @@ public class HelloWorld extends java.lang.Object: - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] public void (): ALOAD_0 // LHelloWorld; ajc$this (line 5) INVOKESPECIAL java.lang.Object. ()V diff --git a/weaver/testdata/TjpAroundHelloWorld.txt b/weaver/testdata/TjpAroundHelloWorld.txt index 3643d2c07..6b065bdc9 100644 --- a/weaver/testdata/TjpAroundHelloWorld.txt +++ b/weaver/testdata/TjpAroundHelloWorld.txt @@ -1,8 +1,8 @@ public class HelloWorld extends java.lang.Object: - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] public void (): ALOAD_0 // LHelloWorld; ajc$this (line 5) INVOKESPECIAL java.lang.Object. ()V diff --git a/weaver/testdata/TjpBeforeHelloWorld.1.9.txt b/weaver/testdata/TjpBeforeHelloWorld.1.9.txt index 900dc009f..0c34c3bf1 100644 --- a/weaver/testdata/TjpBeforeHelloWorld.1.9.txt +++ b/weaver/testdata/TjpBeforeHelloWorld.1.9.txt @@ -1,8 +1,8 @@ public class HelloWorld extends java.lang.Object: - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] public void (): ALOAD_0 // LHelloWorld; this (line 5) INVOKESPECIAL java.lang.Object. ()V diff --git a/weaver/testdata/TjpBeforeHelloWorld.txt b/weaver/testdata/TjpBeforeHelloWorld.txt index c8ed93a86..d169c765c 100644 --- a/weaver/testdata/TjpBeforeHelloWorld.txt +++ b/weaver/testdata/TjpBeforeHelloWorld.txt @@ -1,8 +1,8 @@ public class HelloWorld extends java.lang.Object: - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] - private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_1 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_2 [Synthetic] + private static org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_3 [Synthetic] public void (): ALOAD_0 // LHelloWorld; this (line 5) INVOKESPECIAL java.lang.Object. ()V -- 2.39.5