test/hotspot/jtreg/runtime/classFileParserBug/UnknownAttr.jcod
changeset 51297 9d49099287b1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/classFileParserBug/UnknownAttr.jcod	Thu Jul 26 15:56:37 2018 -0400
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// This class has an unknown attribute called UnknownAttr.Added.  The
+// attribute should be ignored by the JVM.
+//
+class UnknownAttr { 
+  0xCAFEBABE; 
+  0; // minor version 
+  55; // version 
+  [] { // Constant Pool 
+    ; // first element is empty 
+    class #2; // #1 
+    Utf8 "UnknownAttr"; // #2 
+    class #4; // #3 
+    Utf8 "java/lang/Object"; // #4 
+    Utf8 "<init>"; // #5 
+    Utf8 "()V"; // #6 
+    Utf8 "Code"; // #7 
+    Method #3 #9; // #8 
+    NameAndType #5 #6; // #9 
+    Utf8 "main"; // #10 
+    Utf8 "([Ljava/lang/String;)V"; // #11 
+    Utf8 "UnknownAttr.Added"; // #12 
+  } // Constant Pool 
+
+  0x0021; // access 
+  #1;// this_cpx 
+  #3;// super_cpx 
+
+  [] { // Interfaces 
+  } // Interfaces 
+
+  [] { // fields 
+  } // fields 
+
+  [] { // methods 
+    { // Member 
+      0x0001; // access 
+      #5; // name_cpx 
+      #6; // sig_cpx 
+      [] { // Attributes 
+        Attr(#7) { // Code 
+          1; // max_stack 
+          1; // max_locals 
+          Bytes[]{ 
+            0x2AB70008B1; 
+          } 
+          [] { // Traps 
+          } // end Traps 
+          [] { // Attributes 
+          } // Attributes 
+        } // end Code 
+      } // Attributes 
+    } // Member 
+    ; 
+    { // Member 
+      0x0009; // access 
+      #10; // name_cpx 
+      #11; // sig_cpx 
+      [] { // Attributes 
+        Attr(#7) { // Code 
+          0; // max_stack 
+          1; // max_locals 
+          Bytes[]{ 
+            0xB1; 
+          } 
+          [] { // Traps 
+          } // end Traps 
+          [] { // Attributes 
+          } // Attributes 
+        } // end Code 
+      } // Attributes 
+    } // Member 
+  } // methods 
+
+  [] { // Attributes 
+    Attr(#12) { // UnknownAttr.Added 
+      0x00; 
+    } // end UnknownAttr.Added 
+  } // Attributes 
+} // end class UnknownAttr