< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java

Print this page
rev 47453 : imported patch jdk-new-asm-update.patch

@@ -56,27 +56,25 @@
 import java.util.function.IntSupplier;
 import java.util.function.Supplier;
 import java.util.stream.Collectors;
 
 import jdk.internal.module.Checks;
-import jdk.internal.module.ClassFileAttributes;
-import jdk.internal.module.ClassFileConstants;
 import jdk.internal.module.DefaultRoots;
 import jdk.internal.module.IllegalAccessMaps;
 import jdk.internal.module.ModuleHashes;
 import jdk.internal.module.ModuleInfo.Attributes;
 import jdk.internal.module.ModuleInfoExtender;
 import jdk.internal.module.ModuleReferenceImpl;
 import jdk.internal.module.ModuleResolution;
 import jdk.internal.module.ModuleTarget;
-import jdk.internal.org.objectweb.asm.Attribute;
+
 import jdk.internal.org.objectweb.asm.ClassReader;
 import jdk.internal.org.objectweb.asm.ClassVisitor;
 import jdk.internal.org.objectweb.asm.ClassWriter;
 import jdk.internal.org.objectweb.asm.MethodVisitor;
+import jdk.internal.org.objectweb.asm.ModuleVisitor;
 import jdk.internal.org.objectweb.asm.Opcodes;
-
 import static jdk.internal.org.objectweb.asm.Opcodes.*;
 
 import jdk.tools.jlink.internal.ModuleSorter;
 import jdk.tools.jlink.plugin.Plugin;
 import jdk.tools.jlink.plugin.PluginException;

@@ -433,28 +431,29 @@
                     + descriptor.name() + " are not present: " + nonExistPackages);
             }
         }
 
         boolean hasModulePackages() throws IOException {
-            Set<String> attrTypes = new HashSet<>();
-            ClassVisitor cv = new ClassVisitor(Opcodes.ASM5) {
+            Set<String> packages = new HashSet<>();
+            ClassVisitor cv = new ClassVisitor(Opcodes.ASM6) {
                 @Override
-                public void visitAttribute(Attribute attr) {
-                    attrTypes.add(attr.type);
+                public ModuleVisitor visitModule(String name,
+                                                 int flags,
+                                                 String version) {
+                    return new ModuleVisitor(Opcodes.ASM6) {
+                        public void visitPackage(String pn) {
+                            packages.add(pn);
                 }
             };
-
-            // prototype of attributes that should be parsed
-            Attribute[] attrs = new Attribute[] {
-                new ClassFileAttributes.ModulePackagesAttribute()
+                }
             };
 
             try (InputStream in = getInputStream()) {
                 // parse module-info.class
                 ClassReader cr = new ClassReader(in);
-                cr.accept(cv, attrs, 0);
-                return attrTypes.contains(ClassFileConstants.MODULE_PACKAGES);
+                cr.accept(cv, 0);
+                return packages.size() > 0;
             }
         }
 
         /**
          * Returns true if module-info.class should be rewritten to add the
< prev index next >