You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2014/12/09 17:38:56 UTC

svn commit: r1644116 - /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/_ClassByteCodeAnnotationFilter.java

Author: lu4242
Date: Tue Dec  9 16:38:56 2014
New Revision: 1644116

URL: http://svn.apache.org/r1644116
Log:
MYFACES-3945 _ClassByteCodeAnnotationFilter does not handle SE8 .class files properly

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/_ClassByteCodeAnnotationFilter.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/_ClassByteCodeAnnotationFilter.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/_ClassByteCodeAnnotationFilter.java?rev=1644116&r1=1644115&r2=1644116&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/_ClassByteCodeAnnotationFilter.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/_ClassByteCodeAnnotationFilter.java Tue Dec  9 16:38:56 2014
@@ -48,7 +48,12 @@ class _ClassByteCodeAnnotationFilter
     private static final int CP_INFO_DOUBLE = 6;
     private static final int CP_INFO_NAME_AND_TYPE = 12;
     private static final int CP_INFO_UTF8 = 1;
-    
+
+    private static final int CP_INFO_METHOD_HANDLE = 15;
+    private static final int CP_INFO_METHOD_TYPE = 16;
+    private static final int CP_INFO_INVOKE_DYNAMIC = 18;
+
+
     /**
      * Checks if the .class file referenced by the DataInput could 
      * contain the annotation names available in the set.
@@ -170,6 +175,26 @@ class _ClassByteCodeAnnotationFilter
                     in.readUnsignedShort();
                     in.readUnsignedShort();
                     break;
+
+                case CP_INFO_METHOD_HANDLE:     // Ignore
+                    // u1 reference_kind
+                    // u2 reference_index
+                    in.readUnsignedByte();
+                    in.readUnsignedShort();
+                    break;
+
+                case CP_INFO_METHOD_TYPE:       // Ignore
+                    // u2 descriptor_index
+                    in.readUnsignedShort();
+                    break;
+
+                case CP_INFO_INVOKE_DYNAMIC:    // Ignore
+                    // u2 bootstrap_method_attr_index;
+                    // u2 name_and_type_index;
+                    in.readUnsignedShort();
+                    in.readUnsignedShort();
+                    break;
+
                 default:
                     // THIS SHOULD NOT HAPPEN! Log error info
                     // and break for loop, because from this point