Repository: logging-log4j2 Updated Branches: refs/heads/master ea69c3c79 -> 8962adbc5
Add generic parameter to TypeConverters.convert() Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/a890c78f Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/a890c78f Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/a890c78f Branch: refs/heads/master Commit: a890c78f6f739145651471e7f805605275de207e Parents: ea69c3c Author: Matt Sicker <[email protected]> Authored: Fri Dec 30 15:34:26 2016 -0600 Committer: Matt Sicker <[email protected]> Committed: Fri Dec 30 15:34:26 2016 -0600 ---------------------------------------------------------------------- .../log4j/core/config/plugins/convert/TypeConverters.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a890c78f/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java index 421d711..9c28edc 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java @@ -359,8 +359,9 @@ public final class TypeConverters { * @throws IllegalArgumentException * if no TypeConverter exists for the given class */ - public static Object convert(final String s, final Class<?> clazz, final Object defaultValue) { - final TypeConverter<?> converter = TypeConverterRegistry.getInstance().findCompatibleConverter(clazz); + public static <T> T convert(final String s, final Class<? extends T> clazz, final Object defaultValue) { + @SuppressWarnings("unchecked") + final TypeConverter<T> converter = (TypeConverter<T>) TypeConverterRegistry.getInstance().findCompatibleConverter(clazz); if (s == null) { // don't debug print here, resulting output is hard to understand // LOGGER.debug("Null string given to convert. Using default [{}].", defaultValue); @@ -375,12 +376,13 @@ public final class TypeConverters { } } - private static Object parseDefaultValue(final TypeConverter<?> converter, final Object defaultValue) { + @SuppressWarnings("unchecked") + private static <T> T parseDefaultValue(final TypeConverter<T> converter, final Object defaultValue) { if (defaultValue == null) { return null; } if (!(defaultValue instanceof String)) { - return defaultValue; + return (T) defaultValue; } try { return converter.convert((String) defaultValue);
