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
Regards, Igor
> ------------------------------------------------------------------------
>
> --- 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;
> }