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);
     }
 }


Reply via email to