]> source.dussan.org Git - aspectj.git/commitdiff
Make BCEL classpath utility recognise Java 15, fixing many tests
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Sat, 13 Mar 2021 07:16:30 +0000 (14:16 +0700)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Sat, 13 Mar 2021 07:16:30 +0000 (14:16 +0700)
Inside org.aspectj.apache.bcel.util.ClassPath.getClassPath(), some JVM
version matching occurs which previously did not include Java 15.
Technically, AspectJ 1.9.6 does not support Java 15, but on GitHub
Actions there is a build job running on a JVM 15. This change should at
least make the weaver tests pass, making that test job more meaningful.

This fixes test errors like

java.lang.ClassCastException:
  class org.aspectj.weaver.MissingResolvedTypeWithKnownSignature
  cannot be cast to class
  org.aspectj.weaver.ReferenceType
  (org.aspectj.weaver.MissingResolvedTypeWithKnownSignature and
  org.aspectj.weaver.ReferenceType are in unnamed module
  of loader 'app')

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
bcel-builder/src/main/java/org/aspectj/apache/bcel/util/ClassPath.java

index 35666b3344ffc78c184784f6d38c650f35ae77c8..7d3d18de662cc1a0b79c89856df8ed74da5bd451 100644 (file)
@@ -227,11 +227,7 @@ public class ClassPath implements Serializable {
                }
 
                // On Java9 the sun.boot.class.path won't be set. System classes accessible through JRT filesystem
-               if (vm_version.startsWith("9") || vm_version.startsWith("10")
-                               || vm_version.startsWith("11")
-                               || vm_version.startsWith("12")
-                               || vm_version.startsWith("13")
-                               || vm_version.startsWith("14")) {
+               if (vm_version.matches("^(9|10|11|12|13|14|15).*")) {
                        buf.insert(0, File.pathSeparatorChar);
                        buf.insert(0, System.getProperty("java.home") + File.separator + "lib" + File.separator + JRT_FS);
                }