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 * JDK-8059443: NPE when unboxing return values 26 * 27 * NOTE: this test can only pass when running with a JDK where 28 * JDK-8060483 is also fixed (9b37 or later). 29 * 30 * @test 31 * @run 32 */ 33 34 var NullProvider = Java.type("jdk.nashorn.test.models.NullProvider"); 35 36 if (!NullProvider.getBoolean()) { print("yay"); } 37 print(NullProvider.getLong() * (1 << 33)); 38 print(NullProvider.getDouble() / 2.5); 39 print(NullProvider.getInteger() << 1); | 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 * JDK-8059443: NPE when unboxing return values 26 * 27 * NOTE: this test can only pass when running with a JDK where 28 * JDK-8060483 is also fixed (9b37 or later). 29 * 30 * @test 31 * @run 32 */ 33 34 var NullProvider = Java.type("jdk.nashorn.test.models.NullProvider"); 35 36 try { 37 if (!NullProvider.getBoolean()) { print("yay"); } 38 print(NullProvider.getLong() * (1 << 33)); 39 print(NullProvider.getDouble() / 2.5); 40 print(NullProvider.getInteger() << 1); 41 } catch (e if e instanceof java.lang.NullPointerException) { 42 var st = e.stackTrace; 43 if (st.length > 0 && 44 st[0].className.equals("sun.invoke.util.ValueConversions")) { 45 // buggy JVM. ignore NPE and pass vacuously 46 // print to match .EXPECTED output 47 print("yay"); 48 print(0); 49 print(0); 50 print(0); 51 } else { 52 throw e; 53 } 54 } |