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 * @test 26 * @bug 8036987 27 * @run 28 */ 29 30 var factory = Java.type('jdk.nashorn.api.scripting.NashornScriptEngineFactory') 31 var engine = new factory().getScriptEngine(function(str){ 32 return str.indexOf('java.lang.Class') != -1 33 || str == 'java.lang.System' 34 || str.indexOf('java.util') != -1; 35 }) 36 37 function tryEval (str) { 38 try { 39 print(eval(str)) 40 print(engine.eval(str)) 41 } catch (exc) { 42 print(exc.message) 43 } 44 } 45 46 tryEval("Java.type('java.util.ArrayList')") 47 tryEval("Java.type('java.lang.String')") 48 tryEval("java.util.ArrayList") 49 tryEval("java.lang.String") 50 tryEval("Java.extend(java.util.ArrayList, {})") 51 tryEval("Java.extend(java.io.File, {})") 52 tryEval("new java.lang.NullPointerException();") 53 tryEval("try { java.lang.System.load(null) } catch (e) { e }")