]> source.dussan.org Git - aspectj.git/commitdiff
Fix AtAjLTWTests::testLTWDumpProxy for Java 16
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Tue, 23 Mar 2021 05:55:48 +0000 (12:55 +0700)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Tue, 23 Mar 2021 10:03:17 +0000 (17:03 +0700)
Before Java 16, JDK proxies were given a virtual package name of
'com.sun.proxy'. Now the packages are numbered 'jdk.proxy[n]', i.e.
'jdk.proxy1', 'jdk.proxy2' etc. This makes the package-name-derived path
name here less predictable. In our simple runtime scenario, we can be
pretty sure than the counter starts at 1 because it is the first and
only proxy we create.

TODO: A better solution would be a recursive filtered search via
Files.walk, ideally added as a recursive search option for
CountingFilenameFilter.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
tests/src/test/java/org/aspectj/systemtest/ajc150/ataspectj/AtAjLTWTests.java

index 16f7321a989cee536e5cde962d27a6300bca4537..15f3f07961be9c75ff922f937e930f2e5dc6bc2f 100644 (file)
@@ -19,6 +19,8 @@ import org.aspectj.util.FileUtil;
 
 import junit.framework.Test;
 
+import static org.aspectj.util.LangUtil.is16VMOrGreater;
+
 /**
  * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a>
  */
@@ -133,11 +135,21 @@ public class AtAjLTWTests extends XMLBasedAjcTestCase {
 
                // The working directory is different because this test must be forked
                File dir = new File("../tests/java5/ataspectj");
-               File f = new File(dir, "_ajdump/_before/com/sun/proxy");
+
+               // Before Java 16, JDK proxies were given a virtual package name of 'com.sun.proxy'. Now the packages are numbered
+               // 'jdk.proxy[n]', i.e. 'jdk.proxy1', 'jdk.proxy2' etc. This makes the package-name-derived path name here less
+               // predictable. In our simple runtime scenario, we can be pretty sure than the counter starts at 1 because
+               // it is the first and only proxy we create.
+               //
+               // TODO: A better solution would be a recursive filtered search via Files.walk, ideally added as a recursive search
+               //       option for CountingFilenameFilter.
+               String proxyDir = is16VMOrGreater() ? "jdk/proxy1" : "com/sun/proxy";
+
+               File f = new File(dir, "_ajdump/_before/" + proxyDir);
                CountingFilenameFilter cff = new CountingFilenameFilter(".class");
                f.listFiles(cff);
                assertEquals("Expected dump file in " + f.getAbsolutePath(), 1, cff.getCount());
-               f = new File(dir, "_ajdump/com/sun/proxy");
+               f = new File(dir, "_ajdump/" + proxyDir);
                cff = new CountingFilenameFilter(".class");
                f.listFiles(cff);
                assertEquals(1, cff.getCount());