зеркало из https://github.com/mozilla/pjs.git
abc0613496
Subject: ImporterTopLevel problem Date: Fri, 6 Aug 1999 15:42:50 -0400 From: "\"Howard\" Xuhua Lin" <howard@softcom.com> To: "Norris Boyd" <norris@netscape.com> CC: "Andrew Wason" <aw@softcom.com> Hi, The following script will cause an EvaluatorException: Ambiguous import: [JavaPackage java.awt.JButton] and [JavaPackage java.awt.Packages.javax.swing.JButton] in the js shell: js>importPackage(java.awt); js>importPackage(Packages.javax.swing); js>new JButton();. The current JS shell will not print this exception message, even though the comment says "// Already printed message, so just fall through". I add System.err.println(ee.getMessage()); for this exception. The problem is that in NativeJavaPackage.get(String, Scriptable) method, if a ClassNotFoundException is caught, a NativeJavaPackage object is created and passed back to ImporterTopLevel.get Method. So in ImporterTopLevel.get method, object v is always not NOT_FOUND and the ambiguous exception will be thrown. Object v is supposed to be a Class object but it actually is a Package object. The fix can be either (1) in NativeJavaPackage.get(String, Scriptable) method, if a ClassNotFoundException is caught, return a NOT_FOUND object (you may still create a Package object) or (2) in ImporterTopLevel.get method, make sure the returned object from NativeJavaPackage.get method is of NativeJavaClass type. Howard |
||
---|---|---|
.. | ||
benchmarks | ||
js2/java | ||
jsd | ||
jsdj | ||
jsj | ||
macbuild | ||
ref | ||
rhino | ||
semantics | ||
src | ||
tests | ||
.cvsignore | ||
Makefile.in | ||
landbranch.pl | ||
makefile.win |