if (cd == null || !cd.isReplaceable()) {
Constructor<?> meth = clazz.getDeclaredConstructor(parameters);
return meth;
}
String args = '(' + DescriptorUtils.classArrayToDescriptorString(parameters) + ')';
MethodData md = cd.getMethodData("<init>", args);
if (md == null) {
Constructor<?> meth = clazz.getDeclaredConstructor(parameters);
return meth;
}
switch (md.getType()) {
case NORMAL:
Constructor<?> meth = clazz.getDeclaredConstructor(parameters);
return meth;
case FAKE_CONSTRUCTOR:
try {
Class<?> c = clazz.getClassLoader().loadClass(md.getClassName());
meth = c.getDeclaredConstructor(parameters);
return meth;
} catch (NoSuchMethodException e) {
throw e;
} catch (Exception e) {