1 /* 2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 /* 25 * This test contains a BootstrapMethods attribute with an empty 26 * bootstrap_methods table. This yields a BootstrapMethods 27 * attribute length of 2 and should not cause a 28 * java.lang.ClassFormatError to be thrown. 29 */ 30 class emptynumbootstrapmethods1 { 31 0xCAFEBABE; 32 0; // minor version 33 51; // version 34 [12] { // Constant Pool 35 ; // first element is empty 36 class #2; // #1 at 0x0A 37 Utf8 "emptynumbootstrapmethods1"; // #2 at 0x0D 38 class #4; // #3 at 0x1F 39 Utf8 "java/lang/Object"; // #4 at 0x22 40 MethodHandle 5b #9; // #5 at 0x35 41 NameAndType #7 #8; // #6 at 0x39 42 Utf8 "equals"; // #7 at 0x3E 43 Utf8 "(Ljava/lang/Object;)Z"; // #8 at 0x47 44 Method #3 #6; // #9 at 0x5F 45 Utf8 "equalsx"; // #10 at 0x3E 46 Utf8 "BootstrapMethods"; // #11 at 0x69 47 } // Constant Pool 48 49 0x0001; // access 50 #1;// this_cpx 51 #3;// super_cpx 52 53 [0] { // Interfaces 54 } // Interfaces 55 56 [0] { // fields 57 } // fields 58 59 [0] { // methods 60 } // methods 61 62 [1] { // Attributes 63 Attr(#11, 2) { // BootstrapMethods at 0x8A 64 [0] { // bootstrap_methods 65 } 66 } // end BootstrapMethods 67 } // Attributes 68 } // end class atrbsm00101m10p