You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2018/08/29 06:30:34 UTC

[4/4] mina-sshd git commit: Activated MissingCtor Checkstyle rule

Activated MissingCtor Checkstyle rule


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/7599ee1a
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/7599ee1a
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/7599ee1a

Branch: refs/heads/master
Commit: 7599ee1a45356cd9431caa6bde47cf3c982becfb
Parents: 7f74b0c
Author: Goldstein Lyor <ly...@cb4.com>
Authored: Wed Aug 29 08:51:13 2018 +0300
Committer: Goldstein Lyor <ly...@cb4.com>
Committed: Wed Aug 29 09:30:23 2018 +0300

----------------------------------------------------------------------
 sshd-checkstyle.xml                             |  9 ++--
 .../apache/sshd/cli/client/ChannelExecMain.java |  4 ++
 .../apache/sshd/agent/SshAgentConstants.java    | 14 +++---
 .../client/config/hosts/HostConfigEntry.java    |  7 ++-
 .../client/config/hosts/KnownHostEntry.java     |  7 ++-
 .../org/apache/sshd/common/SshConstants.java    | 47 +++++++++++++-------
 .../sshd/common/cipher/BuiltinCiphers.java      |  6 ++-
 .../org/apache/sshd/common/cipher/ECCurves.java |  4 ++
 .../common/compression/BuiltinCompressions.java |  6 ++-
 .../sshd/common/config/VersionProperties.java   | 10 +++--
 .../common/config/keys/BuiltinIdentities.java   |  4 ++
 .../sshd/common/config/keys/IdentityUtils.java  | 13 +++---
 .../sshd/common/config/keys/PublicKeyEntry.java |  7 ++-
 .../keys/loader/AESPrivateKeyObfuscator.java    | 11 +++--
 .../sshd/common/digest/BuiltinDigests.java      |  4 ++
 .../io/DefaultIoServiceFactoryFactory.java      |  4 ++
 .../sshd/common/kex/BuiltinDHFactories.java     |  4 ++
 .../sshd/common/kex/KexProposalOption.java      |  4 ++
 .../org/apache/sshd/common/mac/BuiltinMacs.java |  4 ++
 .../apache/sshd/common/util/GenericUtils.java   | 37 ++++++++-------
 .../sshd/common/util/logging/LoggingUtils.java  | 13 +++---
 .../keys/AuthorizedKeysAuthenticator.java       | 12 +++--
 .../java/org/apache/sshd/KeepAliveTest.java     |  8 ++++
 .../java/org/apache/sshd/client/ClientTest.java |  4 ++
 .../apache/sshd/common/channel/WindowTest.java  |  9 +++-
 .../common/util/EventListenerUtilsTest.java     |  4 ++
 .../apache/sshd/common/io/mina/MinaSupport.java |  6 ++-
 .../common/subsystem/sftp/SftpConstants.java    | 30 ++++++++-----
 .../sftp/extensions/AclSupportedParser.java     | 12 +++--
 .../sftp/extensions/Supported2Parser.java       | 20 +++++----
 .../sftp/extensions/SupportedParser.java        | 14 +++---
 .../sftp/extensions/VendorIdParser.java         |  5 ++-
 .../sshd/client/subsystem/sftp/ClientTest.java  |  4 ++
 33 files changed, 250 insertions(+), 97 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-checkstyle.xml
----------------------------------------------------------------------
diff --git a/sshd-checkstyle.xml b/sshd-checkstyle.xml
index 62e9b8d..e7c3e9c 100644
--- a/sshd-checkstyle.xml
+++ b/sshd-checkstyle.xml
@@ -7,10 +7,10 @@
     Checkstyle is very configurable. Be sure to read the documentation at
     http://checkstyle.sf.net (or in your downloaded distribution).
     To completely disable a check, just comment it out or delete it from the file.
-    
+
     Authors: Guillaume Nodet, Goldstein Lyor
  -->
- 
+
 <module name="Checker">
 	<!-- Checks whether files end with a new line.                        -->
 	<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
@@ -77,7 +77,7 @@
             <property name="ordered" value="true" />
             <property name="separated" value="true" />
         </module>
-	
+
             <!--
                 <module name="ImportControl">
                     <property name="file" value="etc/import-control.xml" />
@@ -211,7 +211,7 @@
         <!--<module name="ParameterAssignment" />-->
         <module name="ExplicitInitialization" />
         <module name="DefaultComesLast" />
-        <!--<module name="MissingCtor" />-->
+        <module name="MissingCtor" />
         <module name="FallThrough" />
         <!--<module name="MultipleStringLiterals" />-->
         <module name="VariableDeclarationUsageDistance">
@@ -314,4 +314,3 @@
 		<property name="eachLine" value="true" />
 	</module>
 </module>
-

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-cli/src/test/java/org/apache/sshd/cli/client/ChannelExecMain.java
----------------------------------------------------------------------
diff --git a/sshd-cli/src/test/java/org/apache/sshd/cli/client/ChannelExecMain.java b/sshd-cli/src/test/java/org/apache/sshd/cli/client/ChannelExecMain.java
index c0ccc32..99d0a7d 100644
--- a/sshd-cli/src/test/java/org/apache/sshd/cli/client/ChannelExecMain.java
+++ b/sshd-cli/src/test/java/org/apache/sshd/cli/client/ChannelExecMain.java
@@ -34,6 +34,10 @@ import org.apache.sshd.util.test.BaseTestSupport;
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public class ChannelExecMain extends BaseTestSupport {
+    public ChannelExecMain() {
+        super();
+    }
+
     public static void doExecuteCommands(
             BufferedReader stdin, PrintStream stdout, PrintStream stderr, ClientSession session) throws Exception {
         while (true) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
index dd6e95a..93a7883 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
@@ -83,12 +83,16 @@ public final class SshAgentConstants {
 
     private static final class LazyMessagesMapHolder {
         private static final Map<Integer, String> MESSAGES_MAP =
-                LoggingUtils.generateMnemonicMap(SshAgentConstants.class, f -> {
-                    String name = f.getName();
-                    return !name.startsWith("SSH_AGENT_CONSTRAIN")
-                            && (name.startsWith("SSH_AGENT") || name.startsWith("SSH2_AGENT"));
+            LoggingUtils.generateMnemonicMap(SshAgentConstants.class, f -> {
+                String name = f.getName();
+                return !name.startsWith("SSH_AGENT_CONSTRAIN")
+                        && (name.startsWith("SSH_AGENT") || name.startsWith("SSH2_AGENT"));
 
-                });
+            });
+
+        private LazyMessagesMapHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
index bf22b87..f401cee 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
@@ -105,7 +105,12 @@ public class HostConfigEntry extends HostPatternsHolder implements MutableUserHo
     public static final char REMOTE_PORT_MACRO = 'p';
 
     private static final class LazyDefaultConfigFileHolder {
-        private static final Path CONFIG_FILE = PublicKeyEntry.getDefaultKeysFolderPath().resolve(STD_CONFIG_FILENAME);
+        private static final Path CONFIG_FILE =
+            PublicKeyEntry.getDefaultKeysFolderPath().resolve(STD_CONFIG_FILENAME);
+
+        private LazyDefaultConfigFileHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     private String host;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/KnownHostEntry.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/KnownHostEntry.java b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/KnownHostEntry.java
index 83ce690..4d4e97a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/KnownHostEntry.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/KnownHostEntry.java
@@ -63,7 +63,12 @@ public class KnownHostEntry extends HostPatternsHolder {
     public static final String STD_HOSTS_FILENAME = "known_hosts";
 
     private static final class LazyDefaultConfigFileHolder {
-        private static final Path HOSTS_FILE = PublicKeyEntry.getDefaultKeysFolderPath().resolve(STD_HOSTS_FILENAME);
+        private static final Path HOSTS_FILE =
+            PublicKeyEntry.getDefaultKeysFolderPath().resolve(STD_HOSTS_FILENAME);
+
+        private LazyDefaultConfigFileHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     private String line;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java b/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
index d274424..01e8ae7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
@@ -18,6 +18,7 @@
  */
 package org.apache.sshd.common;
 
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Map;
@@ -32,7 +33,6 @@ import org.apache.sshd.common.util.logging.LoggingUtils;
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public final class SshConstants {
-
     //
     // SSH message identifiers
     //
@@ -129,7 +129,11 @@ public final class SshConstants {
         private static final Set<Integer> AMBIGUOUS_OPCODES =
             Collections.unmodifiableSet(
                 new HashSet<>(
-                        LoggingUtils.getAmbiguousMenmonics(SshConstants.class, "SSH_MSG_").values()));
+                    LoggingUtils.getAmbiguousMenmonics(SshConstants.class, "SSH_MSG_").values()));
+
+        private LazyAmbiguousOpcodesHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**
@@ -138,7 +142,8 @@ public final class SshConstants {
      * @see #getAmbiguousOpcodes()
      */
     public static boolean isAmbiguousOpcode(int cmd) {
-        return getAmbiguousOpcodes().contains(cmd);
+        Collection<Integer> ambiguousOpcodes = getAmbiguousOpcodes();
+        return ambiguousOpcodes.contains(cmd);
     }
 
     /**
@@ -151,18 +156,22 @@ public final class SshConstants {
 
     private static final class LazyMessagesMapHolder {
         private static final Map<Integer, String> MESSAGES_MAP =
-                LoggingUtils.generateMnemonicMap(SshConstants.class, f -> {
-                    String name = f.getName();
-                    if (!name.startsWith("SSH_MSG_")) {
-                        return false;
-                    }
-
-                    try {
-                        return !isAmbiguousOpcode(f.getByte(null));
-                    } catch (Exception e) {
-                        return false;
-                    }
-                });
+            LoggingUtils.generateMnemonicMap(SshConstants.class, f -> {
+                String name = f.getName();
+                if (!name.startsWith("SSH_MSG_")) {
+                    return false;
+                }
+
+                try {
+                    return !isAmbiguousOpcode(f.getByte(null));
+                } catch (Exception e) {
+                    return false;
+                }
+            });
+
+        private LazyMessagesMapHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**
@@ -185,6 +194,10 @@ public final class SshConstants {
     private static final class LazyReasonsMapHolder {
         private static final Map<Integer, String> REASONS_MAP =
             LoggingUtils.generateMnemonicMap(SshConstants.class, "SSH2_DISCONNECT_");
+
+        private LazyReasonsMapHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**
@@ -207,6 +220,10 @@ public final class SshConstants {
     private static final class LazyOpenCodesMapHolder {
         private static final Map<Integer, String> OPEN_CODES_MAP =
             LoggingUtils.generateMnemonicMap(SshConstants.class, "SSH_OPEN_");
+
+        private LazyOpenCodesMapHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
index 9bdc134..8609d50 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
@@ -312,7 +312,7 @@ public enum BuiltinCiphers implements CipherFactory {
         }
     }
 
-    public static class Constants {
+    public static final class Constants {
         public static final String NONE = "none";
         public static final Pattern NONE_CIPHER_PATTERN =
                 Pattern.compile("(^|.*,)" + NONE + "($|,.*)");
@@ -328,6 +328,10 @@ public enum BuiltinCiphers implements CipherFactory {
         public static final String BLOWFISH_CBC = "blowfish-cbc";
         public static final String TRIPLE_DES_CBC = "3des-cbc";
 
+        private Constants() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
+
         /**
          * @param s A comma-separated list of ciphers - ignored if {@code null}/empty
          * @return {@code true} if the {@link #NONE} cipher name appears in it

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/cipher/ECCurves.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/ECCurves.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/ECCurves.java
index 93e420c..ae39dd3 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/cipher/ECCurves.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/ECCurves.java
@@ -430,6 +430,10 @@ public enum ECCurves implements NamedResource, OptionalFeature {
         public static final String NISTP256 = "nistp256";
         public static final String NISTP384 = "nistp384";
         public static final String NISTP521 = "nistp521";
+
+        private Constants() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java b/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java
index f0eac3e..49ad0ab 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java
@@ -227,9 +227,13 @@ public enum BuiltinCompressions implements CompressionFactory {
         }
     }
 
-    public static class Constants {
+    public static final class Constants {
         public static final String NONE = "none";
         public static final String ZLIB = "zlib";
         public static final String DELAYED_ZLIB = "zlib@openssh.com";
+
+        private Constants() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/config/VersionProperties.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/VersionProperties.java b/sshd-core/src/main/java/org/apache/sshd/common/config/VersionProperties.java
index 7817c8f..0e351a8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/VersionProperties.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/VersionProperties.java
@@ -35,9 +35,13 @@ import org.slf4j.LoggerFactory;
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public final class VersionProperties {
-    private static final class LazyHolder {
+    private static final class LazyVersionPropertiesHolder {
         private static final NavigableMap<String, String> PROPERTIES =
-                Collections.unmodifiableNavigableMap(loadVersionProperties(LazyHolder.class));
+            Collections.unmodifiableNavigableMap(loadVersionProperties(LazyVersionPropertiesHolder.class));
+
+        private LazyVersionPropertiesHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
 
         private static NavigableMap<String, String> loadVersionProperties(Class<?> anchor) {
             return loadVersionProperties(anchor, ThreadUtils.resolveDefaultClassLoader(anchor));
@@ -89,6 +93,6 @@ public final class VersionProperties {
      */
     @SuppressWarnings("synthetic-access")
     public static NavigableMap<String, String> getVersionProperties() {
-        return LazyHolder.PROPERTIES;
+        return LazyVersionPropertiesHolder.PROPERTIES;
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/BuiltinIdentities.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/BuiltinIdentities.java b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/BuiltinIdentities.java
index ed178e6..53b6b44 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/BuiltinIdentities.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/BuiltinIdentities.java
@@ -204,5 +204,9 @@ public enum BuiltinIdentities implements Identity {
         public static final String DSA = KeyUtils.DSS_ALGORITHM;
         public static final String ECDSA = "ECDSA";
         public static final String ED25519 = "ED25519";
+
+        private Constants() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/IdentityUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/IdentityUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/IdentityUtils.java
index 1bd1cc7..fbc3ce7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/IdentityUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/IdentityUtils.java
@@ -19,12 +19,12 @@
 
 package org.apache.sshd.common.config.keys;
 
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.file.Files;
 import java.nio.file.OpenOption;
 import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.security.GeneralSecurityException;
 import java.security.KeyPair;
 import java.util.Collections;
@@ -47,10 +47,13 @@ public final class IdentityUtils {
 
     private static final class LazyDefaultUserHomeFolderHolder {
         private static final Path PATH =
-                new File(ValidateUtils.checkNotNullAndNotEmpty(System.getProperty("user.home"), "No user home"))
-                        .toPath()
-                        .toAbsolutePath()
-                        .normalize();
+            Paths.get(ValidateUtils.checkNotNullAndNotEmpty(System.getProperty("user.home"), "No user home"))
+                .toAbsolutePath()
+                .normalize();
+
+        private LazyDefaultUserHomeFolderHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntry.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntry.java b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntry.java
index acbd71a..1db3d2b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntry.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntry.java
@@ -267,7 +267,12 @@ public class PublicKeyEntry implements Serializable {
     }
 
     private static final class LazyDefaultKeysFolderHolder {
-        private static final Path PATH = IdentityUtils.getUserHomeFolder().resolve(STD_KEYFILE_FOLDER_NAME);
+        private static final Path PATH =
+            IdentityUtils.getUserHomeFolder().resolve(STD_KEYFILE_FOLDER_NAME);
+
+        private LazyDefaultKeysFolderHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/loader/AESPrivateKeyObfuscator.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/loader/AESPrivateKeyObfuscator.java b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/loader/AESPrivateKeyObfuscator.java
index 20e51e6..4437945 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/loader/AESPrivateKeyObfuscator.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/loader/AESPrivateKeyObfuscator.java
@@ -79,12 +79,15 @@ public class AESPrivateKeyObfuscator extends AbstractPrivateKeyObfuscator {
      */
     @SuppressWarnings("synthetic-access")
     public static List<Integer> getAvailableKeyLengths() {
-        return LazyValuesHolder.KEY_LENGTHS;
+        return LazyKeyLengthsHolder.KEY_LENGTHS;
     }
 
-    private static final class LazyValuesHolder {
-        private static final List<Integer> KEY_LENGTHS =
-                Collections.unmodifiableList(detectSupportedKeySizes());
+    private static final class LazyKeyLengthsHolder {
+        private static final List<Integer> KEY_LENGTHS = Collections.unmodifiableList(detectSupportedKeySizes());
+
+        private LazyKeyLengthsHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
 
         // AES 256 requires special JCE policy extension installation
         private static List<Integer> detectSupportedKeySizes() {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java b/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java
index a600419..f469583 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java
@@ -158,5 +158,9 @@ public enum BuiltinDigests implements DigestFactory {
         public static final String SHA256 = "sha256";
         public static final String SHA384 = "sha384";
         public static final String SHA512 = "sha512";
+
+        private Constants() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/io/DefaultIoServiceFactoryFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/DefaultIoServiceFactoryFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/io/DefaultIoServiceFactoryFactory.java
index 7feecc1..cdf1c35 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/DefaultIoServiceFactoryFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/DefaultIoServiceFactoryFactory.java
@@ -175,6 +175,10 @@ public class DefaultIoServiceFactoryFactory extends AbstractIoServiceFactoryFact
 
     private static final class LazyDefaultIoServiceFactoryFactoryHolder {
         private static final DefaultIoServiceFactoryFactory INSTANCE = new DefaultIoServiceFactoryFactory();
+
+        private LazyDefaultIoServiceFactoryFactoryHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     @SuppressWarnings("synthetic-access")

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java
index 89c5a1b..aea3d19 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java
@@ -408,5 +408,9 @@ public enum BuiltinDHFactories implements DHFactory {
         public static final String ECDH_SHA2_NISTP256 = "ecdh-sha2-nistp256";
         public static final String ECDH_SHA2_NISTP384 = "ecdh-sha2-nistp384";
         public static final String ECDH_SHA2_NISTP521 = "ecdh-sha2-nistp521";
+
+        private Constants() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java
index da6278a..f18ed95 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java
@@ -123,5 +123,9 @@ public enum KexProposalOption {
         public static final int PROPOSAL_COMP_ALGS_STOC = 7;
         public static final int PROPOSAL_LANG_CTOS = 8;
         public static final int PROPOSAL_LANG_STOC = 9;
+
+        private Constants() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java b/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java
index 80350b7..5a4528d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java
@@ -265,5 +265,9 @@ public enum BuiltinMacs implements MacFactory {
         public static final String HMAC_SHA1_96 = "hmac-sha1-96";
         public static final String HMAC_SHA2_256 = "hmac-sha2-256";
         public static final String HMAC_SHA2_512 = "hmac-sha2-512";
+
+        private Constants() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/util/GenericUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/GenericUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/util/GenericUtils.java
index 185d26b..c924d1e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/GenericUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/GenericUtils.java
@@ -534,12 +534,22 @@ public final class GenericUtils {
         return CASE_INSENSITIVE_MAP_FACTORY;
     }
 
-    public static <K, V> Map<V, K> flipMap(Map<? extends K, ? extends V> map, Supplier<? extends Map<V, K>> mapCreator, boolean allowDuplicates) {
-        if (isEmpty(map)) {
-            return Collections.emptyMap();
-        }
-
-        Map<V, K> result = Objects.requireNonNull(mapCreator.get(), "No map created");
+    /**
+     * Flips between keys and values of an input map
+     *
+     * @param <K> Original map key type
+     * @param <V> Original map value type
+     * @param <M> Flipped map type
+     * @param map The original map to flip
+     * @param mapCreator The creator of the target map
+     * @param allowDuplicates Whether to ignore duplicates on flip
+     * @return The flipped map result
+     * @throws IllegalArgumentException if <tt>allowDuplicates</tt> is {@code false}
+     * and a duplicate value found in the original map.
+     */
+    public static <K, V, M extends Map<V, K>> M flipMap(
+            Map<? extends K, ? extends V> map, Supplier<? extends M> mapCreator, boolean allowDuplicates) {
+        M result = Objects.requireNonNull(mapCreator.get(), "No map created");
         map.forEach((key, value) -> {
             K prev = result.put(value, key);
             if ((prev != null) && (!allowDuplicates)) {
@@ -551,8 +561,8 @@ public final class GenericUtils {
     }
 
     @SafeVarargs
-    public static <K, V> Map<K, V> mapValues(
-            Function<? super V, ? extends K> keyMapper, Supplier<? extends Map<K, V>> mapCreator, V... values) {
+    public static <K, V, M extends Map<K, V>> M mapValues(
+            Function<? super V, ? extends K> keyMapper, Supplier<? extends M> mapCreator, V... values) {
         return mapValues(keyMapper, mapCreator, isEmpty(values) ? Collections.emptyList() : Arrays.asList(values));
     }
 
@@ -561,6 +571,7 @@ public final class GenericUtils {
      *
      * @param <K> The key type
      * @param <V> The value type
+     * @param <M> The result {@link Map} type
      * @param keyMapper The {@link Function} that generates a key for a given value.
      * If the returned key is {@code null} then the value is not mapped
      * @param mapCreator The {@link Supplier} used to create/retrieve the result map - provided
@@ -569,13 +580,9 @@ public final class GenericUtils {
      * @return The resulting {@link Map} - <B>Note:</B> no validation is made to ensure
      * that 2 (or more) values are not mapped to the same key
      */
-    public static <K, V> Map<K, V> mapValues(
-            Function<? super V, ? extends K> keyMapper, Supplier<? extends Map<K, V>> mapCreator, Collection<V> values) {
-        if (isEmpty(values)) {
-            return Collections.emptyMap();
-        }
-
-        Map<K, V> map = mapCreator.get();
+    public static <K, V, M extends Map<K, V>> M mapValues(
+            Function<? super V, ? extends K> keyMapper, Supplier<? extends M> mapCreator, Collection<? extends V> values) {
+        M map = mapCreator.get();
         for (V v : values) {
             K k = keyMapper.apply(v);
             if (k == null) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java
index 8b3154a..674ed1a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java
@@ -27,6 +27,7 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.NavigableMap;
 import java.util.Objects;
 import java.util.TreeMap;
 import java.util.function.Consumer;
@@ -54,11 +55,11 @@ public final class LoggingUtils {
      *
      * @param clazz The {@link Class} to query
      * @param commonPrefix The expected common prefix
-     * @return A {@link Map} of all the matching fields, where key=the field's {@link Integer}
+     * @return A {@link NavigableMap} of all the matching fields, where key=the field's {@link Integer}
      * value and mapping=the field's name
      * @see #generateMnemonicMap(Class, Predicate)
      */
-    public static Map<Integer, String> generateMnemonicMap(Class<?> clazz, final String commonPrefix) {
+    public static NavigableMap<Integer, String> generateMnemonicMap(Class<?> clazz, final String commonPrefix) {
         return generateMnemonicMap(clazz, f -> {
             String name = f.getName();
             return name.startsWith(commonPrefix);
@@ -73,17 +74,17 @@ public final class LoggingUtils {
      * @param clazz The {@link Class} to query
      * @param acceptor The {@link Predicate} used to decide whether to process the {@link Field}
      * (besides being a {@link Number} and {@code public static final}).
-     * @return A {@link Map} of all the matching fields, where key=the field's {@link Integer}
+     * @return A {@link NavigableMap} of all the matching fields, where key=the field's {@link Integer}
      * value and mapping=the field's name
      * @see #getMnemonicFields(Class, Predicate)
      */
-    public static Map<Integer, String> generateMnemonicMap(Class<?> clazz, Predicate<? super Field> acceptor) {
+    public static NavigableMap<Integer, String> generateMnemonicMap(Class<?> clazz, Predicate<? super Field> acceptor) {
         Collection<Field> fields = getMnemonicFields(clazz, acceptor);
         if (GenericUtils.isEmpty(fields)) {
-            return Collections.emptyMap();
+            return Collections.emptyNavigableMap();
         }
 
-        Map<Integer, String> result = new TreeMap<>(Comparator.naturalOrder());
+        NavigableMap<Integer, String> result = new TreeMap<>(Comparator.naturalOrder());
         for (Field f : fields) {
             String name = f.getName();
             try {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/main/java/org/apache/sshd/server/config/keys/AuthorizedKeysAuthenticator.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/config/keys/AuthorizedKeysAuthenticator.java b/sshd-core/src/main/java/org/apache/sshd/server/config/keys/AuthorizedKeysAuthenticator.java
index 6748f5b..cfc7ba1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/config/keys/AuthorizedKeysAuthenticator.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/config/keys/AuthorizedKeysAuthenticator.java
@@ -53,18 +53,22 @@ import org.apache.sshd.server.session.ServerSession;
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public class AuthorizedKeysAuthenticator extends ModifiableFileWatcher implements PublickeyAuthenticator {
-
     /**
      * Standard OpenSSH authorized keys file name
      */
     public static final String STD_AUTHORIZED_KEYS_FILENAME = "authorized_keys";
 
     private static final class LazyDefaultAuthorizedKeysFileHolder {
-        private static final Path KEYS_FILE = PublicKeyEntry.getDefaultKeysFolderPath().resolve(STD_AUTHORIZED_KEYS_FILENAME);
+        private static final Path KEYS_FILE =
+            PublicKeyEntry.getDefaultKeysFolderPath().resolve(STD_AUTHORIZED_KEYS_FILENAME);
+
+        private LazyDefaultAuthorizedKeysFileHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     private final AtomicReference<PublickeyAuthenticator> delegateHolder =  // assumes initially reject-all
-            new AtomicReference<>(RejectAllPublickeyAuthenticator.INSTANCE);
+        new AtomicReference<>(RejectAllPublickeyAuthenticator.INSTANCE);
 
     public AuthorizedKeysAuthenticator(File file) {
         this(Objects.requireNonNull(file, "No file to watch").toPath());
@@ -90,7 +94,7 @@ public class AuthorizedKeysAuthenticator extends ModifiableFileWatcher implement
 
         try {
             PublickeyAuthenticator delegate =
-                    Objects.requireNonNull(resolvePublickeyAuthenticator(username, session), "No delegate");
+                Objects.requireNonNull(resolvePublickeyAuthenticator(username, session), "No delegate");
             boolean accepted = delegate.authenticate(username, key, session);
             if (debugEnabled) {
                 log.debug("authenticate(" + username + ")[" + session + "][" + key.getAlgorithm() + "] accepted " + accepted + " from " + getPath());

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/test/java/org/apache/sshd/KeepAliveTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/KeepAliveTest.java b/sshd-core/src/test/java/org/apache/sshd/KeepAliveTest.java
index 4e09447..774620b 100644
--- a/sshd-core/src/test/java/org/apache/sshd/KeepAliveTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/KeepAliveTest.java
@@ -162,6 +162,10 @@ public class KeepAliveTest extends BaseTestSupport {
     }
 
     public static class TestEchoShellFactory extends EchoShellFactory {
+        public TestEchoShellFactory() {
+            super();
+        }
+
         @Override
         public Command create() {
             return new TestEchoShell();
@@ -173,6 +177,10 @@ public class KeepAliveTest extends BaseTestSupport {
         public static CountDownLatch latch;
         // CHECKSTYLE:ON
 
+        public TestEchoShell() {
+            super();
+        }
+
         @Override
         public void destroy() {
             if (latch != null) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java b/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java
index 43d6d33..59c69e3 100644
--- a/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java
@@ -1527,6 +1527,10 @@ public class ClientTest extends BaseTestSupport {
     }
 
     public static class TestEchoShellFactory extends EchoShellFactory {
+        public TestEchoShellFactory() {
+            super();
+        }
+
         @Override
         public Command create() {
             return new TestEchoShell();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/test/java/org/apache/sshd/common/channel/WindowTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/common/channel/WindowTest.java b/sshd-core/src/test/java/org/apache/sshd/common/channel/WindowTest.java
index 864fc23..b543328 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/channel/WindowTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/channel/WindowTest.java
@@ -331,6 +331,10 @@ public class WindowTest extends BaseTestSupport {
     }
 
     public static class TestEchoShellFactory extends EchoShellFactory {
+        public TestEchoShellFactory() {
+            super();
+        }
+
         @Override
         public Command create() {
             return new TestEchoShell();
@@ -338,9 +342,12 @@ public class WindowTest extends BaseTestSupport {
     }
 
     public static class TestEchoShell extends EchoShell {
-
         public static final CountDownLatch LATCH = new CountDownLatch(1);
 
+        public TestEchoShell() {
+            super();
+        }
+
         @Override
         public void destroy() {
             LATCH.countDown();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-core/src/test/java/org/apache/sshd/common/util/EventListenerUtilsTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/common/util/EventListenerUtilsTest.java b/sshd-core/src/test/java/org/apache/sshd/common/util/EventListenerUtilsTest.java
index d2e4416..3732f8a 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/util/EventListenerUtilsTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/util/EventListenerUtilsTest.java
@@ -124,6 +124,10 @@ public class EventListenerUtilsTest extends BaseTestSupport {
         private String strValue;
         private Number numValue;
 
+        ProxyListenerImpl() {
+            super();
+        }
+
         public String getStringValue() {
             return strValue;
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java
----------------------------------------------------------------------
diff --git a/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java b/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java
index cb943ba..3cdc8e9 100644
--- a/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java
+++ b/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java
@@ -22,8 +22,12 @@ import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.sshd.common.util.Readable;
 import org.apache.sshd.common.util.buffer.Buffer;
 
+/**
+ * TODO Add javadoc
+ *
+ * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
+ */
 public final class MinaSupport {
-
     private MinaSupport() {
         throw new UnsupportedOperationException("No instance allowed");
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java
----------------------------------------------------------------------
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java
index b185941..02adb12 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java
@@ -278,15 +278,19 @@ public final class SftpConstants {
 
     private static final class LazyCommandNameHolder {
         private static final Map<Integer, String> NAMES_MAP =
-                Collections.unmodifiableMap(
-                    LoggingUtils.generateMnemonicMap(SftpConstants.class, f -> {
-                        String name = f.getName();
-                        return name.startsWith("SSH_FXP_")
-                            // exclude the rename modes which are not opcodes
-                            && (!name.startsWith("SSH_FXP_RENAME_"))
-                            // exclude the realpath modes wich are not opcodes
-                            && (!name.startsWith("SSH_FXP_REALPATH_"));
-                    }));
+            Collections.unmodifiableMap(
+                LoggingUtils.generateMnemonicMap(SftpConstants.class, f -> {
+                    String name = f.getName();
+                    return name.startsWith("SSH_FXP_")
+                        // exclude the rename modes which are not opcodes
+                        && (!name.startsWith("SSH_FXP_RENAME_"))
+                        // exclude the realpath modes wich are not opcodes
+                        && (!name.startsWith("SSH_FXP_REALPATH_"));
+                }));
+
+        private LazyCommandNameHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**
@@ -306,9 +310,13 @@ public final class SftpConstants {
         }
     }
 
-    private static class LazyStatusNameHolder {
+    private static final class LazyStatusNameHolder {
         private static final Map<Integer, String> STATUS_MAP =
-                Collections.unmodifiableMap(LoggingUtils.generateMnemonicMap(SftpConstants.class, "SSH_FX_"));
+            Collections.unmodifiableMap(LoggingUtils.generateMnemonicMap(SftpConstants.class, "SSH_FX_"));
+
+        private LazyStatusNameHolder() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java
----------------------------------------------------------------------
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java
index 13ece01..2e57fff 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Map;
+import java.util.NavigableMap;
 import java.util.Objects;
 import java.util.Set;
 import java.util.TreeSet;
@@ -101,9 +102,14 @@ public class AclSupportedParser extends AbstractParser<AclCapabilities> {
 
         private static final class LazyAclCapabilityNameHolder {
             private static final String ACL_CAP_NAME_PREFIX = "SSH_ACL_CAP_";
-            private static final Map<Integer, String> ACL_VALUES_MAP = LoggingUtils.generateMnemonicMap(SftpConstants.class, ACL_CAP_NAME_PREFIX);
-            private static final Map<String, Integer> ACL_NAMES_MAP =
-                    Collections.unmodifiableMap(GenericUtils.flipMap(ACL_VALUES_MAP, GenericUtils.caseInsensitiveMap(), false));
+            private static final Map<Integer, String> ACL_VALUES_MAP =
+                LoggingUtils.generateMnemonicMap(SftpConstants.class, ACL_CAP_NAME_PREFIX);
+            private static final NavigableMap<String, Integer> ACL_NAMES_MAP =
+                Collections.unmodifiableNavigableMap(GenericUtils.flipMap(ACL_VALUES_MAP, GenericUtils.caseInsensitiveMap(), false));
+
+            private LazyAclCapabilityNameHolder() {
+                throw new UnsupportedOperationException("No instance allowed");
+            }
         }
 
         @SuppressWarnings("synthetic-access")

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/Supported2Parser.java
----------------------------------------------------------------------
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/Supported2Parser.java b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/Supported2Parser.java
index 6259a7c..22e56cf 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/Supported2Parser.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/Supported2Parser.java
@@ -52,17 +52,21 @@ public class Supported2Parser extends AbstractParser<Supported2> {
         public Collection<String> extensionNames;
         // CHECKSTYLE:ON
 
+        public Supported2() {
+            super();
+        }
+
         @Override
         public String toString() {
             return "attrsMask=0x" + Integer.toHexString(supportedAttributeMask)
-                    + ",attrsBits=0x" + Integer.toHexString(supportedAttributeBits)
-                    + ",openFlags=0x" + Integer.toHexString(supportedOpenFlags)
-                    + ",accessMask=0x" + Integer.toHexString(supportedAccessMask)
-                    + ",maxRead=" + maxReadSize
-                    + ",openBlock=0x" + Integer.toHexString(supportedOpenBlockVector & 0xFFFF)
-                    + ",block=" + Integer.toHexString(supportedBlock & 0xFFFF)
-                    + ",attribs=" + attribExtensionNames
-                    + ",exts=" + extensionNames;
+                + ",attrsBits=0x" + Integer.toHexString(supportedAttributeBits)
+                + ",openFlags=0x" + Integer.toHexString(supportedOpenFlags)
+                + ",accessMask=0x" + Integer.toHexString(supportedAccessMask)
+                + ",maxRead=" + maxReadSize
+                + ",openBlock=0x" + Integer.toHexString(supportedOpenBlockVector & 0xFFFF)
+                + ",block=" + Integer.toHexString(supportedBlock & 0xFFFF)
+                + ",attribs=" + attribExtensionNames
+                + ",exts=" + extensionNames;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/SupportedParser.java
----------------------------------------------------------------------
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/SupportedParser.java b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/SupportedParser.java
index 4c80463..edacf22 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/SupportedParser.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/SupportedParser.java
@@ -47,14 +47,18 @@ public class SupportedParser extends AbstractParser<Supported> {
         public Collection<String> extensionNames;
         // CHECKSTYLE:ON
 
+        public Supported() {
+            super();
+        }
+
         @Override
         public String toString() {
             return "attrsMask=0x" + Integer.toHexString(supportedAttributeMask)
-                    + ",attrsBits=0x" + Integer.toHexString(supportedAttributeBits)
-                    + ",openFlags=0x" + Integer.toHexString(supportedOpenFlags)
-                    + ",accessMask=0x" + Integer.toHexString(supportedAccessMask)
-                    + ",maxReadSize=" + maxReadSize
-                    + ",extensions=" + extensionNames;
+                + ",attrsBits=0x" + Integer.toHexString(supportedAttributeBits)
+                + ",openFlags=0x" + Integer.toHexString(supportedOpenFlags)
+                + ",accessMask=0x" + Integer.toHexString(supportedAccessMask)
+                + ",maxReadSize=" + maxReadSize
+                + ",extensions=" + extensionNames;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/VendorIdParser.java
----------------------------------------------------------------------
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/VendorIdParser.java b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/VendorIdParser.java
index 1917d7d..5ecc723 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/VendorIdParser.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/VendorIdParser.java
@@ -42,6 +42,10 @@ public class VendorIdParser extends AbstractParser<VendorId> {
         public long productBuildNumber;
         // CHECKSTYLE:ON
 
+        public VendorId() {
+            super();
+        }
+
         @Override
         public String toString() {
             return vendorName + "-" + productName + "-" + productVersion + "-" + productBuildNumber;
@@ -67,5 +71,4 @@ public class VendorIdParser extends AbstractParser<VendorId> {
         id.productBuildNumber = buffer.getLong();
         return id;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/7599ee1a/sshd-sftp/src/test/java/org/apache/sshd/client/subsystem/sftp/ClientTest.java
----------------------------------------------------------------------
diff --git a/sshd-sftp/src/test/java/org/apache/sshd/client/subsystem/sftp/ClientTest.java b/sshd-sftp/src/test/java/org/apache/sshd/client/subsystem/sftp/ClientTest.java
index ba72d73..94c492f 100644
--- a/sshd-sftp/src/test/java/org/apache/sshd/client/subsystem/sftp/ClientTest.java
+++ b/sshd-sftp/src/test/java/org/apache/sshd/client/subsystem/sftp/ClientTest.java
@@ -399,6 +399,10 @@ public class ClientTest extends BaseTestSupport {
     }
 
     public static class TestEchoShellFactory extends EchoShellFactory {
+        public TestEchoShellFactory() {
+            super();
+        }
+
         @Override
         public Command create() {
             return new TestEchoShell();