You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2018/03/25 12:44:23 UTC

[maven-dependency-analyzer] 03/03: [MSHARED-710] - JDK 9 / 10 Issue - Unknown constant pool type o Added missing constants to the ConstantPoolParser.

This is an automated email from the ASF dual-hosted git repository.

khmarbaise pushed a commit to branch MSHARED-710
in repository https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git

commit 4d063367b5af8c1c37dce110e8ce9971ba658729
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Sun Mar 25 14:41:43 2018 +0200

    [MSHARED-710] - JDK 9 / 10 Issue - Unknown constant pool type
     o Added missing constants to the ConstantPoolParser.
---
 .../dependency/analyzer/asm/ConstantPoolParser.java  | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java
index 8e2b2d5..5c758d6 100644
--- a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java
+++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java
@@ -65,6 +65,18 @@ public class ConstantPoolParser
     public static final byte CONSTANT_METHOD_TYPE = 16;
 
     public static final byte CONSTANT_INVOKE_DYNAMIC = 18;
+    
+    // JDK 9:
+    // https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4
+    // JDK 10:
+    // https://docs.oracle.com/javase/specs/jvms/se10/html/jvms-4.html#jvms-4.3
+    public static final byte CONSTANT_MODULE = 19;
+
+    // JDK 9:
+    // https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4
+    // JDK 10:
+    // https://docs.oracle.com/javase/specs/jvms/se10/html/jvms-4.html#jvms-4.3
+    public static final byte CONSTANT_PACKAGE = 20;
 
     private static final int OXF0 = 0xf0;
 
@@ -93,7 +105,7 @@ public class ConstantPoolParser
             switch ( tag )
             {
                 default:
-                    throw new RuntimeException( "Unknown constant pool type" );
+                    throw new RuntimeException( "Unknown constant pool type '" + tag + "'" );
                 case CONSTANT_UTF8:
                     stringConstants.put( ix, decodeString( buf ) );
                     continue;
@@ -131,6 +143,12 @@ public class ConstantPoolParser
                     buf.getChar();
                     buf.getChar();
                     break;
+                case CONSTANT_MODULE:
+                    buf.getChar();
+                    break;
+                case CONSTANT_PACKAGE:
+                    buf.getChar();
+                    break;  
             }
         }
         Set<String> result = new HashSet<String>();

-- 
To stop receiving notification emails like this one, please contact
khmarbaise@apache.org.