Subj : Re: Rhino and MS JVM (sic) To : netscape.public.mozilla.jseng From : ariel_ml@netvision.net.il (Ariel Malka) Date : Tue Aug 26 2003 06:15 pm Igor Bukanov wrote: > What do you mean by small-footprint js.jar ? And could you give an > example of a script leading to such exceptions? Rhino with interpreter > mode should work fine under MS JVM in applets. By small-footprint js.jar, i mean removing the 4 following folders: org/mozilla/classfile org/mozilla/javascript/optimizer org/mozilla/javascript/regexp org/mozilla/javascript/tools + all the classes starting with "JavaAdapter" in org/mozilla/javascript Now, the exceptions i'm mentioning are not related to javascript evaluation errors. They rather occur anytime Context.enter() and Context.initStandardObjects() are invoked. But again, these are not fatal exceptions (javascript is being evaluated correctly). Following is the applet code i'm using (works okay with sun JRE): (after the code, i've put the exceptions i'm receving with MS JVM) public class Shell3 extends Applet { private TextArea codeBox; private Button buttonRun; private Context cx; private Scriptable scope; public void init() { setLayout(new BorderLayout()); codeBox = new TextArea(); buttonRun = new Button("Run"); buttonRun.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { evaluate(codeBox.getText()); } }); add(codeBox, BorderLayout.CENTER); add(buttonRun, BorderLayout.SOUTH); } public void evaluate(String command) { try { cx = Context.enter(); cx.setOptimizationLevel(-1); scope = cx.initStandardObjects(null); Object result = cx.evaluateString(scope, command, "", 1, null); System.out.println(Context.toString(result)); } catch(JavaScriptException jse) {} catch(SecurityException se) { System.out.println("BILLY!"); // never catched! } catch(EcmaError ee) { System.out.println(ee); } finally { Context.exit(); } } } com.ms.security.SecurityExceptionEx[org/mozilla/javascript/ScriptRuntime.classOrNull]: java.io.IOException: bad path: E:\Works\ECLIPSE\workspace\RHINO\org\mozilla\javascript\optimizer\Codegen.class at com/ms/security/permissions/FileIOPermission.check at com/ms/security/PolicyEngine.deepCheck at com/ms/security/PolicyEngine.checkPermission at com/ms/security/StandardSecurityManager.chk at com/ms/security/StandardSecurityManager.checkRead at java/io/File.isDirectory at sun/net/www/protocol/file/FileURLConnection.connect at sun/net/www/protocol/file/FileURLConnection.getInputStream at com/ms/vm/loader/ResourceLoader.getURLData at com/ms/vm/loader/ResourceLoader.getCodebaseRelativeData at com/ms/vm/loader/ResourceLoader.getClassData at com/ms/vm/loader/URLClassLoader.findClass at com/ms/vm/loader/URLClassLoader.loadClass at java/lang/ClassLoader.loadClassInternal at java/lang/Class.forName at org/mozilla/javascript/ScriptRuntime.classOrNull at org/mozilla/javascript/Context. at org/mozilla/javascript/Context.enter at Shell3.evaluate at Shell3$1.actionPerformed at java/awt/Button.processActionEvent at java/awt/Button.processEvent at java/awt/Component.dispatchEventImpl at java/awt/Component.dispatchEvent at java/awt/EventDispatchThread.run com.ms.security.SecurityExceptionEx[org/mozilla/javascript/ScriptRuntime.classOrNull]: java.io.IOException: bad path: E:\Works\ECLIPSE\workspace\RHINO\java\lang\ThreadLocal.class at com/ms/security/permissions/FileIOPermission.check at com/ms/security/PolicyEngine.deepCheck at com/ms/security/PolicyEngine.checkPermission at com/ms/security/StandardSecurityManager.chk at com/ms/security/StandardSecurityManager.checkRead at java/io/File.isDirectory at sun/net/www/protocol/file/FileURLConnection.connect at sun/net/www/protocol/file/FileURLConnection.getInputStream at com/ms/vm/loader/ResourceLoader.getURLData at com/ms/vm/loader/ResourceLoader.getCodebaseRelativeData at com/ms/vm/loader/ResourceLoader.getClassData at com/ms/vm/loader/URLClassLoader.findClass at com/ms/vm/loader/URLClassLoader.loadClass at java/lang/ClassLoader.loadClassInternal at java/lang/Class.forName at org/mozilla/javascript/ScriptRuntime.classOrNull at org/mozilla/javascript/Context. at org/mozilla/javascript/Context.enter at Shell3.evaluate at Shell3$1.actionPerformed at java/awt/Button.processActionEvent at java/awt/Button.processEvent at java/awt/Component.dispatchEventImpl at java/awt/Component.dispatchEvent at java/awt/EventDispatchThread.run com.ms.security.SecurityExceptionEx[org/mozilla/javascript/Context.]: Reflective access to class java.lang.Thread prohibited. at com/ms/security/permissions/ReflectionPermission.check at com/ms/security/PolicyEngine.deepCheck at com/ms/security/PolicyEngine.checkPermission at com/ms/security/StandardSecurityManager.chk at com/ms/security/StandardSecurityManager.checkMemberAccess at java/lang/Class.checkMemberAccess at java/lang/Class.getDeclaredMethod at org/mozilla/javascript/Context. at org/mozilla/javascript/Context.enter at Shell3.evaluate at Shell3$1.actionPerformed at java/awt/Button.processActionEvent at java/awt/Button.processEvent at java/awt/Component.dispatchEventImpl at java/awt/Component.dispatchEvent at java/awt/EventDispatchThread.run com.ms.security.SecurityExceptionEx[org/mozilla/javascript/ScriptRuntime.classOrNull]: java.io.IOException: bad path: E:\Works\ECLIPSE\workspace\RHINO\org\mozilla\javascript\optimizer\InvokerImpl.class at com/ms/security/permissions/FileIOPermission.check at com/ms/security/PolicyEngine.deepCheck at com/ms/security/PolicyEngine.checkPermission at com/ms/security/StandardSecurityManager.chk at com/ms/security/StandardSecurityManager.checkRead at java/io/File.isDirectory at sun/net/www/protocol/file/FileURLConnection.connect at sun/net/www/protocol/file/FileURLConnection.getInputStream at com/ms/vm/loader/ResourceLoader.getURLData at com/ms/vm/loader/ResourceLoader.getCodebaseRelativeData at com/ms/vm/loader/ResourceLoader.getClassData at com/ms/vm/loader/URLClassLoader.findClass at com/ms/vm/loader/URLClassLoader.loadClass at java/lang/ClassLoader.loadClassInternal at java/lang/Class.forName at org/mozilla/javascript/ScriptRuntime.classOrNull at org/mozilla/javascript/FunctionObject.newInvokerMaster at org/mozilla/javascript/FunctionObject. at org/mozilla/javascript/FunctionObject.getMethodList at org/mozilla/javascript/LazilyLoadedCtor. at org/mozilla/javascript/Context.initStandardObjects at org/mozilla/javascript/Context.initStandardObjects at Shell3.evaluate at Shell3$1.actionPerformed at java/awt/Button.processActionEvent at java/awt/Button.processEvent at java/awt/Component.dispatchEventImpl at java/awt/Component.dispatchEvent at java/awt/EventDispatchThread.run com.ms.security.SecurityExceptionEx[org/mozilla/javascript/Context.initStandardObjects]: Unable to access system property: org.mozilla.javascript.JavaAdapter at com/ms/security/permissions/PropertyPermission.check at com/ms/security/PolicyEngine.shallowCheck at com/ms/security/PolicyEngine.checkCallersPermission at com/ms/security/StandardSecurityManager.chk at com/ms/security/StandardSecurityManager.checkPropertyAccess at java/lang/System.getProperty at org/mozilla/javascript/Context.initStandardObjects at org/mozilla/javascript/Context.initStandardObjects at Shell3.evaluate at Shell3$1.actionPerformed at java/awt/Button.processActionEvent at java/awt/Button.processEvent at java/awt/Component.dispatchEventImpl at java/awt/Component.dispatchEvent at java/awt/EventDispatchThread.run .