Simplify using asSubclass instead of unchecked cast.

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

Branch: refs/heads/master
Commit: 666fd7bf03a38b719449186c7c5db79ddba69d9e
Parents: f735cf9
Author: Matt Sicker <[email protected]>
Authored: Tue Feb 23 23:51:21 2016 -0600
Committer: Matt Sicker <[email protected]>
Committed: Tue Feb 23 23:51:21 2016 -0600

----------------------------------------------------------------------
 .../logging/log4j/core/appender/db/jpa/JpaAppender.java  | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/666fd7bf/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/JpaAppender.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/JpaAppender.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/JpaAppender.java
index 6e5d52b..1f4a92b 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/JpaAppender.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/JpaAppender.java
@@ -85,14 +85,8 @@ public final class JpaAppender extends 
AbstractDatabaseAppender<JpaDatabaseManag
         final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true);
 
         try {
-            @SuppressWarnings("unchecked")
             final Class<? extends AbstractLogEventWrapperEntity> entityClass =
-                    (Class<? extends AbstractLogEventWrapperEntity>) 
Loader.loadClass(entityClassName);
-
-            if 
(!AbstractLogEventWrapperEntity.class.isAssignableFrom(entityClass)) {
-                LOGGER.error("Entity class [{}] does not extend 
AbstractLogEventWrapperEntity.", entityClassName);
-                return null;
-            }
+                
Loader.loadClass(entityClassName).asSubclass(AbstractLogEventWrapperEntity.class);
 
             try {
                 entityClass.getConstructor();
@@ -123,6 +117,9 @@ public final class JpaAppender extends 
AbstractDatabaseAppender<JpaDatabaseManag
             LOGGER.error("Entity class [{}] does not have a constructor with a 
single argument of type LogEvent.",
                     entityClassName);
             return null;
+        } catch (final ClassCastException e) {
+            LOGGER.error("Entity class [{}] does not extend 
AbstractLogEventWrapperEntity.", entityClassName);
+            return null;
         }
     }
 }

Reply via email to