You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/09/15 05:34:45 UTC

[4/8] git commit: Enum generics dance updates.

Enum generics dance updates.


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/c6669849
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/c6669849
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/c6669849

Branch: refs/heads/master
Commit: c6669849d030711ee6989b5ef5ec24d668653611
Parents: 14dc857
Author: Matt Sicker <ma...@apache.org>
Authored: Sun Sep 14 22:25:28 2014 -0500
Committer: Matt Sicker <ma...@apache.org>
Committed: Sun Sep 14 22:25:28 2014 -0500

----------------------------------------------------------------------
 .../config/plugins/convert/TypeConverterRegistry.java   | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c6669849/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java
index e9a9576..47319e7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java
@@ -81,11 +81,8 @@ public class TypeConverterRegistry {
             return primary;
         }
         // dynamic enum support
-        if (type instanceof Class<?>) {
-            final Class<?> clazz = (Class<?>) type;
-            if (clazz.isEnum()) {
-                return registerEnumType(clazz.asSubclass(Enum.class));
-            }
+        if (type instanceof Class<?> && ((Class<?>) type).isEnum()) {
+            return registerEnumType(type);
         }
         // look for compatible converters
         for (final Map.Entry<Type, TypeConverter<?>> entry : registry.entrySet()) {
@@ -152,8 +149,9 @@ public class TypeConverterRegistry {
         registry.putIfAbsent(aliasType, registry.get(knownType));
     }
 
-    private <E extends Enum<E>> TypeConverter<E> registerEnumType(final Class<E> type) {
-        final TypeConverter<E> converter = new EnumConverter<E>(type);
+    private <E extends Enum<E>> TypeConverter<? extends E> registerEnumType(final Type type) {
+        @SuppressWarnings("unchecked")
+        final TypeConverter<E> converter = new EnumConverter<E>((Class<E>) type);
         registry.putIfAbsent(type, converter);
         return converter;
     }