Clean up filter loading 41/102441/1
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 22 Sep 2022 11:02:46 +0000 (13:02 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 22 Sep 2022 11:02:46 +0000 (13:02 +0200)
Reduce the size of try/catch block and use Class.asSubclass() to
remove an unchecked cast.

Change-Id: Ib2c90a3df761f7a8436a56ea37078ea94feb2084
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
aaa-filterchain/src/main/java/org/opendaylight/aaa/filterchain/configuration/impl/CustomFilterAdapterConfigurationImpl.java

index b40b2b929fb46561da6004ec30ddffd3a496d716..806c732d308b9a1cb3ad17cd8b3b88f5ff64b4b4 100644 (file)
@@ -337,17 +337,16 @@ public final class CustomFilterAdapterConfigurationImpl implements CustomFilterA
             this.initParams = requireNonNull(initParams);
         }
 
-        @SuppressWarnings("unchecked")
         @Override
         Filter getInstance(final Optional<ServletContext> servletContext) {
+            final Filter instance;
             try {
-                final Class<Filter> filterClazz = (Class<Filter>) Class.forName(clazzName);
-                return init(filterClazz.getDeclaredConstructor().newInstance(), servletContext);
+                instance = Class.forName(clazzName).asSubclass(Filter.class).getDeclaredConstructor().newInstance();
             } catch (ReflectiveOperationException | ClassCastException e) {
-                LOG.error("Error loading  {}", this, e);
+                LOG.error("Error loading {}", this, e);
+                return null;
             }
-
-            return null;
+            return init(instance, servletContext);
         }
 
         private Filter init(final Filter filter, final Optional<ServletContext> servletContext) {