This is an automated email from the ASF dual-hosted git repository.

mbien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/roller.git

commit 2191f796c648a9422fd355bcdcaf0ae84d1318b0
Author: Michael Bien <[email protected]>
AuthorDate: Sat Jul 10 10:22:35 2021 +0200

    Class.newInstance() deprecation.
---
 .../weblogger/business/GuiceWebloggerProvider.java | 27 +++-------
 .../weblogger/business/WebloggerFactory.java       |  5 +-
 .../business/plugins/PluginManagerImpl.java        | 63 +++++++++-------------
 .../weblogger/business/runnable/TaskRunner.java    |  3 +-
 .../business/runnable/ThreadManagerImpl.java       |  5 +-
 .../roller/weblogger/ui/core/RollerContext.java    | 16 +++---
 .../ui/core/plugins/UIPluginManagerImpl.java       |  4 +-
 .../weblogger/ui/rendering/RendererManager.java    | 14 +++--
 .../ui/rendering/filters/RequestMappingFilter.java | 12 ++---
 .../weblogger/ui/rendering/model/ModelLoader.java  | 18 ++-----
 .../plugins/comments/CommentValidationManager.java | 18 +++----
 .../servlets/CommentAuthenticatorServlet.java      | 15 +++---
 .../ui/rendering/servlets/CommentServlet.java      | 13 ++---
 .../roller/weblogger/util/cache/CacheManager.java  | 23 ++++----
 14 files changed, 92 insertions(+), 144 deletions(-)

diff --git 
a/app/src/main/java/org/apache/roller/weblogger/business/GuiceWebloggerProvider.java
 
b/app/src/main/java/org/apache/roller/weblogger/business/GuiceWebloggerProvider.java
index 63290ba..021ccfb 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/business/GuiceWebloggerProvider.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/business/GuiceWebloggerProvider.java
@@ -21,6 +21,7 @@ package org.apache.roller.weblogger.business;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.Module;
+import java.util.Objects;
 import org.apache.roller.weblogger.config.WebloggerConfig;
 
 
@@ -41,22 +42,9 @@ public class GuiceWebloggerProvider implements 
WebloggerProvider {
      * configured in WebloggerConfig via 'guice.backend.module' property.
      */
     public GuiceWebloggerProvider() {
-        
-        String moduleClassname = 
WebloggerConfig.getProperty("guice.backend.module");
-        if(moduleClassname == null) {
-            throw new NullPointerException("unable to lookup default guice 
module via property 'guice.backend.module'");
-        }
-        
-        try {
-            Class moduleClass = Class.forName(moduleClassname);
-            Module module = (Module)moduleClass.newInstance();
-            injector = Guice.createInjector(module);
-        } catch (ThreadDeath t) {
-            throw t;
-        } catch (Throwable e) {
-            // Fatal misconfiguration, cannot recover
-            throw new RuntimeException("Error instantiating backend module " + 
moduleClassname + "; exception message: " + e.getMessage(), e);
-        }
+        this(Objects.requireNonNull(
+                WebloggerConfig.getProperty("guice.backend.module"),
+                "unable to lookup default guice module via property 
'guice.backend.module'"));
     }
     
     
@@ -67,13 +55,10 @@ public class GuiceWebloggerProvider implements 
WebloggerProvider {
      */
     public GuiceWebloggerProvider(String moduleClassname) {
         
-        if(moduleClassname == null) {
-            throw new NullPointerException("moduleClassname cannot be null");
-        }
+        Objects.requireNonNull(moduleClassname, "moduleClassname cannot be 
null");
         
         try {
-            Class moduleClass = Class.forName(moduleClassname);
-            Module module = (Module)moduleClass.newInstance();
+            Module module = (Module) 
Class.forName(moduleClassname).getDeclaredConstructor().newInstance();
             injector = Guice.createInjector(module);
         } catch (ThreadDeath t) {
             throw t;
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/business/WebloggerFactory.java 
b/app/src/main/java/org/apache/roller/weblogger/business/WebloggerFactory.java
index a287b02..12303fe 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/business/WebloggerFactory.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/business/WebloggerFactory.java
@@ -84,9 +84,8 @@ public final class WebloggerFactory {
         String providerClassname = 
WebloggerConfig.getProperty("weblogger.provider.class");
         if(providerClassname != null) {
             try {
-                Class providerClass = Class.forName(providerClassname);
-                defaultProvider = (WebloggerProvider) 
providerClass.newInstance();
-            } catch (Exception ex) {
+                defaultProvider = (WebloggerProvider) 
Class.forName(providerClassname).getDeclaredConstructor().newInstance();
+            } catch (ReflectiveOperationException ex) {
                 throw new BootstrapException("Error instantiating default 
provider: " + providerClassname + "; exception message: " + ex.getMessage(), 
ex);
             }
         } else {
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java
 
b/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java
index 37ac7db..2ac1a24 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java
@@ -29,6 +29,7 @@ import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.pojos.WeblogEntry;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.roller.weblogger.WebloggerException;
 import 
org.apache.roller.weblogger.business.plugins.comment.WeblogEntryCommentPlugin;
 import org.apache.roller.weblogger.pojos.WeblogEntryComment;
 import org.apache.roller.weblogger.util.HTMLSanitizer;
@@ -39,13 +40,13 @@ import org.apache.roller.weblogger.util.HTMLSanitizer;
  */
 public class PluginManagerImpl implements PluginManager {
     
-    private static Log log = LogFactory.getLog(PluginManagerImpl.class);
+    private static final Log log = LogFactory.getLog(PluginManagerImpl.class);
     
     // Plugin classes keyed by plugin name
-    static Map<String, Class> mPagePlugins = new LinkedHashMap<>();
+    static Map<String, Class<? extends WeblogEntryPlugin>> mPagePlugins = new 
LinkedHashMap<>();
     
     // Comment plugins
-    private List<WeblogEntryCommentPlugin> commentPlugins = new ArrayList<>();
+    private final List<WeblogEntryCommentPlugin> commentPlugins = new 
ArrayList<>();
     
     
     /**
@@ -72,13 +73,15 @@ public class PluginManagerImpl implements PluginManager {
      */
     @Override
     public Map<String, WeblogEntryPlugin> getWeblogEntryPlugins(Weblog 
website) {
+        
         Map<String, WeblogEntryPlugin> ret = new LinkedHashMap<>();
-        for (Class pluginClass : PluginManagerImpl.mPagePlugins.values()) {
+        
+        for (Class<? extends WeblogEntryPlugin> pluginClass : 
mPagePlugins.values()) {
             try {
-                WeblogEntryPlugin plugin = 
(WeblogEntryPlugin)pluginClass.newInstance();
+                WeblogEntryPlugin plugin = 
pluginClass.getDeclaredConstructor().newInstance();
                 plugin.init(website);
                 ret.put(plugin.getName(), plugin);
-            } catch (Exception e) {
+            } catch (ReflectiveOperationException | WebloggerException e) {
                 log.error("Unable to init() PagePlugin: ", e);
             }
         }
@@ -163,19 +166,18 @@ public class PluginManagerImpl implements PluginManager {
                     log.debug("try " + plugin);
                 }
                 try {
-                    Class pluginClass = Class.forName(plugin);
-                    if (isPagePlugin(pluginClass)) {
-                        WeblogEntryPlugin weblogEntryPlugin = 
(WeblogEntryPlugin)pluginClass.newInstance();
+                    Class<?> clazz = Class.forName(plugin);
+                    
+                    if (isPagePlugin(clazz)) {
+                        @SuppressWarnings("unchecked")
+                        Class<? extends WeblogEntryPlugin> pluginClass = 
(Class<? extends WeblogEntryPlugin>)clazz;
+                        WeblogEntryPlugin weblogEntryPlugin = 
pluginClass.getDeclaredConstructor().newInstance();
                         mPagePlugins.put(weblogEntryPlugin.getName(), 
pluginClass);
                     } else {
-                        log.warn(pluginClass + " is not a PagePlugin");
+                        log.warn(clazz + " is not a PagePlugin");
                     }
-                } catch (ClassNotFoundException e) {
-                    log.error("ClassNotFoundException for " + plugin);
-                } catch (InstantiationException e) {
-                    log.error("InstantiationException for " + plugin);
-                } catch (IllegalAccessException e) {
-                    log.error("IllegalAccessException for " + plugin);
+                } catch (ReflectiveOperationException e) {
+                    log.error("unable to create " + plugin);
                 }
             }
         }
@@ -196,43 +198,28 @@ public class PluginManagerImpl implements PluginManager {
                 log.debug("trying " + plugins[i]);
                 
                 try {
-                    Class pluginClass = Class.forName(plugins[i]);
-                    WeblogEntryCommentPlugin plugin = 
-                            (WeblogEntryCommentPlugin) 
pluginClass.newInstance();
+                    WeblogEntryCommentPlugin plugin = 
(WeblogEntryCommentPlugin) 
Class.forName(plugins[i]).getDeclaredConstructor().newInstance();
                     
                     // make sure and maintain ordering
                     commentPlugins.add(i, plugin);
                     
                     log.debug("Configured comment plugin: "+plugins[i]);
                     
-                } catch (ClassCastException e) {
-                    log.error("ClassCastException for " + plugins[i]);
-                } catch (ClassNotFoundException e) {
-                    log.error("ClassNotFoundException for " + plugins[i]);
-                } catch (InstantiationException e) {
-                    log.error("InstantiationException for " + plugins[i]);
-                } catch (IllegalAccessException e) {
-                    log.error("IllegalAccessException for " + plugins[i]);
+                } catch (ReflectiveOperationException e) {
+                    log.error("unable to create " + plugins[i]);
                 }
             }
         }
         
     }
     
-    
-    private static boolean isPagePlugin(Class pluginClass) {
-        Class[] interfaces = pluginClass.getInterfaces();
-        if (interfaces != null) {
-            for (Class clazz : interfaces) {
-                if (clazz.equals(WeblogEntryPlugin.class)) {
-                    return true;
-                }
-            }
-        }
+    private static boolean isPagePlugin(Class<?> clazz) {
+        for (Class<?> inter : clazz.getInterfaces())
+            if (inter.equals(WeblogEntryPlugin.class))
+                return true;
         return false;
     }
     
-    
     @Override
     public void release() {
         // no op
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/business/runnable/TaskRunner.java
 
b/app/src/main/java/org/apache/roller/weblogger/business/runnable/TaskRunner.java
index f4dd66b..8cd3494 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/business/runnable/TaskRunner.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/business/runnable/TaskRunner.java
@@ -57,8 +57,7 @@ public class TaskRunner {
         Thread.currentThread().setContextClassLoader(cl);
 
         // Go!
-        Class taskClass = cl.loadClass(taskClassName);
-        Runnable task = (Runnable)taskClass.newInstance();
+        Runnable task = 
(Runnable)Class.forName(taskClassName).getDeclaredConstructor().newInstance();
         task.run();
     }
 }
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java
 
b/app/src/main/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java
index 6f3d98b..a0280c1 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java
@@ -75,8 +75,7 @@ public abstract class ThreadManagerImpl implements 
ThreadManager {
                 LOG.info("Initializing task: " + taskName);
                 
                 try {
-                    Class taskClass = Class.forName(taskClassName);
-                    RollerTask task = (RollerTask) taskClass.newInstance();
+                    RollerTask task = (RollerTask) 
Class.forName(taskClassName).getDeclaredConstructor().newInstance();
                     task.init(taskName);
                     
                     // make sure there is a tasklock record in the db
@@ -102,7 +101,7 @@ public abstract class ThreadManagerImpl implements 
ThreadManager {
                     LOG.warn("Task does not extend RollerTask class", ex);
                 } catch (WebloggerException ex) {
                     LOG.error("Error scheduling task", ex);
-                } catch (Exception ex) {
+                } catch (ReflectiveOperationException ex) {
                     LOG.error("Error instantiating task", ex);
                 }
             }
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java 
b/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java
index fb5ec25..cc0f749 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java
@@ -63,7 +63,7 @@ import 
org.springframework.web.context.support.WebApplicationContextUtils;
 public class RollerContext extends ContextLoaderListener
         implements ServletContextListener {
 
-    private static Log log = LogFactory.getLog(RollerContext.class);
+    private static final Log log = LogFactory.getLog(RollerContext.class);
 
     private static ServletContext servletContext = null;
     private static DelegatingPasswordEncoder encoder;
@@ -357,7 +357,7 @@ public class RollerContext extends ContextLoaderListener
             return null;
         }
 
-        Class clazz;
+        Class<?> clazz;
         try {
             clazz = Class.forName(clazzName);
         } catch (ClassNotFoundException e) {
@@ -365,15 +365,13 @@ public class RollerContext extends ContextLoaderListener
             return null;
         }
 
-        Class[] interfaces = clazz.getInterfaces();
-        for (Class clazz2 : interfaces) {
+        Class<?>[] interfaces = clazz.getInterfaces();
+        for (Class<?> clazz2 : interfaces) {
             if (clazz2.equals(AutoProvision.class)) {
                 try {
-                    return (AutoProvision) clazz.newInstance();
-                } catch (InstantiationException e) {
-                    log.warn("InstantiationException while creating: " + 
clazzName, e);
-                } catch (IllegalAccessException e) {
-                    log.warn("IllegalAccessException while creating: " + 
clazzName, e);
+                    return (AutoProvision) 
clazz.getDeclaredConstructor().newInstance();
+                } catch (ReflectiveOperationException e) {
+                    log.warn("ReflectiveOperationException while creating: " + 
clazzName, e);
                 }
             }
         }
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManagerImpl.java
 
b/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManagerImpl.java
index ffc4f8f..cc5f6cd 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManagerImpl.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/ui/core/plugins/UIPluginManagerImpl.java
@@ -100,8 +100,8 @@ public final class UIPluginManagerImpl implements 
UIPluginManager {
                 log.debug("trying editor " + editorList[i]);
                 
                 try {
-                    Class editorClass = Class.forName(editorList[i]);
-                    WeblogEntryEditor editor = (WeblogEntryEditor) 
editorClass.newInstance();
+                    WeblogEntryEditor editor = (WeblogEntryEditor) 
Class.forName(editorList[i])
+                            .getDeclaredConstructor().newInstance();
                     
                     // looks okay, add it to the map
                     this.editors.put(editor.getId(), editor);
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/RendererManager.java
 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/RendererManager.java
index a86f9d4..4a1defc 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/RendererManager.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/RendererManager.java
@@ -36,9 +36,9 @@ import 
org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository;
  */
 public final class RendererManager {
 
-    private static Log log = LogFactory.getLog(RendererManager.class);
+    private static final Log log = LogFactory.getLog(RendererManager.class);
     // a set of all renderer factories we are consulting
-    private static Set<RendererFactory> rendererFactories = new HashSet<>();
+    private static final Set<RendererFactory> rendererFactories = new 
HashSet<>();
 
     static {
         // lookup set of renderer factories we are going to use
@@ -52,13 +52,12 @@ public final class RendererManager {
             String[] uFactories = userFactories.split(",");
             for (String uFactory :uFactories) {
                 try {
-                    Class factoryClass = Class.forName(uFactory);
-                    rendererFactory = (RendererFactory) 
factoryClass.newInstance();
+                    rendererFactory = (RendererFactory) 
Class.forName(uFactory).getDeclaredConstructor().newInstance();
                     rendererFactories.add(rendererFactory);
                 } catch (ClassCastException cce) {
                     log.error("It appears that your factory does not implement 
"
                             + "the RendererFactory interface", cce);
-                } catch (Exception e) {
+                } catch (ReflectiveOperationException e) {
                     log.error("Unable to instantiate renderer factory [" + 
uFactory + "]", e);
                 }
             }
@@ -71,13 +70,12 @@ public final class RendererManager {
             String[] rFactories = rollerFactories.split(",");
             for (String rFactory : rFactories) {
                 try {
-                    Class factoryClass = Class.forName(rFactory);
-                    rendererFactory = (RendererFactory) 
factoryClass.newInstance();
+                    rendererFactory = (RendererFactory) 
Class.forName(rFactory).getDeclaredConstructor().newInstance();
                     rendererFactories.add(rendererFactory);
                 } catch (ClassCastException cce) {
                     log.error("It appears that your factory does not implement 
"
                             + "the RendererFactory interface", cce);
-                } catch (Exception e) {
+                } catch (ReflectiveOperationException e) {
                     log.error("Unable to instantiate renderer factory [" + 
rFactory + "]", e);
                 }
             }
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/filters/RequestMappingFilter.java
 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/filters/RequestMappingFilter.java
index fc64b5a..46d828c 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/filters/RequestMappingFilter.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/filters/RequestMappingFilter.java
@@ -44,7 +44,7 @@ import org.apache.roller.weblogger.ui.rendering.RequestMapper;
  */
 public class RequestMappingFilter implements Filter {
     
-    private static Log log = LogFactory.getLog(RequestMappingFilter.class);
+    private static final Log log = 
LogFactory.getLog(RequestMappingFilter.class);
     
     // list of RequestMappers that want to inspect the request
     private final List<RequestMapper> requestMappers = new ArrayList<>();
@@ -62,13 +62,12 @@ public class RequestMappingFilter implements Filter {
             String[] uMappers = userMappers.split(",");
             for (String uMapper : uMappers) {
                 try {
-                    Class mapperClass = Class.forName(uMapper);
-                    requestMapper = (RequestMapper) mapperClass.newInstance();
+                    requestMapper = (RequestMapper) 
Class.forName(uMapper).getDeclaredConstructor().newInstance();
                     requestMappers.add(requestMapper);
                 } catch(ClassCastException cce) {
                     log.error("It appears that your mapper does not implement 
"+
                             "the RequestMapper interface", cce);
-                } catch(Exception e) {
+                } catch(ReflectiveOperationException e) {
                     log.error("Unable to instantiate request mapper 
["+uMapper+"]", e);
                 }
             }
@@ -80,13 +79,12 @@ public class RequestMappingFilter implements Filter {
             String[] rMappers = rollerMappers.split(",");
             for (String rMapper : rMappers) {
                 try {
-                    Class mapperClass = Class.forName(rMapper);
-                    requestMapper = (RequestMapper) mapperClass.newInstance();
+                    requestMapper = (RequestMapper) 
Class.forName(rMapper).getDeclaredConstructor().newInstance();
                     requestMappers.add(requestMapper);
                 } catch(ClassCastException cce) {
                     log.error("It appears that your mapper does not implement 
"+
                             "the RequestMapper interface", cce);
-                } catch(Exception e) {
+                } catch(ReflectiveOperationException e) {
                     log.error("Unable to instantiate request mapper 
["+rMapper+"]", e);
                 }
             }
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ModelLoader.java
 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ModelLoader.java
index 672ba5d..330d133 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ModelLoader.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/model/ModelLoader.java
@@ -30,7 +30,7 @@ import org.apache.roller.weblogger.util.Utilities;
  */
 public class ModelLoader {
     
-    private static Log log = LogFactory.getLog(ModelLoader.class);
+    private static final Log log = LogFactory.getLog(ModelLoader.class);
     
     /**
      * Convenience method to load a comma-separated list of page models.
@@ -39,15 +39,13 @@ public class ModelLoader {
      * the Model instances.
      */
     public static void loadModels(String modelsString, Map<String, Object> 
modelMap,
-                                   Map initData, boolean fail) 
-            throws WebloggerException {
+            Map initData, boolean fail) throws WebloggerException {
         
         String[] models = Utilities.stringToStringArray(modelsString, ",");
         if (models != null) {
             for (String model : models) {
                 try {
-                    Class modelClass = Class.forName(model);
-                    Model pageModel = (Model) modelClass.newInstance();
+                    Model pageModel = (Model) 
Class.forName(model).getDeclaredConstructor().newInstance();
                     pageModel.init(initData);
                     modelMap.put(pageModel.getModelName(), pageModel);
                 } catch (WebloggerException re) {
@@ -62,18 +60,12 @@ public class ModelLoader {
                     } else {
                         log.warn("Error finding model: " + model);
                     }
-                } catch (InstantiationException ie) {
+                } catch (ReflectiveOperationException ex) {
                     if(fail) {
-                        throw new WebloggerException("Error instantiating 
model: " + model, ie);
+                        throw new WebloggerException("Error instantiating 
model: " + model, ex);
                     } else {
                         log.warn("Error instantiating model: " + model);
                     }
-                } catch (IllegalAccessException iae) {
-                    if(fail) {
-                        throw new WebloggerException("Error accessing model: " 
+ model, iae);
-                    } else {
-                        log.warn("Error accessing model: " + model);
-                    }
                 }
             }
         }
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentValidationManager.java
 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentValidationManager.java
index 043801f..162d615 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentValidationManager.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentValidationManager.java
@@ -32,8 +32,9 @@ import org.apache.roller.weblogger.util.Utilities;
  * Responsible for loading validators and using them to validate comments.
  */
 public class CommentValidationManager {
-    private static Log log = LogFactory.getLog(CommentValidationManager.class);
-    private List<CommentValidator> validators = new ArrayList<>();
+
+    private static final Log log = 
LogFactory.getLog(CommentValidationManager.class);
+    private final List<CommentValidator> validators = new ArrayList<>();
 
     public CommentValidationManager() {
         
@@ -43,16 +44,11 @@ public class CommentValidationManager {
             String[] valsarray = Utilities.stringToStringArray(vals, ",");
             for (String arrayVal : valsarray) {
                 try {
-                    Class valClass = Class.forName(arrayVal);
-                    CommentValidator val = (CommentValidator) 
valClass.newInstance();
+                    CommentValidator val = (CommentValidator) 
Class.forName(arrayVal).getDeclaredConstructor().newInstance();
                     validators.add(val);
-                    log.info("Configured CommentValidator: " + val.getName() + 
" / " + valClass.getName());
-                } catch (ClassNotFoundException cnfe) {
-                    log.warn("Error finding comment validator: " + arrayVal);
-                } catch (InstantiationException ie) {
-                    log.warn("Error insantiating comment validator: " + 
arrayVal);
-                } catch (IllegalAccessException iae) {
-                    log.warn("Error accessing comment validator: " + arrayVal);
+                    log.info("Configured CommentValidator: " + val.getName() + 
" / " + val.getClass().getName());
+                } catch (ReflectiveOperationException ex) {
+                    log.warn("Error creating comment validator: " + arrayVal, 
ex);
                 }
             }
                         
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java
 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java
index b54836a..860fc93 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java
@@ -40,8 +40,7 @@ import 
org.apache.roller.weblogger.ui.rendering.plugins.comments.DefaultCommentA
  */
 public class CommentAuthenticatorServlet extends HttpServlet {
     
-    private static Log mLogger = 
-        LogFactory.getLog(CommentAuthenticatorServlet.class);
+    private static final Log mLogger = 
LogFactory.getLog(CommentAuthenticatorServlet.class);
     
     private CommentAuthenticator authenticator = null;
     
@@ -78,14 +77,16 @@ public class CommentAuthenticatorServlet extends 
HttpServlet {
         // lookup the authenticator we are going to use and instantiate it
         try {
             String name = 
WebloggerConfig.getProperty("comment.authenticator.classname");
+            this.authenticator = (CommentAuthenticator) 
Class.forName(name).getDeclaredConstructor().newInstance();
             
-            Class clazz = Class.forName(name);
-            this.authenticator = (CommentAuthenticator) clazz.newInstance();
-            
-        } catch(Exception e) {
+        } catch(ReflectiveOperationException e) {
             mLogger.error(e);
-            this.authenticator = new DefaultCommentAuthenticator();
+        } finally {
+            if(authenticator == null) {
+                this.authenticator = new DefaultCommentAuthenticator();
+            }
         }
+        
 
     }
     
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java
 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java
index da50356..8be89ad 100644
--- 
a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java
+++ 
b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java
@@ -91,13 +91,14 @@ public class CommentServlet extends HttpServlet {
 
         // lookup the authenticator we are going to use and instantiate it
         try {
-            String name = WebloggerConfig
-                    .getProperty("comment.authenticator.classname");
-            Class clazz = Class.forName(name);
-            this.authenticator = (CommentAuthenticator) clazz.newInstance();
-        } catch (Exception e) {
+            String name = 
WebloggerConfig.getProperty("comment.authenticator.classname");
+            this.authenticator = (CommentAuthenticator) 
Class.forName(name).getDeclaredConstructor().newInstance();
+        } catch (ReflectiveOperationException e) {
             log.error(e);
-            this.authenticator = new DefaultCommentAuthenticator();
+        } finally {
+            if(this.authenticator == null) {
+                this.authenticator = new DefaultCommentAuthenticator();
+            }
         }
 
         // instantiate a comment validation manager for comment spam checking
diff --git 
a/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java 
b/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java
index 15a7490..23b4d1b 100644
--- a/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java
@@ -50,7 +50,7 @@ import org.apache.roller.weblogger.pojos.Weblog;
  */
 public final class CacheManager {
     
-    private static Log log = LogFactory.getLog(CacheManager.class);
+    private final static Log log = LogFactory.getLog(CacheManager.class);
     
     private static final String DEFAULT_FACTORY = 
             
"org.apache.roller.weblogger.util.cache.ExpiringLRUCacheFactoryImpl";
@@ -71,12 +71,11 @@ public final class CacheManager {
         
         // use reflection to instantiate our factory class
         try {
-            Class factoryClass = Class.forName(classname);
-            cacheFactory = (CacheFactory) factoryClass.newInstance();
+            cacheFactory = (CacheFactory) 
Class.forName(classname).getDeclaredConstructor().newInstance();
         } catch(ClassCastException cce) {
             log.error("It appears that your factory does not implement "+
                     "the CacheFactory interface",cce);
-        } catch(Exception e) {
+        } catch(ReflectiveOperationException e) {
             log.error("Unable to instantiate cache factory ["+classname+"]"+
                     " falling back on default", e);
         }
@@ -85,9 +84,8 @@ public final class CacheManager {
             try {
                 // hmm ... failed to load the specified cache factory
                 // lets try our default
-                Class factoryClass = Class.forName(DEFAULT_FACTORY);
-                cacheFactory = (CacheFactory) factoryClass.newInstance();
-            } catch(Exception e) {
+                cacheFactory = (CacheFactory) 
Class.forName(DEFAULT_FACTORY).getDeclaredConstructor().newInstance();
+            } catch(ReflectiveOperationException e) {
                 log.fatal("Failed to instantiate a cache factory", e);
                 throw new RuntimeException(e);
             }
@@ -105,15 +103,13 @@ public final class CacheManager {
             for (String cHandler : cHandlers) {
                 // use reflection to instantiate the handler class
                 try {
-                    Class handlerClass = Class.forName(cHandler);
-                    CacheHandler customHandler = 
-                            (CacheHandler) handlerClass.newInstance();
+                    CacheHandler customHandler = (CacheHandler) 
Class.forName(cHandler).getDeclaredConstructor().newInstance();
                     
                     cacheHandlers.add(customHandler);
                 } catch(ClassCastException cce) {
                     log.error("It appears that your handler does not implement 
"+
                             "the CacheHandler interface",cce);
-                } catch(Exception e) {
+                } catch(ReflectiveOperationException e) {
                     log.error("Unable to instantiate cache handler 
["+cHandler+"]", e);
                 }
             }
@@ -155,15 +151,14 @@ public final class CacheManager {
             
             try {
                 // use reflection to instantiate the factory class
-                Class factoryClass = Class.forName(classname);
-                CacheFactory factory = (CacheFactory) 
factoryClass.newInstance();
+                CacheFactory factory = (CacheFactory) 
Class.forName(classname).getDeclaredConstructor().newInstance();
                 
                 // now ask for a new cache
                 cache = factory.constructCache(properties);
             } catch(ClassCastException cce) {
                 log.error("It appears that your factory ["+classname+
                         "] does not implement the CacheFactory interface",cce);
-            } catch(Exception e) {
+            } catch(ReflectiveOperationException e) {
                 log.error("Unable to instantiate cache factory ["+classname+
                         "] falling back on default", e);
             }

Reply via email to