Copier
This commit is contained in:
@@ -125,6 +125,7 @@ public abstract class LoggingBaseHandler extends Handler {
|
|||||||
ps.println("sun.level = INFO");
|
ps.println("sun.level = INFO");
|
||||||
ps.println("com.sun.level = INFO");
|
ps.println("com.sun.level = INFO");
|
||||||
ps.println("javax.level = INFO");
|
ps.println("javax.level = INFO");
|
||||||
|
ps.println("org.junit.level = INFO");
|
||||||
ps.println(handlerName + ".level = FINEST");
|
ps.println(handlerName + ".level = FINEST");
|
||||||
ps.println(handlerName + ".formatter = " + LoggingFormater.class.getName());
|
ps.println(handlerName + ".formatter = " + LoggingFormater.class.getName());
|
||||||
LogManager.getLogManager().readConfiguration(new ByteArrayInputStream(out.toByteArray()));
|
LogManager.getLogManager().readConfiguration(new ByteArrayInputStream(out.toByteArray()));
|
||||||
|
|||||||
@@ -740,6 +740,8 @@ public interface Copier<S, D> extends BiFunction<S, D, D> {
|
|||||||
mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null);
|
mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Predicate<Class> simpler = t -> t.isPrimitive() || t == String.class || Number.class.isAssignableFrom(t);
|
||||||
|
|
||||||
for (java.lang.reflect.Field field : srcClass.getFields()) {
|
for (java.lang.reflect.Field field : srcClass.getFields()) {
|
||||||
if (Modifier.isStatic(field.getModifiers())) {
|
if (Modifier.isStatic(field.getModifiers())) {
|
||||||
continue;
|
continue;
|
||||||
@@ -795,7 +797,11 @@ public interface Copier<S, D> extends BiFunction<S, D, D> {
|
|||||||
java.lang.reflect.Field setField = null;
|
java.lang.reflect.Field setField = null;
|
||||||
try {
|
try {
|
||||||
setField = destClass.getField(dfname);
|
setField = destClass.getField(dfname);
|
||||||
if (!field.getType().equals(setField.getType())) {
|
if (field.getType() == setField.getType()) {
|
||||||
|
needTypeCast = false;
|
||||||
|
} else if (simpler.test(field.getType()) && simpler.test(setField.getType())) {
|
||||||
|
needTypeCast = true;
|
||||||
|
} else if (!field.getType().equals(setField.getType())) {
|
||||||
if (allowTypeCast) {
|
if (allowTypeCast) {
|
||||||
needTypeCast = true;
|
needTypeCast = true;
|
||||||
} else {
|
} else {
|
||||||
@@ -810,31 +816,31 @@ public interface Copier<S, D> extends BiFunction<S, D, D> {
|
|||||||
continue; //setter方法带有非RuntimeException异常
|
continue; //setter方法带有非RuntimeException异常
|
||||||
}
|
}
|
||||||
} catch (Exception e2) {
|
} catch (Exception e2) {
|
||||||
if (allowTypeCast) {
|
try {
|
||||||
try {
|
for (java.lang.reflect.Method m : destClass.getMethods()) {
|
||||||
for (java.lang.reflect.Method m : destClass.getMethods()) {
|
if (Modifier.isStatic(m.getModifiers())) {
|
||||||
if (Modifier.isStatic(m.getModifiers())) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (Utility.contains(m.getExceptionTypes(), throwPredicate)) {
|
|
||||||
continue; //setter方法带有非RuntimeException异常
|
|
||||||
}
|
|
||||||
if (m.getParameterTypes().length != 1) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (m.getName().equals(setterMethodName)) {
|
|
||||||
setter = m;
|
|
||||||
needTypeCast = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (setter == null) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} catch (Exception e3) {
|
if (Utility.contains(m.getExceptionTypes(), throwPredicate)) {
|
||||||
|
continue; //setter方法带有非RuntimeException异常
|
||||||
|
}
|
||||||
|
if (m.getParameterTypes().length != 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (m.getName().equals(setterMethodName)) {
|
||||||
|
if (simpler.test(field.getType()) && simpler.test(setField.getType())) {
|
||||||
|
setter = m;
|
||||||
|
needTypeCast = true;
|
||||||
|
} else if (!allowTypeCast) {
|
||||||
|
setter = null;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (setter == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} catch (Exception e3) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user