Author: mattsicker
Date: Mon May 26 20:27:05 2014
New Revision: 1597644
URL: http://svn.apache.org/r1597644
Log:
Switch fallback value to Object (from String) in type conversion.
Modified:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java
Modified:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java
URL:
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java?rev=1597644&r1=1597643&r2=1597644&view=diff
==============================================================================
---
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java
(original)
+++
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java
Mon May 26 20:27:05 2014
@@ -105,12 +105,12 @@ public final class TypeConverters {
*
* @param s the string to convert
* @param clazz the class to try to convert the string to
- * @param defaultValue the fallback string to use if the conversion is
unsuccessful
+ * @param defaultValue the fallback object to use if the conversion is
unsuccessful
* @return the converted object which may be {@code null} if the string is
invalid for the given type
* @throws NullPointerException if {@code clazz} is {@code null}
* @throws IllegalArgumentException if no TypeConverter exists for the
given class
*/
- public static Object convert(final String s, final Class<?> clazz, final
String defaultValue) {
+ public static Object convert(final String s, final Class<?> clazz, final
Object defaultValue) {
final TypeConverter<?> converter = findTypeConverter(
Assert.requireNonNull(clazz, "No class specified to convert to."));
if (converter == null) {
@@ -129,12 +129,15 @@ public final class TypeConverters {
}
}
- private static Object parseDefaultValue(final TypeConverter<?> converter,
final String defaultValue) {
+ private static Object parseDefaultValue(final TypeConverter<?> converter,
final Object defaultValue) {
if (defaultValue == null) {
return null;
}
+ if (!(defaultValue instanceof String)) {
+ return defaultValue;
+ }
try {
- return converter.convert(defaultValue);
+ return converter.convert((String) defaultValue);
} catch (final Exception e) {
LOGGER.debug("Can't parse default value [{}] for type [{}].",
defaultValue, converter.getClass(), e);
return null;
Modified:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java
URL:
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java?rev=1597644&r1=1597643&r2=1597644&view=diff
==============================================================================
---
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java
(original)
+++
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java
Mon May 26 20:27:05 2014
@@ -117,7 +117,10 @@ public abstract class AbstractPluginVisi
* @param defaultValue the fallback value to use in case of no value or an
error.
* @return the converted value whether that be based on the given value or
the default value.
*/
- protected Object convert(final String value, final String defaultValue) {
- return TypeConverters.convert(value, this.conversionType,
Strings.trimToNull(defaultValue));
+ protected Object convert(final String value, final Object defaultValue) {
+ if (defaultValue instanceof String) {
+ return TypeConverters.convert(value, this.conversionType,
Strings.trimToNull((String) defaultValue));
+ }
+ return TypeConverters.convert(value, this.conversionType,
defaultValue);
}
}