Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 112e2d7

Browse files
Supporting inner class reloading
1 parent dd7b1cc commit 112e2d7

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

sources/net.sf.j2s.ajax/ajaxrpc/net/sf/j2s/ajax/SimpleClassLoader.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,21 @@ protected boolean isSystemClass(String clazzName) {
6060

6161
@Override
6262
public Class<?> loadClass(String clazzName) throws ClassNotFoundException {
63-
if (targetClasses.contains(clazzName)) {
63+
boolean contains = targetClasses.contains(clazzName);
64+
if (!contains) {
65+
// Check inner classes
66+
int idx = clazzName.indexOf('$');
67+
if (idx != -1) { // RPC$1
68+
contains = targetClasses.contains(clazzName.substring(0, idx));
69+
}
70+
if (!contains) {
71+
idx = clazzName.lastIndexOf('.');
72+
if (idx != -1) { // RPC.User or net.sf.j2s.XXXRPC
73+
contains = targetClasses.contains(clazzName.substring(0, idx));
74+
}
75+
}
76+
}
77+
if (contains) {
6478
Class<?> clazz = loadedClasses.get(clazzName);
6579
if (clazz != null) {
6680
return clazz;

0 commit comments

Comments
 (0)