in src/main/java/org/apache/log4j/config/PropertySetter.java [221:257]
void setProperty(PropertyDescriptor prop, String name, String value)
throws PropertySetterException {
Method setter = prop.getWriteMethod();
if (setter == null) {
throw new PropertySetterException("No setter for property ["+name+"].");
}
Class[] paramTypes = setter.getParameterTypes();
if (paramTypes.length != 1) {
throw new PropertySetterException("#params for setter != 1");
}
Object arg;
try {
arg = convertArg(value, paramTypes[0]);
} catch (Throwable t) {
throw new PropertySetterException("Conversion to type ["+paramTypes[0]+
"] failed. Reason: "+t);
}
if (arg == null) {
throw new PropertySetterException(
"Conversion to type ["+paramTypes[0]+"] failed.");
}
LogLog.debug("Setting property [" + name + "] to [" +arg+"].");
try {
setter.invoke(obj, new Object[] { arg });
} catch (IllegalAccessException ex) {
throw new PropertySetterException(ex);
} catch (InvocationTargetException ex) {
if (ex.getTargetException() instanceof InterruptedException
|| ex.getTargetException() instanceof InterruptedIOException) {
Thread.currentThread().interrupt();
}
throw new PropertySetterException(ex);
} catch (RuntimeException ex) {
throw new PropertySetterException(ex);
}
}