Subj : [Patch] importPackage Ambiguous import error fix To : netscape.public.mozilla.jseng From : Tim Larson Date : Tue Mar 22 2005 09:26 pm --UugvWAfsgieZRqgk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Attached is a patch to fix importPackage to not import the same package more than once. This fixes an error that shows up if a call to importPackage is encountered twice before classes from the package actually get referenced. I encountered this error while working with a flowscript (Cocoon's name for javascript+continuations) for a set of Cocoon forms. Quickly starting more than one instance of a form triggers this bug. The patch replaces a comparison using '=' between two NativeJavaPackage's with a comparison using string equality. This effectively compares the package names instead of checking for object identity. The other thing which we might need to check is that the two NativeJavaPackage's both use the same classloader. I would appreciate it if somebody more knowledgeable of Rhino internals could sanity check this patch. --Tim Larson --UugvWAfsgieZRqgk Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="import.patch" --- rhino1_6R1/src/org/mozilla/javascript/ImporterTopLevel.java 2004-11-30 22:11:10.000000000 -0500 +++ rhino1_6R1_modified/src/org/mozilla/javascript/ImporterTopLevel.java 2005-03-22 19:52:43.000000000 -0500 @@ -213,7 +213,7 @@ { synchronized (importedPackages) { for (int j = 0; j != importedPackages.size(); j++) { - if (pkg == importedPackages.get(j)) { + if (pkg != null && pkg.toString().equals(importedPackages.get(j).toString())) { pkg = null; break; } --UugvWAfsgieZRqgk-- .