Skip to content

Commit 8769474

Browse files
author
zhourenjian
committed
Fixed a bug that multiple AClass#loadClass calls on the same class may lost onloaded events.
1 parent 9ce2441 commit 8769474

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

sources/net.sf.j2s.java.core/src/java/lang/ClassLoader.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2227,6 +2227,21 @@ ClazzLoader.loadClass = function (name, optionalsLoaded, forced, async) {
22272227
ClazzLoader.isLoadingEntryClass = bakEntryClassLoading;
22282228
}
22292229
}
2230+
} else if (optionalsLoaded != null) {
2231+
var n = ClazzLoader.findClass (name);
2232+
if (n != null) {
2233+
if (n.optionalsLoaded == null) {
2234+
n.optionalsLoaded = optionalsLoaded;
2235+
} else {
2236+
var oldOL = n.optionalsLoaded;
2237+
n.optionalsLoaded = (function (oF, nF) {
2238+
return function () {
2239+
oF();
2240+
nF();
2241+
};
2242+
}) (oldOL, optionalsLoaded);
2243+
}
2244+
}
22302245
}
22312246
} else if (optionalsLoaded != null && ClazzLoader.isClassDefined (name)) {
22322247
var nn = ClazzLoader.findClass (name);

0 commit comments

Comments
 (0)