aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--testing/src/test/java/org/aspectj/testing/RunSpec.java8
-rw-r--r--tests/src/test/resources/org/aspectj/systemtest/ajc150/ltw/ltw.xml31
-rw-r--r--tests/src/test/resources/org/aspectj/systemtest/ajc1612/ajc1612.xml2
3 files changed, 36 insertions, 5 deletions
diff --git a/testing/src/test/java/org/aspectj/testing/RunSpec.java b/testing/src/test/java/org/aspectj/testing/RunSpec.java
index d687ae86b..534ed6374 100644
--- a/testing/src/test/java/org/aspectj/testing/RunSpec.java
+++ b/testing/src/test/java/org/aspectj/testing/RunSpec.java
@@ -22,7 +22,7 @@ import java.util.StringTokenizer;
import org.aspectj.tools.ajc.AjcTestCase;
import org.aspectj.util.FileUtil;
-import static org.aspectj.util.LangUtil.is16VMOrGreater;
+import static org.aspectj.util.LangUtil.is9VMOrGreater;
/**
* @author Adrian Colyer
@@ -70,7 +70,11 @@ public class RunSpec implements ITestStep {
// On Java 16+, LTW no longer works without this parameter. Add the argument here and not in AjcTestCase::run,
// because even if 'useLTW' and 'useFullLTW' are not set, we might in the future have tests for weaver attachment
// during runtime. See also docs/dist/doc/README-187.html.
- vmargs += is16VMOrGreater() ? " --add-opens java.base/java.lang=ALL-UNNAMED" : "";
+ //
+ // The reason for setting this parameter for Java 9+ instead of 16+ is that it helps to avoid the JVM printing
+ // unwanted illegal access warnings during weaving in 'useFullLTW' mode, either making existing tests fail or
+ // having to assert on the warning messages.
+ vmargs += is9VMOrGreater() ? " --add-opens java.base/java.lang=ALL-UNNAMED" : "";
AjcTestCase.RunResult rr = inTestCase.run(getClassToRun(), getModuleToRun(), args, vmargs, getClasspath(), getModulepath(), useLtw, "true".equalsIgnoreCase(usefullltw));
diff --git a/tests/src/test/resources/org/aspectj/systemtest/ajc150/ltw/ltw.xml b/tests/src/test/resources/org/aspectj/systemtest/ajc150/ltw/ltw.xml
index 975b35cd8..6e66e388e 100644
--- a/tests/src/test/resources/org/aspectj/systemtest/ajc150/ltw/ltw.xml
+++ b/tests/src/test/resources/org/aspectj/systemtest/ajc150/ltw/ltw.xml
@@ -221,7 +221,7 @@
<line text="Main.test1" />
<line text="Main.test2" />
</stdout>
- <stderr>
+ <stderr ordered="no">
<line text="info AspectJ Weaver Version" />
<line text="info register classloader" />
<line text="info using" />
@@ -229,6 +229,33 @@
<line text="debug weaving 'ConcreteAspect'" />
<line text="debug generating class 'ConcreteAspect'" />
<line text="debug weaving 'Main'" />
+
+ <!-- In full LTW mode with weaver option '-debug' in aop.xml, the weaver prints this -->
+ <line text="debug cannot weave 'org.aspectj.lang.Signature'" />
+ <line text="debug cannot weave 'org.aspectj.runtime.reflect.Factory'" />
+ <line text="debug cannot weave 'org.aspectj.lang.JoinPoint$StaticPart'" />
+ <line text="debug cannot weave 'org.aspectj.lang.JoinPoint$EnclosingStaticPart'" />
+ <line text="debug cannot weave 'org.aspectj.lang.JoinPoint'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.MethodSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.CodeSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.MemberSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.ConstructorSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.FieldSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.AdviceSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.CatchClauseSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.LockSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.UnlockSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.InitializerSignature'" />
+ <line text="debug cannot weave 'org.aspectj.lang.reflect.SourceLocation'" />
+ <line text="debug cannot weave 'org.aspectj.runtime.reflect.MethodSignatureImpl'" />
+ <line text="debug cannot weave 'org.aspectj.runtime.reflect.CodeSignatureImpl'" />
+ <line text="debug cannot weave 'org.aspectj.runtime.reflect.MemberSignatureImpl'" />
+ <line text="debug cannot weave 'org.aspectj.runtime.reflect.SignatureImpl'" />
+ <line text="debug cannot weave 'org.aspectj.runtime.reflect.SignatureImpl$Cache'" />
+ <line text="debug cannot weave 'org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl'" />
+ <line text="debug cannot weave 'org.aspectj.runtime.reflect.SourceLocationImpl'" />
+ <line text="debug cannot weave 'org.aspectj.lang.NoAspectBoundException'" />
+
<line text="AbstractSuperAspect.before_test1" />
</stderr>
</run>
@@ -244,7 +271,7 @@
text="this affected type is not exposed to the weaver: TestITDMethod" />
</compile>
<run class="TestITDMethod" options="test"
- ltw="aop-abstractaspect.xml">
+ ltw="aop-abstractaspect.xml" usefullltw="true">
<stdout>
<line text="TestITDMethod.main" />
</stdout>
diff --git a/tests/src/test/resources/org/aspectj/systemtest/ajc1612/ajc1612.xml b/tests/src/test/resources/org/aspectj/systemtest/ajc1612/ajc1612.xml
index 11049dcf9..aade93bf6 100644
--- a/tests/src/test/resources/org/aspectj/systemtest/ajc1612/ajc1612.xml
+++ b/tests/src/test/resources/org/aspectj/systemtest/ajc1612/ajc1612.xml
@@ -13,7 +13,7 @@
<ajc-test dir="bugs1612/xmldefs" title="xml defined advice">
<compile files="Hello.java JavaHelper.java"/>
- <run class="Hello" ltw="aop.xml">
+ <run class="Hello" ltw="aop.xml" usefullltw="true">
<stdout>
<line text="Hello"/>
<line text="in advice"/>