You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2021/01/11 17:19:21 UTC

[jspwiki] branch master updated: JSPWIKI-1142 - Minor performances improvement:

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

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


The following commit(s) were added to refs/heads/master by this push:
     new abb5666  JSPWIKI-1142 - Minor performances improvement:
abb5666 is described below

commit abb5666f180efd0a7f14267a2f7bd1673ced2dc4
Author: Arturo Bernal <ar...@gmail.com>
AuthorDate: Fri Jan 8 19:23:24 2021 +0100

    JSPWIKI-1142 - Minor performances improvement:
    
    * Remove redundant initializer
    * Redundant interface modifier --> Not really performance
    * Remove Unused import
    * Bulk operation can be used instead of iteration
    * Manual array copy
    * Manual array to collection copy
    * Avoid String concatenation in loop
    * Redundant 'Collection.addAll()' call. Use Parametrized constructor.
---
 .../org/apache/wiki/event/WikiEventManager.java    |  6 +--
 .../java/org/apache/wiki/TranslationsCheck.java    | 14 +++---
 .../src/main/java/org/apache/wiki/WikiEngine.java  |  4 +-
 .../src/main/java/org/apache/wiki/WikiPage.java    |  6 +--
 .../src/main/java/org/apache/wiki/WikiSession.java |  2 +-
 .../wiki/auth/DefaultAuthenticationManager.java    |  4 +-
 .../wiki/auth/DefaultAuthorizationManager.java     |  6 +--
 .../org/apache/wiki/auth/SecurityVerifier.java     |  7 ++-
 .../apache/wiki/auth/acl/DefaultAclManager.java    |  4 +-
 .../wiki/auth/authorize/DefaultGroupManager.java   |  2 +-
 .../java/org/apache/wiki/auth/authorize/Group.java |  8 ++--
 .../wiki/auth/authorize/JDBCGroupDatabase.java     | 34 +++++++-------
 .../auth/authorize/WebContainerAuthorizer.java     |  8 ++--
 .../wiki/auth/authorize/XMLGroupDatabase.java      | 10 ++---
 .../login/CookieAuthenticationLoginModule.java     |  2 +-
 .../auth/permissions/AllPermissionCollection.java  |  4 +-
 .../apache/wiki/auth/user/DefaultUserProfile.java  | 18 ++++----
 .../apache/wiki/auth/user/JDBCUserDatabase.java    | 52 +++++++++++-----------
 .../org/apache/wiki/auth/user/XMLUserDatabase.java | 14 +++---
 .../apache/wiki/content/DefaultPageRenamer.java    |  2 +-
 .../apache/wiki/diff/ContextualDiffProvider.java   |  4 +-
 .../org/apache/wiki/diff/ExternalDiffProvider.java |  2 +-
 .../java/org/apache/wiki/filters/SpamFilter.java   | 10 ++---
 .../main/java/org/apache/wiki/forms/FormSet.java   |  3 +-
 .../htmltowiki/XHtmlElementToWikiTranslator.java   |  2 +-
 .../org/apache/wiki/pages/DefaultPageManager.java  |  2 +-
 .../wiki/parser/CreoleToJSPWikiTranslator.java     | 19 ++++----
 .../apache/wiki/parser/JSPWikiMarkupParser.java    | 36 +++++++--------
 .../java/org/apache/wiki/parser/LinkParser.java    |  4 +-
 .../apache/wiki/plugin/DefaultPluginManager.java   |  2 +-
 .../org/apache/wiki/plugin/PageViewPlugin.java     | 16 +++----
 .../apache/wiki/plugin/ReferredPagesPlugin.java    |  2 +-
 .../org/apache/wiki/plugin/TableOfContents.java    | 12 ++---
 .../wiki/providers/AbstractFileProvider.java       |  4 +-
 .../wiki/providers/BasicAttachmentProvider.java    |  2 +-
 .../wiki/providers/CachingAttachmentProvider.java  |  2 +-
 .../org/apache/wiki/providers/CachingProvider.java | 10 ++---
 .../org/apache/wiki/render/CreoleRenderer.java     |  2 +-
 .../wiki/render/DefaultRenderingManager.java       |  2 +-
 .../java/org/apache/wiki/tags/CalendarTag.java     |  6 +--
 .../java/org/apache/wiki/tags/EditLinkTag.java     |  2 +-
 .../java/org/apache/wiki/tags/InsertPageTag.java   |  2 +-
 .../main/java/org/apache/wiki/tags/LinkTag.java    | 24 +++++-----
 .../main/java/org/apache/wiki/tags/LinkToTag.java  |  2 +-
 .../java/org/apache/wiki/tags/MessagesTag.java     |  4 +-
 .../java/org/apache/wiki/tags/PageDateTag.java     |  2 +-
 .../main/java/org/apache/wiki/tags/PluginTag.java  |  2 +-
 .../apache/wiki/tags/SearchResultIteratorTag.java  |  4 +-
 .../org/apache/wiki/tags/TabbedSectionTag.java     |  2 +-
 .../java/org/apache/wiki/tags/VariableTag.java     |  4 +-
 .../java/org/apache/wiki/ui/WikiServletFilter.java |  2 +-
 .../org/apache/wiki/ui/admin/beans/ModuleBean.java |  1 -
 .../wiki/workflow/DefaultWorkflowManager.java      |  2 +-
 .../main/java/org/apache/wiki/workflow/Step.java   |  2 +-
 .../main/java/org/apache/wiki/workflow/Task.java   |  2 +-
 .../main/java/org/apache/wiki/util/ClassUtil.java  |  4 +-
 .../main/java/org/apache/wiki/util/CryptoUtil.java | 20 ++-------
 .../main/java/org/apache/wiki/util/MailUtil.java   |  2 +-
 .../java/org/apache/wiki/util/PropertiesUtils.java |  6 +--
 .../main/java/org/apache/wiki/util/Serializer.java |  3 +-
 .../main/java/org/apache/wiki/util/TextUtil.java   |  6 +--
 61 files changed, 215 insertions(+), 232 deletions(-)

diff --git a/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java b/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java
index 1cefc79..478dfee 100644
--- a/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java
+++ b/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java
@@ -129,7 +129,7 @@ public final class WikiEventManager {
     private static final boolean c_permitMonitor = false;
 
     /* Optional listener to be used as all-event monitor. */
-    private static WikiEventListener c_monitor = null;
+    private static WikiEventListener c_monitor;
 
     /* The Map of client object to WikiEventDelegate. */
     private final Map< Object, WikiEventDelegate > m_delegates = new HashMap<>();
@@ -138,7 +138,7 @@ public final class WikiEventManager {
     private final Vector< WikiEventDelegate > m_preloadCache = new Vector<>();
 
     /* Singleton instance of the WikiEventManager. */
-    private static WikiEventManager c_instance = null;
+    private static WikiEventManager c_instance;
 
     /** Constructor for a WikiEventManager. */
     private WikiEventManager() {
@@ -345,7 +345,7 @@ public final class WikiEventManager {
 
         /* A list of event listeners for this instance. */
         private final ArrayList< WeakReference< WikiEventListener > > m_listenerList = new ArrayList<>();
-        private Class< ? >  m_class  = null;
+        private Class< ? >  m_class;
 
         /**
          *  Constructor for an WikiEventDelegateImpl, provided with the client Object it will service, or the Class
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/TranslationsCheck.java b/jspwiki-main/src/main/java/org/apache/wiki/TranslationsCheck.java
index 470a0bb..74c4545 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/TranslationsCheck.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/TranslationsCheck.java
@@ -58,7 +58,7 @@ public class TranslationsCheck {
 
     // Change these to your settings...
     String base = ".";
-    String suffix = null;
+    String suffix;
 
     public static void main( final String[] args ) throws IOException {
         final TranslationsCheck translations = new TranslationsCheck();
@@ -74,16 +74,14 @@ public class TranslationsCheck {
         }
 
         if( "site".equals( translations.suffix ) ) {
-            String site = "";
+            StringBuilder site = new StringBuilder();
             for( int i = 0; i < LANGS.length; i++ ) {
                 translations.suffix = LANGS[ i ];
-                site += translations.check( i );
+                site.append(translations.check(i));
             }
-            site += "</table>\n" + // close table and formatting divs
-                    "</div>\n" +
-                    "</div>\n" +
-                    "</div>";
-            Files.write( Paths.get( "./i18n-table.txt" ), site.getBytes( StandardCharsets.UTF_8 ) );
+            site.append("</table>\n" + // close table and formatting divs
+                    "</div>\n" + "</div>\n" + "</div>");
+            Files.write( Paths.get( "./i18n-table.txt" ), site.toString().getBytes( StandardCharsets.UTF_8 ) );
         } else {
             translations.check( -1 );
         }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
index ce47166..da6c935 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
@@ -110,7 +110,7 @@ public class WikiEngine implements Engine {
     private String m_rootPath = System.getProperty( "user.dir" );
 
     /** Store the ServletContext that we're in.  This may be null if WikiEngine is not running inside a servlet container (i.e. when testing). */
-    private ServletContext   m_servletContext = null;
+    private ServletContext   m_servletContext;
 
     /** Stores the template path.  This is relative to "templates". */
     private String           m_templateDir;
@@ -128,7 +128,7 @@ public class WikiEngine implements Engine {
     private String           m_appid = "";
 
     /** engine is up and running or not */
-    private boolean          m_isConfigured = false;
+    private boolean          m_isConfigured;
 
     /** Stores wikiengine attributes. */
     private final Map< String, Object > m_attributes = new ConcurrentHashMap<>();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiPage.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiPage.java
index 93c334e..9452190 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiPage.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiPage.java
@@ -45,10 +45,10 @@ public class WikiPage implements Page {
     private Date             m_lastModified;
     private long             m_fileSize = -1;
     private int              m_version = PageProvider.LATEST_VERSION;
-    private String           m_author = null;
+    private String           m_author;
     private final Map< String, Object > m_attributes = new HashMap<>();
 
-    private Acl m_accessList = null;
+    private Acl m_accessList;
 
     /**
      * Create a new WikiPage using a given engine and name.
@@ -271,7 +271,7 @@ public class WikiPage implements Page {
         m_attributes.clear();
     }
 
-    private boolean m_hasMetadata = false;
+    private boolean m_hasMetadata;
 
     /**
      * Returns <code>true</code> if the page has valid metadata; that is, it has been parsed. Note that this method is a kludge to
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
index db05505..c2e4199 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
@@ -70,7 +70,7 @@ public final class WikiSession implements Session {
     private final Map< String, Set< String > > m_messages  = new ConcurrentHashMap<>();
 
     /** The Engine that created this session. */
-    private Engine              m_engine              = null;
+    private Engine              m_engine;
 
     private String              m_status              = ANONYMOUS;
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthenticationManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthenticationManager.java
index fbe19f7..4e536b8 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthenticationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthenticationManager.java
@@ -92,9 +92,9 @@ public class DefaultAuthenticationManager implements AuthenticationManager {
     private boolean m_throttleLogins = true;
 
     /** Static Boolean for lazily-initializing the "allows cookie authentication" flag */
-    private boolean m_allowsCookieAuthentication = false;
+    private boolean m_allowsCookieAuthentication;
 
-    private Engine m_engine = null;
+    private Engine m_engine;
 
     /** If true, logs the IP address of the editor */
     private boolean m_storeIPAddress = true;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
index 2e3a6de..bdcabc1 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
@@ -78,14 +78,14 @@ public class DefaultAuthorizationManager implements AuthorizationManager {
 
     private static final Logger log = Logger.getLogger( DefaultAuthorizationManager.class );
 
-    private Authorizer m_authorizer = null;
+    private Authorizer m_authorizer;
 
     /** Cache for storing ProtectionDomains used to evaluate the local policy. */
     private final Map< Principal, ProtectionDomain > m_cachedPds = new WeakHashMap<>();
 
-    private Engine m_engine = null;
+    private Engine m_engine;
 
-    private LocalPolicy m_localPolicy = null;
+    private LocalPolicy m_localPolicy;
 
     /**
      * Constructs a new DefaultAuthorizationManager instance.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/SecurityVerifier.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/SecurityVerifier.java
index 86173f3..6abbbbb 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/SecurityVerifier.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/SecurityVerifier.java
@@ -50,6 +50,7 @@ import java.security.Permission;
 import java.security.Principal;
 import java.security.PrivilegedAction;
 import java.security.ProtectionDomain;
+import java.util.Arrays;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
@@ -63,7 +64,7 @@ public final class SecurityVerifier {
 
     private final Engine                m_engine;
 
-    private boolean               m_isSecurityPolicyConfigured = false;
+    private boolean               m_isSecurityPolicyConfigured;
 
     private Principal[]           m_policyPrincipals           = new Principal[0];
 
@@ -692,9 +693,7 @@ public final class SecurityVerifier {
             principals.add( Role.AUTHENTICATED );
             final ProtectionDomain[] domains = policy.getProtectionDomains();
             for ( final ProtectionDomain domain : domains ) {
-                for( final Principal principal : domain.getPrincipals() ) {
-                    principals.add( principal );
-                }
+                principals.addAll(Arrays.asList(domain.getPrincipals()));
             }
             m_policyPrincipals = principals.toArray( new Principal[principals.size()] );
         } catch( final IOException e ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/DefaultAclManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/DefaultAclManager.java
index 7279ad0..025fa6c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/DefaultAclManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/DefaultAclManager.java
@@ -58,8 +58,8 @@ public class DefaultAclManager implements AclManager {
 
     private static final Logger log = Logger.getLogger(DefaultAclManager.class);
 
-    private AuthorizationManager m_auth = null;
-    private Engine m_engine = null;
+    private AuthorizationManager m_auth;
+    private Engine m_engine;
     private static final String PERM_REGEX = "("
                                               + PagePermission.COMMENT_ACTION + "|"
                                               + PagePermission.DELETE_ACTION  + "|"
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/DefaultGroupManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/DefaultGroupManager.java
index 8ac7143..642fc43 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/DefaultGroupManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/DefaultGroupManager.java
@@ -68,7 +68,7 @@ public class DefaultGroupManager implements GroupManager, Authorizer, WikiEventL
 
     protected WikiEventListener m_groupListener;
 
-    private GroupDatabase m_groupDatabase    = null;
+    private GroupDatabase m_groupDatabase;
 
     /** Map with GroupPrincipals as keys, and Groups as values */
     private final Map< Principal, Group > m_groups = new HashMap<>();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/Group.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/Group.java
index ee2b4aa..d9ccbcd 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/Group.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/Group.java
@@ -63,13 +63,13 @@ public class Group {
 
     private final Vector<Principal>    m_members = new Vector<>();
 
-    private String          m_creator             = null;
+    private String          m_creator;
 
-    private Date            m_created             = null;
+    private Date            m_created;
 
-    private String          m_modifier            = null;
+    private String          m_modifier;
 
-    private Date            m_modified            = null;
+    private Date            m_modified;
 
     private final String    m_name;
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/JDBCGroupDatabase.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/JDBCGroupDatabase.java
index 1f22cf6..3f87c99 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/JDBCGroupDatabase.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/JDBCGroupDatabase.java
@@ -191,39 +191,39 @@ public class JDBCGroupDatabase implements GroupDatabase {
 
     protected static final Logger log = Logger.getLogger( JDBCGroupDatabase.class );
 
-    private DataSource m_ds = null;
+    private DataSource m_ds;
 
-    private String m_created = null;
+    private String m_created;
 
-    private String m_creator = null;
+    private String m_creator;
 
-    private String m_name = null;
+    private String m_name;
 
-    private String m_member = null;
+    private String m_member;
 
-    private String m_modified = null;
+    private String m_modified;
 
-    private String m_modifier = null;
+    private String m_modifier;
 
-    private String m_findAll = null;
+    private String m_findAll;
 
-    private String m_findGroup = null;
+    private String m_findGroup;
 
-    private String m_findMembers = null;
+    private String m_findMembers;
 
-    private String m_insertGroup = null;
+    private String m_insertGroup;
 
-    private String m_insertGroupMembers = null;
+    private String m_insertGroupMembers;
 
-    private String m_updateGroup = null;
+    private String m_updateGroup;
 
-    private String m_deleteGroup = null;
+    private String m_deleteGroup;
 
-    private String m_deleteGroupMembers = null;
+    private String m_deleteGroupMembers;
 
-    private boolean m_supportsCommits = false;
+    private boolean m_supportsCommits;
 
-    private Engine m_engine = null;
+    private Engine m_engine;
 
     /**
      * Looks up and deletes a {@link Group} from the group database. If the
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/WebContainerAuthorizer.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/WebContainerAuthorizer.java
index c2b8e60..099fb19 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/WebContainerAuthorizer.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/WebContainerAuthorizer.java
@@ -74,9 +74,9 @@ public class WebContainerAuthorizer implements WebAuthorizer  {
      * Lazily-initialized boolean flag indicating whether the web container
      * protects JSPWiki resources.
      */
-    protected boolean m_containerAuthorized = false;
+    protected boolean m_containerAuthorized;
 
-    private Document m_webxml = null;
+    private Document m_webxml;
 
     /**
      * Constructs a new instance of the WebContainerAuthorizer class.
@@ -120,9 +120,9 @@ public class WebContainerAuthorizer implements WebAuthorizer  {
         }
 
         if( m_containerRoles.length > 0 ) {
-            String roles = "";
+            StringBuilder roles = new StringBuilder();
             for( final Role containerRole : m_containerRoles ) {
-                roles = roles + containerRole + " ";
+                roles.append(containerRole).append(" ");
             }
             log.info( " JSPWiki determined the web container manages these roles: " + roles );
         }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/XMLGroupDatabase.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/XMLGroupDatabase.java
index 4fd4edb..5d5ac51 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/XMLGroupDatabase.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/XMLGroupDatabase.java
@@ -100,13 +100,13 @@ public class XMLGroupDatabase implements GroupDatabase {
 
     private static final String  DATE_FORMAT       = "yyyy.MM.dd 'at' HH:mm:ss:SSS z";
 
-    private Document              m_dom            = null;
+    private Document              m_dom;
 
     private final DateFormat            m_defaultFormat  = DateFormat.getDateTimeInstance();
 
-    private File                  m_file           = null;
+    private File                  m_file;
 
-    private Engine                m_engine         = null;
+    private Engine                m_engine;
 
     private final Map<String, Group>    m_groups         = new ConcurrentHashMap<>();
 
@@ -286,8 +286,8 @@ public class XMLGroupDatabase implements GroupDatabase {
         }
     }
 
-    private long m_lastCheck    = 0;
-    private long m_lastModified = 0;
+    private long m_lastCheck;
+    private long m_lastModified;
 
     private void checkForRefresh() {
         final long time = System.currentTimeMillis();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/login/CookieAuthenticationLoginModule.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/login/CookieAuthenticationLoginModule.java
index 791ce01..0ae6e11 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/login/CookieAuthenticationLoginModule.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/login/CookieAuthenticationLoginModule.java
@@ -92,7 +92,7 @@ public class CookieAuthenticationLoginModule extends AbstractLoginModule {
      */
     private static final int DEFAULT_EXPIRY_DAYS = 14;
 
-    private static long c_lastScrubTime = 0L;
+    private static long c_lastScrubTime;
 
     /**
      * Describes how often we scrub the cookieDir directory.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/AllPermissionCollection.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/AllPermissionCollection.java
index 965a1fd..6d6566d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/AllPermissionCollection.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/AllPermissionCollection.java
@@ -31,9 +31,9 @@ public class AllPermissionCollection extends PermissionCollection
 
     private static final long serialVersionUID = 1L;
 
-    private boolean           m_notEmpty      = false;
+    private boolean           m_notEmpty;
 
-    private boolean           m_readOnly      = false;
+    private boolean           m_readOnly;
 
     protected final Hashtable<Permission, Permission> m_permissions    = new Hashtable<>();
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/DefaultUserProfile.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/DefaultUserProfile.java
index 1a641cc..a7d2e0e 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/DefaultUserProfile.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/DefaultUserProfile.java
@@ -39,15 +39,15 @@ public final class DefaultUserProfile implements UserProfile {
     private static final String WHITESPACE = "\\s";
 
     private final Map< String, Serializable > attributes = new HashMap<>();
-    private Date created = null;
-    private String email = null;
-    private String fullname = null;
-    private Date lockExpiry = null;
-    private String loginName = null;
-    private Date modified = null;
-    private String password = null;
-    private String uid = null;
-    private String wikiname = null;
+    private Date created;
+    private String email;
+    private String fullname;
+    private Date lockExpiry;
+    private String loginName;
+    private Date modified;
+    private String password;
+    private String uid;
+    private String wikiname;
 
     /**
      * Package constructor to allow direct instantiation only from package related classes (i.e., AbstractUserDatabase).
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/JDBCUserDatabase.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/JDBCUserDatabase.java
index 93ca181..a7b9d84 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/JDBCUserDatabase.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/JDBCUserDatabase.java
@@ -246,57 +246,57 @@ public class JDBCUserDatabase extends AbstractUserDatabase {
 
     public static final String PROP_DB_WIKI_NAME = "jspwiki.userdatabase.wikiName";
 
-    private DataSource m_ds = null;
+    private DataSource m_ds;
 
-    private String m_deleteUserByLoginName = null;
+    private String m_deleteUserByLoginName;
 
-    private String m_deleteRoleByLoginName = null;
+    private String m_deleteRoleByLoginName;
 
-    private String m_findByEmail = null;
+    private String m_findByEmail;
 
-    private String m_findByFullName = null;
+    private String m_findByFullName;
 
-    private String m_findByLoginName = null;
+    private String m_findByLoginName;
 
-    private String m_findByUid = null;
+    private String m_findByUid;
 
-    private String m_findByWikiName = null;
+    private String m_findByWikiName;
 
-    private String m_renameProfile = null;
+    private String m_renameProfile;
 
-    private String m_renameRoles = null;
+    private String m_renameRoles;
 
-    private String m_updateProfile = null;
+    private String m_updateProfile;
 
-    private String m_findAll = null;
+    private String m_findAll;
 
-    private String m_findRoles = null;
+    private String m_findRoles;
 
-    private String m_insertProfile = null;
+    private String m_insertProfile;
 
-    private String m_insertRole = null;
+    private String m_insertRole;
 
-    private String m_attributes = null;
+    private String m_attributes;
 
-    private String m_email = null;
+    private String m_email;
 
-    private String m_fullName = null;
+    private String m_fullName;
 
-    private String m_lockExpiry = null;
+    private String m_lockExpiry;
 
-    private String m_loginName = null;
+    private String m_loginName;
 
-    private String m_password = null;
+    private String m_password;
 
-    private String m_uid = null;
+    private String m_uid;
     
-    private String m_wikiName = null;
+    private String m_wikiName;
 
-    private String m_created = null;
+    private String m_created;
 
-    private String m_modified = null;
+    private String m_modified;
 
-    private boolean m_supportsCommits = false;
+    private boolean m_supportsCommits;
 
     /**
      * Looks up and deletes the first {@link UserProfile} in the user database
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java
index ab518c0..4a292fe 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java
@@ -86,8 +86,8 @@ public class XMLUserDatabase extends AbstractUserDatabase {
     private static final String USER_TAG          = "user";
     private static final String WIKI_NAME         = "wikiName";
     private static final String DATE_FORMAT       = "yyyy.MM.dd 'at' HH:mm:ss:SSS z";
-    private Document            c_dom             = null;
-    private File                c_file            = null;
+    private Document            c_dom;
+    private File                c_file;
 
     /** {@inheritDoc} */
     @Override
@@ -298,8 +298,8 @@ public class XMLUserDatabase extends AbstractUserDatabase {
         }
     }
 
-    private long c_lastCheck    = 0;
-    private long c_lastModified = 0;
+    private long c_lastCheck;
+    private long c_lastModified;
 
     private void checkForRefresh() {
         final long time = System.currentTimeMillis();
@@ -524,17 +524,17 @@ public class XMLUserDatabase extends AbstractUserDatabase {
      * @return the text nodes that are immediate children of the base element, concatenated together
      */
     private String extractText( final Element element ) {
-        String text = "";
+        StringBuilder text = new StringBuilder();
         if( element.getChildNodes().getLength() > 0 ) {
             final NodeList children = element.getChildNodes();
             for( int k = 0; k < children.getLength(); k++ ) {
                 final Node child = children.item( k );
                 if( child.getNodeType() == Node.TEXT_NODE ) {
-                    text = text + ( ( Text )child ).getData();
+                    text.append(((Text) child).getData());
                 }
             }
         }
-        return text;
+        return text.toString();
     }
 
     /**
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/content/DefaultPageRenamer.java b/jspwiki-main/src/main/java/org/apache/wiki/content/DefaultPageRenamer.java
index 571fff6..63aae73 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/content/DefaultPageRenamer.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/content/DefaultPageRenamer.java
@@ -52,7 +52,7 @@ public class DefaultPageRenamer implements PageRenamer {
 
     private static final Logger log = Logger.getLogger( DefaultPageRenamer.class );
     
-    private boolean m_camelCase = false;
+    private boolean m_camelCase;
     
     /**
      *  Renames a page.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
index ff0babc..40da851 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
@@ -210,10 +210,10 @@ public class ContextualDiffProvider implements DiffProvider {
         /** Keeping score of the original lines to process */
         private final int m_max;
 
-        private int m_index = 0;
+        private int m_index;
 
         /** Index of the next element to be copied into the output. */
-        private int m_firstElem = 0;
+        private int m_firstElem;
 
         /** Link Anchor counter */
         private int m_count = 1;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/diff/ExternalDiffProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/diff/ExternalDiffProvider.java
index 47d2f67..2cfa234 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/diff/ExternalDiffProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/diff/ExternalDiffProvider.java
@@ -47,7 +47,7 @@ public class ExternalDiffProvider implements DiffProvider {
      */
     public static final String PROP_DIFFCOMMAND    = "jspwiki.diffCommand";
 
-    private String m_diffCommand = null;
+    private String m_diffCommand;
     private Charset m_encoding;
 
     private static final char DIFF_ADDED_SYMBOL    = '+';
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
index 635a930..0405a79 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
@@ -184,8 +184,8 @@ public class SpamFilter extends BasePageFilter {
     private final PatternMatcher  m_matcher = new Perl5Matcher();
     private final PatternCompiler m_compiler = new Perl5Compiler();
 
-    private Collection<Pattern> m_spamPatterns = null;
-    private Collection<Pattern> m_IPPatterns = null;
+    private Collection<Pattern> m_spamPatterns;
+    private Collection<Pattern> m_IPPatterns;
 
     private Date m_lastRebuild = new Date( 0L );
 
@@ -210,15 +210,15 @@ public class SpamFilter extends BasePageFilter {
     private Pattern         m_urlPattern;
     private Akismet         m_akismet;
 
-    private String          m_akismetAPIKey = null;
+    private String          m_akismetAPIKey;
 
-    private boolean         m_useCaptcha = false;
+    private boolean         m_useCaptcha;
 
     /** The limit at which we consider something to be spam. */
     private final int             m_scoreLimit = 1;
 
     /** If set to true, will ignore anyone who is in Authenticated role. */
-    private boolean         m_ignoreAuthenticated = false;
+    private boolean         m_ignoreAuthenticated;
 
     private boolean         m_stopAtFirstMatch = true;
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSet.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSet.java
index c9c593e..7ac24f7 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSet.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSet.java
@@ -80,8 +80,7 @@ public class FormSet implements Plugin {
         //  invocation this might be coming from a cache; so we can't modify the original param string.
         //
         info.setName( formName );
-        final Map< String, String > hm = new HashMap<>();
-        hm.putAll( params );
+        final Map<String, String> hm = new HashMap<>(params);
         hm.remove( FormElement.PARAM_FORM );
         info.addSubmission( hm );
         
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/htmltowiki/XHtmlElementToWikiTranslator.java b/jspwiki-main/src/main/java/org/apache/wiki/htmltowiki/XHtmlElementToWikiTranslator.java
index 2c90b42..8f8029e 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/htmltowiki/XHtmlElementToWikiTranslator.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/htmltowiki/XHtmlElementToWikiTranslator.java
@@ -1062,7 +1062,7 @@ public class XHtmlElementToWikiTranslator
     private class PreStack
     {
 
-        private int m_pre = 0;
+        private int m_pre;
 
         public boolean isPreMode()
         {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java b/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java
index 4d9419a..ed8e290 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java
@@ -95,7 +95,7 @@ public class DefaultPageManager implements PageManager {
 
     private final int m_expiryTime;
 
-    private LockReaper m_reaper = null;
+    private LockReaper m_reaper;
 
     private final PageSorter pageSorter = new PageSorter();
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/parser/CreoleToJSPWikiTranslator.java b/jspwiki-main/src/main/java/org/apache/wiki/parser/CreoleToJSPWikiTranslator.java
index f65178e..f564b1d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/parser/CreoleToJSPWikiTranslator.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/parser/CreoleToJSPWikiTranslator.java
@@ -427,7 +427,7 @@ public class CreoleToJSPWikiTranslator
         {
             String protectedMarkup = matcher.group(0);
             final String paramsField = matcher.group(groupPos);
-            String paramsString = "";
+            StringBuilder paramsString = new StringBuilder();
 
             if (paramsField != null)
             {
@@ -446,7 +446,7 @@ public class CreoleToJSPWikiTranslator
                         String code = param.replaceAll("(?i)([0-9]+)" + key, value + "<check>" + "$1" + "</check>");
                         code = code.replaceAll("(.*?)%(.*?)<check>(.*?)</check>", "$1$3$2");
                         if (!code.equals(param)) {
-                            paramsString += code;
+                            paramsString.append(code);
                         }
                     }
 
@@ -454,22 +454,21 @@ public class CreoleToJSPWikiTranslator
                     try
                     {
                         Integer.parseInt(param);
-                        paramsString += " width='" + param + "px'";
+                        paramsString.append(" width='").append(param).append("px'");
                     }
                     catch (final Exception e)
                     {
 
                         if (wikiProps.getProperty("creole.imagePlugin.para." + param) != null)
-                            paramsString += " "
-                                            + wikiProps.getProperty("creole.imagePlugin.para." + param)
-                                                .replaceAll("^(\"|')(.*)(\"|')$", "$2");
+                            paramsString.append(" ").append(wikiProps.getProperty("creole.imagePlugin.para." + param)
+                                    .replaceAll("^(\"|')(.*)(\"|')$", "$2"));
                     }
                 }
             }
             final String temp = protectedMarkup;
 
             protectedMarkup = translateElement(protectedMarkup, markupRegex, replaceContent);
-            protectedMarkup = protectedMarkup.replaceAll("\u2015", paramsString);
+            protectedMarkup = protectedMarkup.replaceAll("\u2015", paramsString.toString());
             protectedMarkup = protectedMarkup.replaceAll("\u2016", imagePlugin);
             protectedMarkup = protectedMarkup.replaceAll("caption=''", "");
             protectedMarkup = protectedMarkup.replaceAll("\\s+", " ");
@@ -538,12 +537,12 @@ public class CreoleToJSPWikiTranslator
 
     private String bytesToHash(final byte[] b)
     {
-        String hash = "";
+        StringBuilder hash = new StringBuilder();
         for (int i = 0; i < b.length; i++)
         {
-            hash += Integer.toString((b[i] & 0xff) + 0x100, 16).substring(1);
+            hash.append(Integer.toString((b[i] & 0xff) + 0x100, 16).substring(1));
         }
-        return hash;
+        return hash.toString();
     }
 
     private String translateElement(final String content, final String fromMarkup, final String toMarkup)
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java b/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java
index f0c95ca..bee3c69 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java
@@ -94,23 +94,23 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
     private static final Logger log = Logger.getLogger( JSPWikiMarkupParser.class );
 
-    private boolean        m_isbold       = false;
-    private boolean        m_isitalic     = false;
-    private boolean        m_istable      = false;
-    private boolean        m_isPre        = false;
-    private boolean        m_isEscaping   = false;
-    private boolean        m_isdefinition = false;
-    private boolean        m_isPreBlock   = false;
+    private boolean        m_isbold;
+    private boolean        m_isitalic;
+    private boolean        m_istable;
+    private boolean        m_isPre;
+    private boolean        m_isEscaping;
+    private boolean        m_isdefinition;
+    private boolean        m_isPreBlock;
 
     /** Contains style information, in multiple forms. */
     private final Stack<Boolean> m_styleStack   = new Stack<>();
 
      // general list handling
-    private int            m_genlistlevel = 0;
+    private int            m_genlistlevel;
     private final StringBuilder  m_genlistBulletBuffer = new StringBuilder(10);  // stores the # and * pattern
     private final boolean        m_allowPHPWikiStyleLists = true;
 
-    private boolean        m_isOpenParagraph = false;
+    private boolean        m_isOpenParagraph;
 
     /** Parser for extended link functionality. */
     private final LinkParser     m_linkParser = new LinkParser();
@@ -124,14 +124,14 @@ public class JSPWikiMarkupParser extends MarkupParser {
     private final Map<String, Integer>   m_titleSectionCounter = new HashMap<>();
 
     /** If true, then considers CamelCase links as well. */
-    private boolean                m_camelCaseLinks      = false;
+    private boolean                m_camelCaseLinks;
 
     /** If true, then generate special output for wysiwyg editing in certain cases */
-    private boolean                m_wysiwygEditorMode     = false;
+    private boolean                m_wysiwygEditorMode;
 
     /** If true, consider URIs that have no brackets as well. */
     // FIXME: Currently reserved, but not used.
-    private boolean                m_plainUris           = false;
+    private boolean                m_plainUris;
 
     /** If true, all outward links use a small link image. */
     private boolean                m_useOutlinkImage     = true;
@@ -139,9 +139,9 @@ public class JSPWikiMarkupParser extends MarkupParser {
     private boolean                m_useAttachmentImage  = true;
 
     /** If true, allows raw HTML. */
-    private boolean                m_allowHTML           = false;
+    private boolean                m_allowHTML;
 
-    private boolean                m_useRelNofollow      = false;
+    private boolean                m_useRelNofollow;
 
     private final PatternCompiler        m_compiler = new Perl5Compiler();
 
@@ -152,7 +152,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
     private int                    m_rowNum              = 1;
 
-    private Heading                m_lastHeading         = null;
+    private Heading                m_lastHeading;
 
     private static final String CAMELCASE_PATTERN     = "JSPWikiMarkupParser.camelCasePattern";
 
@@ -898,7 +898,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
     }
 
     /** Holds the image URL for the duration of this parser */
-    private String m_outlinkImageURL = null;
+    private String m_outlinkImageURL;
 
     /**
      *  Returns an element for the external link image (out.png).  However,
@@ -1529,8 +1529,8 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
     /** Controls whether italic is restarted after a paragraph shift */
 
-    private boolean m_restartitalic = false;
-    private boolean m_restartbold   = false;
+    private boolean m_restartitalic;
+    private boolean m_restartbold;
 
     private boolean m_newLine;
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParser.java b/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParser.java
index c3564e7..faa3077 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParser.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParser.java
@@ -372,9 +372,9 @@ public class LinkParser
     public static class Link
     {
         private String            m_text;
-        private String            m_ref = null;
+        private String            m_ref;
         private int               m_interwikiPoint = -1;
-        private List<Attribute>   m_attribs = null;
+        private List<Attribute>   m_attribs;
 
         /**
          *  Create a new Link with text but no reference.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java
index dc32e54..f7cd28d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java
@@ -464,7 +464,7 @@ public class DefaultPluginManager extends BaseModuleManager implements PluginMan
         private String    m_ajaxAlias;
         private Class<?>  m_clazz;
 
-        private boolean m_initialized = false;
+        private boolean m_initialized;
 
         /**
          *  Creates a new plugin info object which can be used to access a plugin.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java
index e898b21..2544e22 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java
@@ -82,7 +82,7 @@ public class PageViewPlugin extends AbstractReferralPlugin implements Plugin, In
     private static final Logger log = Logger.getLogger( PageViewPlugin.class );
 
     /** The page view manager. */
-    private static PageViewManager c_singleton = null;
+    private static PageViewManager c_singleton;
 
     /** Constant for the 'count' parameter / value. */
     private static final String PARAM_COUNT = "count";
@@ -173,22 +173,22 @@ public class PageViewPlugin extends AbstractReferralPlugin implements Plugin, In
      */
     public final class PageViewManager implements WikiEventListener {
         /** Are we initialized? */
-        private boolean m_initialized = false;
+        private boolean m_initialized;
 
         /** The page counters. */
-        private Map<String, Counter> m_counters = null;
+        private Map<String, Counter> m_counters;
 
         /** The page counters in storage format. */
-        private Properties m_storage = null;
+        private Properties m_storage;
 
         /** Are all changes stored? */
-        private boolean m_dirty = false;
+        private boolean m_dirty;
 
         /** The page count storage background thread. */
-        private Thread m_pageCountSaveThread = null;
+        private Thread m_pageCountSaveThread;
 
         /** The work directory. */
-        private String m_workDir = null;
+        private String m_workDir;
 
         /** Comparator for descending sort on page count. */
         private final Comparator< Object > m_compareCountDescending = ( o1, o2 ) -> {
@@ -563,7 +563,7 @@ public class PageViewPlugin extends AbstractReferralPlugin implements Plugin, In
     private static final class Counter {
 
         /** The count value. */
-        private int m_count = 0;
+        private int m_count;
 
         /**
          * Create a new counter.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferredPagesPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferredPagesPlugin.java
index 9fd46b2..adb8d7d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferredPagesPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferredPagesPlugin.java
@@ -66,7 +66,7 @@ public class ReferredPagesPlugin implements Plugin {
     private Pattern        m_includePattern;
     private Pattern        m_excludePattern;
     private boolean m_formatCompact  = true;
-    private boolean m_formatSort     = false;
+    private boolean m_formatSort;
 
     /** The parameter name for the root page to start from.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_ROOT    = "page";
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/TableOfContents.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/TableOfContents.java
index abb20a9..5e2e635 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/TableOfContents.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/TableOfContents.java
@@ -70,13 +70,13 @@ public class TableOfContents implements Plugin, HeadingListener {
     private static final String VAR_ALREADY_PROCESSING = "__TableOfContents.processing";
 
     StringBuffer m_buf = new StringBuffer();
-    private boolean m_usingNumberedList = false;
+    private boolean m_usingNumberedList;
     private String m_prefix = "";
-    private int m_starting = 0;
-    private int m_level1Index = 0;
-    private int m_level2Index = 0;
-    private int m_level3Index = 0;
-    private int m_lastLevel = 0;
+    private int m_starting;
+    private int m_level1Index;
+    private int m_level2Index;
+    private int m_level3Index;
+    private int m_lastLevel;
 
     /**
      *  {@inheritDoc}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/providers/AbstractFileProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/providers/AbstractFileProvider.java
index 3b8ac2f..dcb3282 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/providers/AbstractFileProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/providers/AbstractFileProvider.java
@@ -176,11 +176,13 @@ public abstract class AbstractFileProvider implements PageProvider {
 
         if( m_windowsHackNeeded ) {
             final String pn = pagename.toLowerCase();
+            StringBuilder pagenameBuilder = new StringBuilder(pagename);
             for( final String windowsDeviceName : WINDOWS_DEVICE_NAMES ) {
                 if( windowsDeviceName.equals( pn ) ) {
-                    pagename = "$$$" + pagename;
+                    pagenameBuilder.insert(0, "$$$");
                 }
             }
+            pagename = pagenameBuilder.toString();
         }
 
         return pagename;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/providers/BasicAttachmentProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/providers/BasicAttachmentProvider.java
index 109867f..4afdbc7 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/providers/BasicAttachmentProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/providers/BasicAttachmentProvider.java
@@ -87,7 +87,7 @@ public class BasicAttachmentProvider implements AttachmentProvider {
      * Disable client cache for files with patterns
      * since 2.5.96
      */
-    private Pattern m_disableCache = null;
+    private Pattern m_disableCache;
     
     /** The property name for specifying which attachments are not cached.  Value is <tt>{@value}</tt>. */
     public static final String PROP_DISABLECACHE = "jspwiki.basicAttachmentProvider.disableCache";
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingAttachmentProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingAttachmentProvider.java
index bacde51..5a2d3af 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingAttachmentProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingAttachmentProvider.java
@@ -83,7 +83,7 @@ public class CachingAttachmentProvider implements AttachmentProvider {
     public static final String DIR_EXTENSION   = "-att";
 
 
-    private boolean m_gotall = false;
+    private boolean m_gotall;
 
     /**
      * {@inheritDoc}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingProvider.java
index 5d31aa4..fc22991 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingProvider.java
@@ -82,15 +82,15 @@ public class CachingProvider implements PageProvider {
     /** Name of the page history cache. */
     public static final String HISTORYCACHE_NAME = "jspwiki.pageHistoryCache";
 
-    private long             m_cacheMisses = 0;
-    private long             m_cacheHits   = 0;
+    private long             m_cacheMisses;
+    private long             m_cacheHits;
 
-    private long             m_historyCacheMisses = 0;
-    private long             m_historyCacheHits   = 0;
+    private long             m_historyCacheMisses;
+    private long             m_historyCacheHits;
 
     // FIXME: This MUST be cached somehow.
 
-    private boolean          m_gotall = false;
+    private boolean          m_gotall;
 
     // The default settings of the caches, if you want something else, provide an "ehcache.xml" file
     // Please note that JSPWiki ships with a default "ehcache.xml" in the classpath
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/render/CreoleRenderer.java b/jspwiki-main/src/main/java/org/apache/wiki/render/CreoleRenderer.java
index 230f416..3c40cdb 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/render/CreoleRenderer.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/render/CreoleRenderer.java
@@ -71,7 +71,7 @@ public class CreoleRenderer extends WikiRenderer {
        "tt", "<<{{>>", "<<}}>>"
     };
 
-    private int m_listCount = 0;
+    private int m_listCount;
     private char m_listChar = 'x';
 
     private final List< PluginContent > m_plugins = new ArrayList<>();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java b/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
index 26c7211..e353941 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
@@ -88,7 +88,7 @@ public class DefaultRenderingManager implements RenderingManager {
     private final int m_cacheExpiryPeriod = 24*60*60; // This can be relatively long
 
     /** If true, all titles will be cleaned. */
-    private boolean m_beautifyTitle = false;
+    private boolean m_beautifyTitle;
 
     /** Stores the WikiDocuments that have been cached. */
     private Cache m_documentCache;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/CalendarTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/CalendarTag.java
index 3396f8d..45f36f2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/CalendarTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/CalendarTag.java
@@ -57,9 +57,9 @@ public class CalendarTag extends WikiTagBase {
     private static final long serialVersionUID = 0L;
     private static final Logger log = Logger.getLogger( CalendarTag.class );
     
-    private SimpleDateFormat m_pageFormat = null;
-    private SimpleDateFormat m_urlFormat = null;
-    private SimpleDateFormat m_monthUrlFormat = null;
+    private SimpleDateFormat m_pageFormat;
+    private SimpleDateFormat m_urlFormat;
+    private SimpleDateFormat m_monthUrlFormat;
     private SimpleDateFormat m_dateFormat = new SimpleDateFormat( "ddMMyy" );
 
     /**
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/EditLinkTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/EditLinkTag.java
index 3ed3af7..e20e290 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/EditLinkTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/EditLinkTag.java
@@ -45,7 +45,7 @@ public class EditLinkTag extends WikiLinkTag {
 
     private static final long serialVersionUID = 0L;
     
-    public String m_version = null;
+    public String m_version;
     public String m_title = "";
     public String m_accesskey = "";
     
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/InsertPageTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/InsertPageTag.java
index d5e0259..fd7fd2b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/InsertPageTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/InsertPageTag.java
@@ -57,7 +57,7 @@ public class InsertPageTag extends WikiTagBase {
     public static final int HTML  = 0;
     public static final int PLAIN = 1;
 
-    protected String m_pageName = null;
+    protected String m_pageName;
     private   int    m_mode = HTML;
 
     @Override
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java
index 86e8615..adbac32 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java
@@ -51,19 +51,19 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
 	static final long serialVersionUID = 0L;
     private static final Logger log = Logger.getLogger( LinkTag.class );
 
-    private String m_version = null;
-    private String m_cssClass= null;
-    private String m_style   = null;
-    private String m_title   = null;
-    private String m_target  = null;
-    private String m_compareToVersion = null;
-    private String m_rel       = null;
-    private String m_jsp     = null;
-    private String m_ref     = null;
+    private String m_version;
+    private String m_cssClass;
+    private String m_style;
+    private String m_title;
+    private String m_target;
+    private String m_compareToVersion;
+    private String m_rel;
+    private String m_jsp;
+    private String m_ref;
     private String m_context = ContextEnum.PAGE_VIEW.getRequestContext();
-    private String m_accesskey = null;
-    private String m_tabindex = null;
-    private String m_templatefile = null;
+    private String m_accesskey;
+    private String m_tabindex;
+    private String m_templatefile;
 
     private Map<String, String> m_containedParams;
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkToTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkToTag.java
index caf95ab..1ea602c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkToTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkToTag.java
@@ -45,7 +45,7 @@ public class LinkToTag extends WikiLinkTag {
 
     private static final long serialVersionUID = 0L;
 
-    private String m_version = null;
+    private String m_version;
     public String m_title = "";
     public String m_accesskey = "";
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/MessagesTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/MessagesTag.java
index a3a75f6..dc42832 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/MessagesTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/MessagesTag.java
@@ -41,9 +41,9 @@ public class MessagesTag extends WikiTagBase {
 
     private static final long   serialVersionUID = 0L;
 
-    private String              m_action         = null;
+    private String              m_action;
     private String              m_prefix         = "";
-    private String              m_topic          = null;
+    private String              m_topic;
     private String              m_div            = "information";
 
     private static final String CLEAR            = "clear";
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/PageDateTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/PageDateTag.java
index 5fe0d3e..25c571b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/PageDateTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/PageDateTag.java
@@ -46,7 +46,7 @@ public class PageDateTag extends WikiTagBase {
 
     public static final String DEFAULT_FORMAT = "dd-MMM-yyyy HH:mm:ss zzz";
 
-    private String m_format = null;
+    private String m_format;
 
     public void initTag() {
         super.initTag();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/PluginTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/PluginTag.java
index 20a4413..9b671c4 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/PluginTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/PluginTag.java
@@ -48,7 +48,7 @@ public class PluginTag
     private String m_plugin;
     private String m_args;
 
-    private boolean m_evaluated = false;
+    private boolean m_evaluated;
 
     /**
      *  {@inheritDoc}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/SearchResultIteratorTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/SearchResultIteratorTag.java
index f7b1b4e..0042b02 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/SearchResultIteratorTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/SearchResultIteratorTag.java
@@ -48,8 +48,8 @@ public class SearchResultIteratorTag extends IteratorTag {
     private static final long serialVersionUID = 0L;
     
     private   int         m_maxItems;
-    private   int         m_count = 0;
-    private   int         m_start = 0;
+    private   int         m_count;
+    private   int         m_start;
     
     private static final Logger log = Logger.getLogger(SearchResultIteratorTag.class);
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/TabbedSectionTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/TabbedSectionTag.java
index 7baacd7..078d28d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/TabbedSectionTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/TabbedSectionTag.java
@@ -38,7 +38,7 @@ public class TabbedSectionTag extends BodyTagSupport
     private static final long serialVersionUID = 1702437933960026481L;
     private String       m_defaultTabId;
     private String       m_firstTabId;
-    private boolean      m_defaultTabFound = false;
+    private boolean      m_defaultTabFound;
 
     private StringBuffer m_buffer = new StringBuffer(BUFFER_SIZE);
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/VariableTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/VariableTag.java
index 45ccae6..4f74652 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/VariableTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/VariableTag.java
@@ -47,8 +47,8 @@ public class VariableTag extends WikiTagBase {
 
     private static final long serialVersionUID = 0L;
 
-    private String m_var      = null;
-    private String m_default  = null;
+    private String m_var;
+    private String m_default;
 
     @Override public void initTag() {
         super.initTag();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java
index 6ef788b..7108bc8 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java
@@ -53,7 +53,7 @@ import java.io.PrintWriter;
 public class WikiServletFilter implements Filter {
 
     private static final Logger log = Logger.getLogger( WikiServletFilter.class );
-    protected Engine m_engine = null;
+    protected Engine m_engine;
 
     /**
      *  Creates a Wiki Servlet Filter.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/ModuleBean.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/ModuleBean.java
index d136bb1..21c4cde 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/ModuleBean.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/ModuleBean.java
@@ -19,7 +19,6 @@
 package org.apache.wiki.ui.admin.beans;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.wiki.WikiContext;
 import org.apache.wiki.api.Release;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java b/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
index 3afb1da..fe51041 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
@@ -57,7 +57,7 @@ public class DefaultWorkflowManager implements WorkflowManager {
     Set< Workflow > m_workflows;
     final Map< String, Principal > m_approvers;
     Queue< Workflow > m_completed;
-    private Engine m_engine = null;
+    private Engine m_engine;
     private int retainCompleted;
 
     /**
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/workflow/Step.java b/jspwiki-main/src/main/java/org/apache/wiki/workflow/Step.java
index 8f00810..82d6fe1 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/workflow/Step.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/workflow/Step.java
@@ -57,7 +57,7 @@ import java.util.Map;
 public interface Step extends Serializable {
 
     /** Time value: the start or end time has not been set. */
-    public static final Date TIME_NOT_SET = new Date( 0 );
+    Date TIME_NOT_SET = new Date( 0 );
 
     /**
      * Adds a successor Step to this one, which will be triggered by a supplied Outcome. Implementations should respect the order in which
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/workflow/Task.java b/jspwiki-main/src/main/java/org/apache/wiki/workflow/Task.java
index 501cb79..cfe3398 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/workflow/Task.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/workflow/Task.java
@@ -37,7 +37,7 @@ public abstract class Task extends AbstractStep {
 
     private static final long serialVersionUID = 4630293957752430807L;
 
-    private Step m_successor = null;
+    private Step m_successor;
 
     /**
      * Public constructor that creates a new Task with a specified message key. After construction, the protected method
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/ClassUtil.java b/jspwiki-util/src/main/java/org/apache/wiki/util/ClassUtil.java
index ab4e345..c91284a 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/ClassUtil.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/ClassUtil.java
@@ -61,8 +61,8 @@ public final class ClassUtil {
     /** Initialize the class mappings extra document. */
     private static final Map< String, String > c_classMappingsExtra = populateClassMappingsFrom( MAPPINGS_EXTRA ) ;
 
-    private static boolean classLoaderSetup = false;
-    private static ClassLoader loader = null;
+    private static boolean classLoaderSetup;
+    private static ClassLoader loader;
 
     private static Map< String, String > populateClassMappingsFrom( final String fileLoc ) {
         final Map< String, String > map = new ConcurrentHashMap<>();
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/CryptoUtil.java b/jspwiki-util/src/main/java/org/apache/wiki/util/CryptoUtil.java
index f499538..691a37b 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/CryptoUtil.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/CryptoUtil.java
@@ -172,14 +172,8 @@ public final class CryptoUtil
 
         // Create an array with the hash plus the salt
         final byte[] all = new byte[hash.length + salt.length];
-        for( int i = 0; i < hash.length; i++ )
-        {
-            all[i] = hash[i];
-        }
-        for( int i = 0; i < salt.length; i++ )
-        {
-            all[hash.length + i] = salt[i];
-        }
+        System.arraycopy(hash, 0, all, 0, hash.length);
+        System.arraycopy(salt, 0, all, hash.length + 0, salt.length);
         final byte[] base64 = Base64.getEncoder().encode( all );
         
         return SSHA + new String( base64, StandardCharsets.UTF_8 );
@@ -234,10 +228,7 @@ public final class CryptoUtil
 
         // Extract the password hash
         final byte[] hash = new byte[20];
-        for( int i = 0; i < 20; i++ )
-        {
-            hash[i] = digest[i];
-        }
+        System.arraycopy(digest, 0, hash, 0, 20);
 
         return hash;
     }
@@ -261,10 +252,7 @@ public final class CryptoUtil
 
         // Extract the salt
         final byte[] salt = new byte[digest.length - 20];
-        for( int i = 20; i < digest.length; i++ )
-        {
-            salt[i - 20] = digest[i];
-        }
+        System.arraycopy(digest, 20, salt, 0, digest.length - 20);
 
         return salt;
     }
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/MailUtil.java b/jspwiki-util/src/main/java/org/apache/wiki/util/MailUtil.java
index 8392884..146c609 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/MailUtil.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/MailUtil.java
@@ -236,7 +236,7 @@ public final class MailUtil {
 
     protected static final String PROP_MAIL_STARTTLS           = "mail.smtp.starttls.enable";
 
-    private static String c_fromAddress = null;
+    private static String c_fromAddress;
     
     /**
      *  Private constructor prevents instantiation.
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/PropertiesUtils.java b/jspwiki-util/src/main/java/org/apache/wiki/util/PropertiesUtils.java
index 0a9fe6a..920ffee 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/PropertiesUtils.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/PropertiesUtils.java
@@ -48,16 +48,16 @@ public final class PropertiesUtils {
     public static String toSortedString(final Properties properties )
     {
         @SuppressWarnings( { "unchecked", "rawtypes" } ) final TreeMap< String, String > treemap = new TreeMap( properties );
-        String string = "";
+        StringBuilder string = new StringBuilder();
         final Iterator< Map.Entry< String, String > > iterator = treemap.entrySet().iterator();
         while( iterator.hasNext() )
         {
             final Map.Entry< String, String > entry = iterator.next();
             final String key = entry.getKey();
             final String value = entry.getValue() == null ? "null" : entry.getValue();
-            string += toLine( key, value ) + '\n';
+            string.append(toLine(key, value)).append('\n');
         }
-        return string;
+        return string.toString();
     }
 
     /**
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/Serializer.java b/jspwiki-util/src/main/java/org/apache/wiki/util/Serializer.java
index 33541d5..90796b3 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/Serializer.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/Serializer.java
@@ -79,8 +79,7 @@ public final class Serializer
      */
     public static String serializeToBase64(final Map< String, Serializable > map ) throws IOException {
         // Load the Map contents into a defensive HashMap
-        final Map< String, Serializable > serialMap = new HashMap<>();
-        serialMap.putAll( map );
+        final Map<String, Serializable> serialMap = new HashMap<>(map);
         
         // Serialize the Map to an output stream
         final ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/TextUtil.java b/jspwiki-util/src/main/java/org/apache/wiki/util/TextUtil.java
index 72018de..9be8124 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/TextUtil.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/TextUtil.java
@@ -826,12 +826,12 @@ public final class TextUtil {
      * @since 2.4
      */
     public static String generateRandomPassword() {
-        String pw = "";
+        StringBuilder pw = new StringBuilder();
         for( int i = 0; i < PASSWORD_LENGTH; i++ ) {
             final int index = ( int )( RANDOM.nextDouble() * PWD_BASE.length() );
-            pw += PWD_BASE.substring( index, index + 1 );
+            pw.append(PWD_BASE.substring(index, index + 1));
         }
-        return pw;
+        return pw.toString();
     }
 
 }