Mon, 03 Jun 2013 12:57:53 -0300
8015814: loadWithNewGlobal needs to wrap createGlobal in AccessController.doPrivileged
Reviewed-by: sundar
Contributed-by: james.laskey@oracle.com
src/jdk/nashorn/internal/runtime/Context.java | file | annotate | diff | comparison | revisions |
1.1 --- a/src/jdk/nashorn/internal/runtime/Context.java Mon Jun 03 11:16:33 2013 -0300 1.2 +++ b/src/jdk/nashorn/internal/runtime/Context.java Mon Jun 03 12:57:53 2013 -0300 1.3 @@ -500,9 +500,21 @@ 1.4 * 1.5 * @throws IOException if source cannot be found or loaded 1.6 */ 1.7 - public Object loadWithNewGlobal(final Object from) throws IOException { 1.8 + public Object loadWithNewGlobal(final Object from) throws IOException, RuntimeException { 1.9 final ScriptObject oldGlobal = getGlobalTrusted(); 1.10 - final ScriptObject newGlobal = createGlobal(); 1.11 + final ScriptObject newGlobal = AccessController.doPrivileged(new PrivilegedAction<ScriptObject>() { 1.12 + @Override 1.13 + public ScriptObject run() { 1.14 + try { 1.15 + return createGlobal(); 1.16 + } catch (final RuntimeException e) { 1.17 + if (Context.DEBUG) { 1.18 + e.printStackTrace(); 1.19 + } 1.20 + throw e; 1.21 + } 1.22 + } 1.23 + }); 1.24 setGlobalTrusted(newGlobal); 1.25 1.26 try {