test
This commit is contained in:
@@ -4057,7 +4057,6 @@ public final class Rest {
|
||||
}
|
||||
cw2.visitEnd();
|
||||
byte[] bytes = cw2.toByteArray();
|
||||
classLoader.addDynClass((newDynName + "$" + entry.newActionClassName).replace('/', '.'), bytes);
|
||||
innerClassBytesMap.put((newDynName + "$" + entry.newActionClassName).replace('/', '.'), bytes);
|
||||
}
|
||||
} // end for each
|
||||
@@ -4221,17 +4220,9 @@ public final class Rest {
|
||||
|
||||
cw.visitEnd();
|
||||
byte[] bytes = cw.toByteArray();
|
||||
classLoader.addDynClass(newDynName.replace('/', '.'), bytes);
|
||||
try {
|
||||
Class<?> newClazz = classLoader.loadClass(newDynName.replace('/', '.'));
|
||||
innerClassBytesMap.forEach((n, bs) -> {
|
||||
try {
|
||||
classLoader.loadClass(n, bs);
|
||||
RedkaleClassLoader.putReflectionClass(n);
|
||||
} catch (Exception e) {
|
||||
throw new RestException(e);
|
||||
}
|
||||
});
|
||||
Class<?> newClazz = classLoader.loadClass(newDynName.replace('/', '.'), bytes, innerClassBytesMap);
|
||||
innerClassBytesMap.forEach((n, bs) -> RedkaleClassLoader.putReflectionClass(n));
|
||||
RedkaleClassLoader.putReflectionDeclaredConstructors(newClazz, newDynName.replace('/', '.'));
|
||||
for (java.lang.reflect.Type t : retvalTypes) {
|
||||
JsonFactory.root().loadEncoder(t);
|
||||
|
||||
@@ -504,6 +504,19 @@ public class RedkaleClassLoader extends URLClassLoader {
|
||||
return clz;
|
||||
}
|
||||
|
||||
public Class loadClass(String name, byte[] bs, Map<String, byte[]> innerClassMap) {
|
||||
innerClassMap.forEach((k, v) -> {
|
||||
dynClassBytesMap.put(k, v);
|
||||
allDynClassBytesMap.put(k, v);
|
||||
});
|
||||
Class clz = defineClass(name, bs, 0, bs.length);
|
||||
dynClassTypeMap.put(name, clz);
|
||||
dynClassBytesMap.put(name, bs);
|
||||
allDynClassTypeMap.put(name, clz);
|
||||
allDynClassBytesMap.put(name, bs);
|
||||
return clz;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class loadClass(String name) throws ClassNotFoundException {
|
||||
Class clazz = allDynClassTypeMap.get(name);
|
||||
@@ -532,10 +545,6 @@ public class RedkaleClassLoader extends URLClassLoader {
|
||||
}
|
||||
}
|
||||
|
||||
public final void addDynClass(String name, byte[] bs) {
|
||||
dynClassBytesMap.put(name, bs);
|
||||
}
|
||||
|
||||
public void addURI(URI uri) {
|
||||
try {
|
||||
super.addURL(uri.toURL());
|
||||
|
||||
Reference in New Issue
Block a user