Subj : Re: [Patch] importPackage Ambiguous import error fix To : tim From : Igor Bukanov Date : Wed Mar 23 2005 12:12 am Could you file a report about it through http://bugzilla.mozilla.org/enter_bug.cgi?product=Rhino ? Regards, Igor Tim Larson wrote: > 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 > > > ------------------------------------------------------------------------ > > --- 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; > } .