http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/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 a7c07de..60c91c6 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
@@ -39,21 +39,34 @@ import org.apache.sshd.common.util.buffer.BufferUtils;
  * <P>Represents a {@link PublicKey} whose data is formatted according to
  * the <A HREF="http://en.wikibooks.org/wiki/OpenSSH";>OpenSSH</A> 
format:</P></BR>
  * <CODE><PRE>
- *      <key-type> <base64-encoded-public-key-data>
+ * <key-type> <base64-encoded-public-key-data>
  * </CODE></PRE>
+ *
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
  */
 public class PublicKeyEntry implements Serializable {
+
+    /**
+     * Character used to denote a comment line in the keys file
+     */
+    public static final char COMMENT_CHAR = '#';
+
+
+    /**
+     * Standard folder name used by OpenSSH to hold key files
+     */
+    public static final String STD_KEYFILE_FOLDER_NAME = ".ssh";
+
     private static final long serialVersionUID = -585506072687602760L;
 
-    private String  keyType;
-    private byte[]  keyData;
+    private String keyType;
+    private byte[] keyData;
 
     public PublicKeyEntry() {
         super();
     }
 
-    public PublicKeyEntry(String keyType, byte ... keyData) {
+    public PublicKeyEntry(String keyType, byte... keyData) {
         this.keyType = keyType;
         this.keyData = keyData;
     }
@@ -78,29 +91,29 @@ public class PublicKeyEntry implements Serializable {
      * @return The resolved {@link PublicKey} - never {@code null}.
      * <B>Note:</B> may be called only after key type and data bytes have
      * been set or exception(s) may be thrown
-     * @throws IOException If failed to decode the key
+     * @throws IOException              If failed to decode the key
      * @throws GeneralSecurityException If failed to generate the key
      */
     public PublicKey resolvePublicKey() throws IOException, 
GeneralSecurityException {
         String kt = getKeyType();
-        PublicKeyEntryDecoder<?,?> decoder = 
KeyUtils.getPublicKeyEntryDecoder(kt);
+        PublicKeyEntryDecoder<?, ?> decoder = 
KeyUtils.getPublicKeyEntryDecoder(kt);
         if (decoder == null) {
             throw new InvalidKeySpecException("No decoder registered for key 
type=" + kt);
         }
-        
+
         byte[] data = getKeyData();
         PublicKey key = decoder.decodePublicKey(data);
         if (key == null) {
             throw new InvalidKeyException("No key of type=" + kt + " decoded 
for data=" + BufferUtils.printHex(':', data));
         }
-        
+
         return key;
     }
 
     /**
      * @param sb The {@link Appendable} instance to encode the data into
      * @return The {@link PublicKey}
-     * @throws IOException If failed to decode/encode the key
+     * @throws IOException              If failed to decode/encode the key
      * @throws GeneralSecurityException If failed to generate the key
      * @see #resolvePublicKey()
      */
@@ -113,8 +126,7 @@ public class PublicKeyEntry implements Serializable {
     @Override
     public int hashCode() {
         return Objects.hashCode(getKeyType())
-             + Arrays.hashCode(getKeyData())
-             ;
+                + Arrays.hashCode(getKeyData());
     }
 
     /*
@@ -125,40 +137,33 @@ public class PublicKeyEntry implements Serializable {
         if (this == e) {
             return true;
         }
-        
-        if (Objects.equals(getKeyType(), e.getKeyType())
-         && Arrays.equals(getKeyData(), e.getKeyData())) {
-            return true;
-        } else {
-            return false;
-        }
+        return Objects.equals(getKeyType(), e.getKeyType())
+                && Arrays.equals(getKeyData(), e.getKeyData());
     }
 
     @Override
     public boolean equals(Object obj) {
-        if (obj == null)
+        if (obj == null) {
             return false;
-        if (this == obj)
-            return true;
-        if (getClass() != obj.getClass())
-            return false;
-
-        if (isEquivalent((PublicKeyEntry) obj)) {
+        }
+        if (this == obj) {
             return true;
-        } else {
+        }
+        if (getClass() != obj.getClass()) {
             return false;
         }
+        return isEquivalent((PublicKeyEntry) obj);
     }
-    
+
     @Override
     public String toString() {
         byte[] data = getKeyData();
         return getKeyType() + " " + (GenericUtils.isEmpty(data) ? "<no-key>" : 
Base64.encodeToString(data));
     }
-    
+
     /**
      * @param data Assumed to contain at least {@code key-type base64-data} 
(anything
-     * beyond the BASE64 data is ignored) - ignored if {@code null}/empty
+     *             beyond the BASE64 data is ignored) - ignored if {@code 
null}/empty
      * @return A {@link PublicKeyEntry} or {@code null} if no data
      * @throws IllegalArgumentException if bad format found
      * @see #parsePublicKeyEntry(PublicKeyEntry, String)
@@ -173,9 +178,9 @@ public class PublicKeyEntry implements Serializable {
 
     /**
      * @param entry The {@link PublicKeyEntry} whose contents are to be
-     * updated - ignored if {@code null}
-     * @param data Assumed to contain at least {@code key-type base64-data} 
(anything
-     * beyond the BASE64 data is ignored) - ignored if {@code null}/empty
+     *              updated - ignored if {@code null}
+     * @param data  Assumed to contain at least {@code key-type base64-data} 
(anything
+     *              beyond the BASE64 data is ignored) - ignored if {@code 
null}/empty
      * @return The updated entry instance
      * @throws IllegalArgumentException if bad format found
      */
@@ -183,7 +188,7 @@ public class PublicKeyEntry implements Serializable {
         if (GenericUtils.isEmpty(data) || (entry == null)) {
             return entry;
         }
-        
+
         int startPos = data.indexOf(' ');
         if (startPos <= 0) {
             throw new IllegalArgumentException("Bad format (no key data 
delimiter): " + data);
@@ -194,13 +199,13 @@ public class PublicKeyEntry implements Serializable {
             endPos = data.length();
         }
 
-        String  keyType = data.substring(0, startPos);
-        String  b64Data = data.substring(startPos + 1, endPos).trim();
-        byte[]  keyData = Base64.decodeString(b64Data);
+        String keyType = data.substring(0, startPos);
+        String b64Data = data.substring(startPos + 1, endPos).trim();
+        byte[] keyData = Base64.decodeString(b64Data);
         if (GenericUtils.isEmpty(keyData)) {
             throw new IllegalArgumentException("Bad format (no BASE64 key 
data): " + data);
         }
-        
+
         entry.setKeyType(keyType);
         entry.setKeyData(keyData);
         return entry;
@@ -214,47 +219,38 @@ public class PublicKeyEntry implements Serializable {
     public static String toString(PublicKey key) throws 
IllegalArgumentException {
         try {
             return appendPublicKeyEntry(new StringBuilder(Byte.MAX_VALUE), 
key).toString();
-        } catch(IOException e) {
+        } catch (IOException e) {
             throw new IllegalArgumentException("Failed (" + 
e.getClass().getSimpleName() + ") to encode: " + e.getMessage(), e);
         }
     }
 
     /**
      * Encodes a public key data the same way as the {@link 
#parsePublicKeyEntry(String)} expects it
-     * @param sb The {@link Appendable} instance to encode the data into
+     *
+     * @param sb  The {@link Appendable} instance to encode the data into
      * @param key The {@link PublicKey}
      * @return The updated appendable instance
      * @throws IOException If failed to append the data
      */
     public static <A extends Appendable> A appendPublicKeyEntry(A sb, 
PublicKey key) throws IOException {
         @SuppressWarnings("unchecked")
-        PublicKeyEntryDecoder<PublicKey,?> decoder = 
(PublicKeyEntryDecoder<PublicKey,?>) KeyUtils.getPublicKeyEntryDecoder(key);
+        PublicKeyEntryDecoder<PublicKey, ?> decoder = 
(PublicKeyEntryDecoder<PublicKey, ?>) KeyUtils.getPublicKeyEntryDecoder(key);
         if (decoder == null) {
             throw new StreamCorruptedException("Cannot retrived decoder for 
key=" + key.getAlgorithm());
         }
-        
-        try(ByteArrayOutputStream s=new ByteArrayOutputStream(Byte.MAX_VALUE)) 
{
+
+        try (ByteArrayOutputStream s = new 
ByteArrayOutputStream(Byte.MAX_VALUE)) {
             String keyType = decoder.encodePublicKey(s, key);
             byte[] bytes = s.toByteArray();
             String b64Data = Base64.encodeToString(bytes);
             sb.append(keyType).append(' ').append(b64Data);
         }
-        
+
         return sb;
     }
-    /**
-     * Character used to denote a comment line in the keys file
-     */
-    public static final char COMMENT_CHAR='#';
-
-
-    /**
-     * Standard folder name used by OpenSSH to hold key files
-     */
-    public static final String STD_KEYFILE_FOLDER_NAME=".ssh";
 
     private static final class LazyDefaultKeysFolderHolder {
-        private static final File   folder=
+        private static final File FOLDER =
                 new File(System.getProperty("user.home") + File.separator + 
STD_KEYFILE_FOLDER_NAME);
     }
 
@@ -264,6 +260,6 @@ public class PublicKeyEntry implements Serializable {
      */
     @SuppressWarnings("synthetic-access")
     public static File getDefaultKeysFolder() {
-        return LazyDefaultKeysFolderHolder.folder;
+        return LazyDefaultKeysFolderHolder.FOLDER;
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntryDecoder.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntryDecoder.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntryDecoder.java
index dbff853..97bb62f 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntryDecoder.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/PublicKeyEntryDecoder.java
@@ -32,15 +32,16 @@ import java.util.Collection;
 
 /**
  * Represents a decoder of an {@code OpenSSH} encoded key data
+ *
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
  */
-public interface PublicKeyEntryDecoder<PUB extends PublicKey,PRV extends 
PrivateKey> {
+public interface PublicKeyEntryDecoder<PUB extends PublicKey, PRV extends 
PrivateKey> {
     /**
      * @return The {@link Class} of the {@link PublicKey} that is the result
      * of decoding
      */
     Class<PUB> getPublicKeyType();
-    
+
     /**
      * @return The {@link Class} of the {@link PrivateKey} that matches the
      * public one
@@ -65,9 +66,9 @@ public interface PublicKeyEntryDecoder<PUB extends 
PublicKey,PRV extends Private
      * @param kp The {@link KeyPair} to be cloned - ignored if {@code null}
      * @return A cloned pair (or {@code null} if no original pair)
      * @throws GeneralSecurityException If failed to clone - e.g., provided key
-     * pair does not contain keys of the expected type
+     *                                  pair does not contain keys of the 
expected type
      * @see #getPublicKeyType()
-     * @see #getPrivateKeyType() 
+     * @see #getPrivateKeyType()
      */
     KeyPair cloneKeyPair(KeyPair kp) throws GeneralSecurityException;
 
@@ -93,19 +94,22 @@ public interface PublicKeyEntryDecoder<PUB extends 
PublicKey,PRV extends Private
 
     /**
      * @param keyData The key data bytes in {@code OpenSSH} format (after
-     * BASE64 decoding) - ignored if {@code null}/empty
+     *                BASE64 decoding) - ignored if {@code null}/empty
      * @return The decoded {@link PublicKey} - or {@code null} if no data
-     * @throws IOException If failed to decode the key
+     * @throws IOException              If failed to decode the key
      * @throws GeneralSecurityException If failed to generate the key
      */
-    PUB decodePublicKey(byte ... keyData) throws IOException, 
GeneralSecurityException;
+    PUB decodePublicKey(byte... keyData) throws IOException, 
GeneralSecurityException;
+
     PUB decodePublicKey(byte[] keyData, int offset, int length) throws 
IOException, GeneralSecurityException;
+
     PUB decodePublicKey(InputStream keyData) throws IOException, 
GeneralSecurityException;
-    
+
     /**
      * Encodes the {@link PublicKey} using the {@code OpenSSH} format - same
      * one used by the {@code decodePublicKey} method(s)
-     * @param s The {@link OutputStream} to write the data to
+     *
+     * @param s   The {@link OutputStream} to write the data to
      * @param key The {@link PublicKey} - may not be {@code null}
      * @return The key type value - one of the {@link #getSupportedTypeNames()}
      * @throws IOException If failed to generate the encoding

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/config/keys/RSAPublicKeyDecoder.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/RSAPublicKeyDecoder.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/RSAPublicKeyDecoder.java
index 05349dc..22f3a05 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/config/keys/RSAPublicKeyDecoder.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/config/keys/RSAPublicKeyDecoder.java
@@ -36,14 +36,13 @@ import java.security.spec.RSAPublicKeySpec;
 import java.util.Collections;
 
 import org.apache.sshd.common.keyprovider.KeyPairProvider;
-import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.SecurityUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 
 /**
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
  */
-public class RSAPublicKeyDecoder extends 
AbstractPublicKeyEntryDecoder<RSAPublicKey,RSAPrivateKey> {
+public class RSAPublicKeyDecoder extends 
AbstractPublicKeyEntryDecoder<RSAPublicKey, RSAPrivateKey> {
     public static final RSAPublicKeyDecoder INSTANCE = new 
RSAPublicKeyDecoder();
 
     public RSAPublicKeyDecoder() {
@@ -56,19 +55,19 @@ public class RSAPublicKeyDecoder extends 
AbstractPublicKeyEntryDecoder<RSAPublic
             throw new InvalidKeySpecException("Unepected key type: " + 
keyType);
         }
 
-        BigInteger  e=decodeBigInt(keyData);
-        BigInteger  n=decodeBigInt(keyData);
+        BigInteger e = decodeBigInt(keyData);
+        BigInteger n = decodeBigInt(keyData);
 
         return generatePublicKey(new RSAPublicKeySpec(n, e));
     }
-    
+
     @Override
     public String encodePublicKey(OutputStream s, RSAPublicKey key) throws 
IOException {
         ValidateUtils.checkNotNull(key, "No public key provided");
         encodeString(s, KeyPairProvider.SSH_RSA);
         encodeBigInt(s, key.getPublicExponent());
         encodeBigInt(s, key.getModulus());
-        
+
         return KeyPairProvider.SSH_RSA;
     }
 
@@ -86,7 +85,7 @@ public class RSAPublicKeyDecoder extends 
AbstractPublicKeyEntryDecoder<RSAPublic
         if (key == null) {
             return null;
         }
-        
+
         if (!(key instanceof RSAPrivateCrtKey)) {
             throw new InvalidKeyException("Cannot clone a 
non-RSAPrivateCrtKey: " + key.getClass().getSimpleName());
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java 
b/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
index 5d10d88..910baf8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
@@ -33,7 +33,8 @@ import org.apache.sshd.common.util.ValidateUtils;
 public class BaseDigest implements Digest {
 
     private final String algorithm;
-    private final int bsize, h;
+    private final int bsize;
+    private final int h;
     private final String s;
     private MessageDigest md;
 
@@ -43,7 +44,7 @@ public class BaseDigest implements Digest {
      * object will be done in the {@link #init()} method.
      *
      * @param algorithm the JCE algorithm to use for this digest
-     * @param bsize the block size of this digest
+     * @param bsize     the block size of this digest
      */
     public BaseDigest(String algorithm, int bsize) {
         this.algorithm = ValidateUtils.checkNotNullAndNotEmpty(algorithm, "No 
algorithm");
@@ -91,18 +92,20 @@ public class BaseDigest implements Digest {
     @Override
     public int compareTo(Digest that) {
         if (that == null) {
-            return (-1);    // push null(s) to end
+            return -1;    // push null(s) to end
         } else if (this == that) {
             return 0;
         }
 
-        String thisAlg = getAlgorithm(), thatAlg = that.getAlgorithm();
+        String thisAlg = getAlgorithm();
+        String thatAlg = that.getAlgorithm();
         int nRes = GenericUtils.safeCompare(thisAlg, thatAlg, false);
         if (nRes != 0) {
             return nRes;    // debug breakpoint
         }
-        
-        if ((nRes = Integer.compare(this.getBlockSize(), that.getBlockSize())) 
!= 0) {
+
+        nRes = Integer.compare(this.getBlockSize(), that.getBlockSize());
+        if (nRes != 0) {
             return nRes;    // debug breakpoint
         }
 
@@ -120,13 +123,9 @@ public class BaseDigest implements Digest {
         if (getClass() != obj.getClass()) {
             return false;
         }
-        
+
         int nRes = compareTo((Digest) obj);
-        if (nRes == 0) {
-            return true;
-        } else {
-            return false;
-        }
+        return nRes == 0;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/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 bce8b3a..9829d9e 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
@@ -39,10 +39,19 @@ public enum BuiltinDigests implements DigestInformation, 
DigestFactory {
     sha384(Constants.SHA384, "SHA-384", 48),
     sha512(Constants.SHA512, "SHA-512", 64);
 
+    public static final Set<BuiltinDigests> VALUES =
+            Collections.unmodifiableSet(EnumSet.allOf(BuiltinDigests.class));
+
     private final String algorithm;
     private final int blockSize;
     private final String factoryName;
 
+    BuiltinDigests(String factoryName, String algorithm, int blockSize) {
+        this.factoryName = factoryName;
+        this.algorithm = algorithm;
+        this.blockSize = blockSize;
+    }
+
     @Override
     public final String getName() {
         return factoryName;
@@ -68,15 +77,6 @@ public enum BuiltinDigests implements DigestInformation, 
DigestFactory {
         return new BaseDigest(getAlgorithm(), getBlockSize());
     }
 
-    BuiltinDigests(String factoryName, String algorithm, int blockSize) {
-        this.factoryName = factoryName;
-        this.algorithm = algorithm;
-        this.blockSize = blockSize;
-    }
-
-    public static final Set<BuiltinDigests> VALUES =
-            Collections.unmodifiableSet(EnumSet.allOf(BuiltinDigests.class));
-
     /**
      * @param s The {@link Enum}'s name - ignored if {@code null}/empty
      * @return The matching {@link 
org.apache.sshd.common.digest.BuiltinDigests} whose {@link Enum#name()} matches

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/digest/Digest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/digest/Digest.java 
b/sshd-core/src/main/java/org/apache/sshd/common/digest/Digest.java
index 128274d..ff282f8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/digest/Digest.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/digest/Digest.java
@@ -22,6 +22,7 @@ package org.apache.sshd.common.digest;
  * Interface used to compute digests, based on algorithms such as MD5 or SHA1.
  * The digest implementation are compared first by the algorithm name (case
  * <U>insensitive</U> and second according to the block size
+ *
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
  */
 public interface Digest extends DigestInformation, Comparable<Digest> {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestFactory.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestFactory.java 
b/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestFactory.java
index 0dd7d85..218cf82 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestFactory.java
@@ -20,18 +20,11 @@
 package org.apache.sshd.common.digest;
 
 import org.apache.sshd.common.NamedFactory;
-import org.apache.sshd.common.util.Transformer;
 
 /**
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
  */
+// CHECKSTYLE:OFF
 public interface DigestFactory extends NamedFactory<Digest> {
-    // required because of generics issues
-    Transformer<DigestFactory,NamedFactory<Digest>> FAC2NAMED=new 
Transformer<DigestFactory,NamedFactory<Digest>>() {
-        @Override
-        public NamedFactory<Digest> transform(DigestFactory input) {
-            return input;
-        }
-    };
 
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java 
b/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java
index 4665a37..9a2b2b8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java
@@ -37,7 +37,7 @@ public final class DigestUtils {
     /**
      * @param f The {@link Factory} to create the {@link Digest} to use
      * @param s The {@link String} to digest - ignored if {@code null}/empty,
-     * otherwise its UTF-8 representation is used as input for the fingerprint
+     *          otherwise its UTF-8 representation is used as input for the 
fingerprint
      * @return The fingerprint - {@code null} if {@code null}/empty input
      * @throws Exception If failed to calculate the digest
      * @see #getFingerPrint(Digest, String, Charset)
@@ -47,10 +47,10 @@ public final class DigestUtils {
     }
 
     /**
-     * @param f The {@link Factory} to create the {@link Digest} to use
-     * @param s The {@link String} to digest - ignored if {@code null}/empty
+     * @param f       The {@link Factory} to create the {@link Digest} to use
+     * @param s       The {@link String} to digest - ignored if {@code 
null}/empty
      * @param charset The {@link Charset} to use in order to convert the
-     * string to its byte representation to use as input for the fingerprint
+     *                string to its byte representation to use as input for 
the fingerprint
      * @return The fingerprint - {@code null} if {@code null}/empty input
      * @throws Exception If failed to calculate the digest
      */
@@ -61,7 +61,7 @@ public final class DigestUtils {
     /**
      * @param d The {@link Digest} to use
      * @param s The {@link String} to digest - ignored if {@code null}/empty,
-     * otherwise its UTF-8 representation is used as input for the fingerprint
+     *          otherwise its UTF-8 representation is used as input for the 
fingerprint
      * @return The fingerprint - {@code null} if {@code null}/empty input
      * @throws Exception If failed to calculate the digest
      * @see #getFingerPrint(Digest, String, Charset)
@@ -71,10 +71,10 @@ public final class DigestUtils {
     }
 
     /**
-     * @param d The {@link Digest} to use
-     * @param s The {@link String} to digest - ignored if {@code null}/empty
+     * @param d       The {@link Digest} to use
+     * @param s       The {@link String} to digest - ignored if {@code 
null}/empty
      * @param charset The {@link Charset} to use in order to convert the
-     * string to its byte representation to use as input for the fingerprint
+     *                string to its byte representation to use as input for 
the fingerprint
      * @return The fingerprint - {@code null} if {@code null}/empty input
      * @throws Exception If failed to calculate the digest
      */
@@ -87,21 +87,21 @@ public final class DigestUtils {
     }
 
     /**
-     * @param f The {@link Factory} to create the {@link Digest} to use
+     * @param f   The {@link Factory} to create the {@link Digest} to use
      * @param buf The data buffer to be fingerprint-ed
      * @return The fingerprint - {@code null} if empty data buffer
      * @throws Exception If failed to calculate the fingerprint
      * @see #getFingerPrint(Factory, byte[], int, int)
      */
-    public static String getFingerPrint(Factory<? extends Digest> f, byte ... 
buf) throws Exception {
+    public static String getFingerPrint(Factory<? extends Digest> f, byte... 
buf) throws Exception {
         return getFingerPrint(f, buf, 0, GenericUtils.length(buf));
     }
 
     /**
-     * @param f The {@link Factory} to create the {@link Digest} to use
-     * @param buf The data buffer to be fingerprint-ed
+     * @param f      The {@link Factory} to create the {@link Digest} to use
+     * @param buf    The data buffer to be fingerprint-ed
      * @param offset The offset of the data in the buffer
-     * @param len The length of data - ignored if non-positive
+     * @param len    The length of data - ignored if non-positive
      * @return The fingerprint - {@code null} if non-positive length
      * @throws Exception If failed to calculate the fingerprint
      */
@@ -110,21 +110,21 @@ public final class DigestUtils {
     }
 
     /**
-     * @param d The {@link Digest} to use
+     * @param d   The {@link Digest} to use
      * @param buf The data buffer to be fingerprint-ed
      * @return The fingerprint - {@code null} if empty data buffer
      * @throws Exception If failed to calculate the fingerprint
      * @see #getFingerPrint(Digest, byte[], int, int)
      */
-    public static String getFingerPrint(Digest d, byte ... buf) throws 
Exception {
+    public static String getFingerPrint(Digest d, byte... buf) throws 
Exception {
         return getFingerPrint(d, buf, 0, GenericUtils.length(buf));
     }
-    
+
     /**
-     * @param d The {@link Digest} to use
-     * @param buf The data buffer to be fingerprint-ed
+     * @param d      The {@link Digest} to use
+     * @param buf    The data buffer to be fingerprint-ed
      * @param offset The offset of the data in the buffer
-     * @param len The length of data - ignored if non-positive
+     * @param len    The length of data - ignored if non-positive
      * @return The fingerprint - {@code null} if non-positive length
      * @throws Exception If failed to calculate the fingerprint
      */

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/file/FileSystemFactory.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/file/FileSystemFactory.java 
b/sshd-core/src/main/java/org/apache/sshd/common/file/FileSystemFactory.java
index bab4dda..6564466 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/file/FileSystemFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/file/FileSystemFactory.java
@@ -7,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -33,6 +33,7 @@ public interface FileSystemFactory {
 
     /**
      * Create user specific file system.
+     *
      * @param session The session created for the user
      * @return The current {@link FileSystem} for the provided session
      * @throws java.io.IOException when the filesystem can not be created

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/file/nativefs/NativeFileSystemFactory.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/file/nativefs/NativeFileSystemFactory.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/file/nativefs/NativeFileSystemFactory.java
index 53ae321..65ece51 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/file/nativefs/NativeFileSystemFactory.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/file/nativefs/NativeFileSystemFactory.java
@@ -7,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -40,13 +40,14 @@ public class NativeFileSystemFactory extends 
AbstractLoggingBean implements File
     public NativeFileSystemFactory() {
         this(false);
     }
-    
+
     public NativeFileSystemFactory(boolean createHome) {
         this.createHome = createHome;
     }
 
     /**
      * Should the home directories be created automatically
+     *
      * @return true if the file system will create the home directory if not 
available
      */
     public boolean isCreateHome() {
@@ -55,6 +56,7 @@ public class NativeFileSystemFactory extends 
AbstractLoggingBean implements File
 
     /**
      * Set if the home directories be created automatically
+     *
      * @param createHome true if the file system will create the home 
directory if not available
      */
     public void setCreateHome(boolean createHome) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystemProvider.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystemProvider.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystemProvider.java
index 1d07cef..057e112 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystemProvider.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/file/root/RootedFileSystemProvider.java
@@ -32,7 +32,6 @@ import java.nio.file.DirectoryStream;
 import java.nio.file.FileStore;
 import java.nio.file.FileSystem;
 import java.nio.file.FileSystemAlreadyExistsException;
-import java.nio.file.FileSystemException;
 import java.nio.file.FileSystemNotFoundException;
 import java.nio.file.Files;
 import java.nio.file.LinkOption;
@@ -49,7 +48,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 
-import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 import org.apache.sshd.common.util.io.IoUtils;
 
@@ -88,7 +86,7 @@ public class RootedFileSystemProvider extends 
FileSystemProvider {
 
     protected FileSystem newFileSystem(Object src, Path path, Map<String, ?> 
env) throws IOException {
         Path root = ensureDirectory(path).toRealPath();
-        RootedFileSystem rootedFs=null;
+        RootedFileSystem rootedFs = null;
         synchronized (fileSystems) {
             if (!this.fileSystems.containsKey(root)) {
                 rootedFs = new RootedFileSystem(this, path, env);
@@ -105,7 +103,8 @@ public class RootedFileSystemProvider extends 
FileSystemProvider {
     }
 
     protected Path uriToPath(URI uri) {
-        String scheme = uri.getScheme(), expected = getScheme();
+        String scheme = uri.getScheme();
+        String expected = getScheme();
         if ((scheme == null) || (!scheme.equalsIgnoreCase(expected))) {
             throw new IllegalArgumentException("URI scheme (" + scheme + ") is 
not '" + expected + "'");
         }
@@ -162,7 +161,8 @@ public class RootedFileSystemProvider extends 
FileSystemProvider {
     }
 
     @Override
-    public AsynchronousFileChannel newAsynchronousFileChannel(Path path, Set<? 
extends OpenOption> options, ExecutorService executor, FileAttribute<?>... 
attrs) throws IOException {
+    public AsynchronousFileChannel newAsynchronousFileChannel(Path path, Set<? 
extends OpenOption> options,
+                                                              ExecutorService 
executor, FileAttribute<?>... attrs) throws IOException {
         Path r = unroot(path);
         FileSystemProvider p = provider(r);
         return p.newAsynchronousFileChannel(r, options, executor, attrs);
@@ -269,17 +269,17 @@ public class RootedFileSystemProvider extends 
FileSystemProvider {
         Path rootInstance = null;
         RootedFileSystem fsInstance = null;
         synchronized (fileSystems) {
-            for (Map.Entry<Path,RootedFileSystem> fse : 
fileSystems.entrySet()) {
+            for (Map.Entry<Path, RootedFileSystem> fse : 
fileSystems.entrySet()) {
                 Path root = fse.getKey();
                 RootedFileSystem fs = fse.getValue();
                 if (real.equals(root)) {
                     return fs;  // we were lucky to have the root
                 }
-                
+
                 if (!real.startsWith(root)) {
                     continue;
                 }
-                
+
                 // if already have a candidate prefer the longer match since 
both are prefixes of the real path
                 if ((rootInstance == null) || (rootInstance.getNameCount() < 
root.getNameCount())) {
                     rootInstance = root;
@@ -291,7 +291,7 @@ public class RootedFileSystemProvider extends 
FileSystemProvider {
         if (fsInstance == null) {
             throw new FileSystemNotFoundException(path.toString());
         }
-        
+
         return fsInstance;
     }
 
@@ -335,7 +335,7 @@ public class RootedFileSystemProvider extends 
FileSystemProvider {
         return fs.provider();
     }
 
-    private static Path root(FileSystem  fs, Path nat) {
+    private static Path root(FileSystem fs, Path nat) {
         RootedFileSystem rfs = (RootedFileSystem) fs;
         if (nat.isAbsolute()) {
             Path root = rfs.getRoot();
@@ -354,7 +354,7 @@ public class RootedFileSystemProvider extends 
FileSystemProvider {
         ValidateUtils.checkNotNull(path, "No path to unroot");
         if (!(path instanceof RootedPath)) {
             throw new ProviderMismatchException("unroot(" + path + ") is not a 
" + RootedPath.class.getSimpleName()
-                                              + " but rather a " + 
path.getClass().getSimpleName());
+                    + " but rather a " + path.getClass().getSimpleName());
         }
 
         RootedPath p = (RootedPath) path;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java 
b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java
index c6bd7df..386df6f 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java
@@ -7,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -75,7 +75,7 @@ public abstract class BaseFileSystem<T extends Path> extends 
FileSystem {
         if (!GenericUtils.isEmpty(first)) {
             appendDedupSep(sb, first.replace('\\', '/'));   // in case we are 
running on Windows
         }
-        
+
         if (GenericUtils.length(more) > 0) {
             for (String segment : more) {
                 if ((sb.length() > 0) && (sb.charAt(sb.length() - 1) != '/')) {
@@ -90,13 +90,14 @@ public abstract class BaseFileSystem<T extends Path> 
extends FileSystem {
             sb.setLength(sb.length() - 1);
         }
 
-        String path = sb.toString(), root = null;
+        String path = sb.toString();
+        String root = null;
         if (path.startsWith("/")) {
             root = "/";
             path = path.substring(1);
         }
 
-        String[] names=GenericUtils.split(path, '/');
+        String[] names = GenericUtils.split(path, '/');
         return create(root, names);
     }
 
@@ -128,7 +129,7 @@ public abstract class BaseFileSystem<T extends Path> 
extends FileSystem {
                 break;
             default:
                 throw new UnsupportedOperationException("Unsupported path 
matcher syntax: \'" + syntax + "\'");
-            }
+        }
         final Pattern regex = Pattern.compile(expr);
         return new PathMatcher() {
             @Override
@@ -148,81 +149,72 @@ public abstract class BaseFileSystem<T extends Path> 
extends FileSystem {
         for (int i = 0; i < arr.length; i++) {
             char ch = arr[i];
             switch (ch) {
-            case '\\':
-                if (++i >= arr.length) {
-                    sb.append('\\');
-                } else {
-                    char next = arr[i];
-                    switch (next) {
-                    case ',':
-                        // escape not needed
-                        break;
-                    case 'Q':
-                    case 'E':
-                        // extra escape needed
+                case '\\':
+                    if (++i >= arr.length) {
                         sb.append('\\');
-                    default:
+                    } else {
+                        char next = arr[i];
+                        switch (next) {
+                            case ',':
+                                // escape not needed
+                                break;
+                            case 'Q':
+                            case 'E':
+                                // extra escape needed
+                                sb.append("\\\\");
+                                break;
+                            default:
+                                sb.append('\\');
+                                break;
+                        }
+                        sb.append(next);
+                    }
+                    break;
+                case '*':
+                    sb.append(inClass == 0 ? ".*" : "*");
+                    break;
+                case '?':
+                    sb.append(inClass == 0 ? '.' : '?');
+                    break;
+                case '[':
+                    inClass++;
+                    firstIndexInClass = i + 1;
+                    sb.append('[');
+                    break;
+                case ']':
+                    inClass--;
+                    sb.append(']');
+                    break;
+                case '.':
+                case '(':
+                case ')':
+                case '+':
+                case '|':
+                case '^':
+                case '$':
+                case '@':
+                case '%':
+                    if (inClass == 0 || (firstIndexInClass == i && ch == '^')) 
{
                         sb.append('\\');
                     }
-                    sb.append(next);
-                }
-                break;
-            case '*':
-                if (inClass == 0)
-                    sb.append(".*");
-                else
-                    sb.append('*');
-                break;
-            case '?':
-                if (inClass == 0)
-                    sb.append('.');
-                else
-                    sb.append('?');
-                break;
-            case '[':
-                inClass++;
-                firstIndexInClass = i+1;
-                sb.append('[');
-                break;
-            case ']':
-                inClass--;
-                sb.append(']');
-                break;
-            case '.':
-            case '(':
-            case ')':
-            case '+':
-            case '|':
-            case '^':
-            case '$':
-            case '@':
-            case '%':
-                if (inClass == 0 || (firstIndexInClass == i && ch == '^'))
-                    sb.append('\\');
-                sb.append(ch);
-                break;
-            case '!':
-                if (firstIndexInClass == i)
-                    sb.append('^');
-                else
-                    sb.append('!');
-                break;
-            case '{':
-                inGroup++;
-                sb.append('(');
-                break;
-            case '}':
-                inGroup--;
-                sb.append(')');
-                break;
-            case ',':
-                if (inGroup > 0)
-                    sb.append('|');
-                else
-                    sb.append(',');
-                break;
-            default:
-                sb.append(ch);
+                    sb.append(ch);
+                    break;
+                case '!':
+                    sb.append(firstIndexInClass == i ? '^' : '!');
+                    break;
+                case '{':
+                    inGroup++;
+                    sb.append('(');
+                    break;
+                case '}':
+                    inGroup--;
+                    sb.append(')');
+                    break;
+                case ',':
+                    sb.append(inGroup > 0 ? '|' : ',');
+                    break;
+                default:
+                    sb.append(ch);
             }
         }
         return sb.toString();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java 
b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
index 80ed9fe..3a795da 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
@@ -42,7 +42,7 @@ import org.apache.sshd.common.util.ValidateUtils;
 
 public abstract class BasePath<T extends BasePath<T, FS>, FS extends 
BaseFileSystem<T>> implements Path {
 
-    private final FS fileSystem;
+    protected final FS fileSystem;
     protected final String root;
     protected final ImmutableList<String> names;
 
@@ -135,8 +135,8 @@ public abstract class BasePath<T extends BasePath<T, FS>, 
FS extends BaseFileSys
         T p1 = asT();
         T p2 = checkPath(other);
         return Objects.equals(p1.getFileSystem(), p2.getFileSystem())
-            && Objects.equals(p1.root, p2.root)
-            && startsWith(p1.names, p2.names);
+                && Objects.equals(p1.root, p2.root)
+                && startsWith(p1.names, p2.names);
     }
 
     @Override
@@ -361,7 +361,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, 
FS extends BaseFileSys
             throw new ProviderMismatchException("Path is not of this class: " 
+ paramPath + "[" + paramPath.getClass().getSimpleName() + "]");
         }
         T t = (T) paramPath;
-        
+
         FileSystem fs = t.getFileSystem();
         if (fs.provider() != this.fileSystem.provider()) {
             throw new ProviderMismatchException("Mismatched providers for " + 
t);
@@ -393,7 +393,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, 
FS extends BaseFileSys
             sb.append(root);
         }
         for (String name : names) {
-            if (sb.length() > 0 && sb.charAt(sb.length()  - 1) != '/') {
+            if (sb.length() > 0 && sb.charAt(sb.length() - 1) != '/') {
                 sb.append(fileSystem.getSeparator());
             }
             sb.append(name);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/file/util/ImmutableList.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/file/util/ImmutableList.java 
b/sshd-core/src/main/java/org/apache/sshd/common/file/util/ImmutableList.java
index 4193fa0..123bbf2 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/file/util/ImmutableList.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/file/util/ImmutableList.java
@@ -7,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -22,6 +22,7 @@ import java.util.AbstractList;
 
 /**
  * Simple immutable array list
+ *
  * @param <T>
  */
 public class ImmutableList<T> extends AbstractList<T> {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
index 2809787..b0c7e45 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
@@ -7,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -74,7 +74,7 @@ public class VirtualFileSystemFactory implements 
FileSystemFactory {
     @Override
     public FileSystem createFileSystem(Session session) throws IOException {
         String dir = computeRootDir(session.getUsername());
-        return new RootedFileSystemProvider().newFileSystem(Paths.get(dir), 
Collections.<String,Object>emptyMap());
+        return new RootedFileSystemProvider().newFileSystem(Paths.get(dir), 
Collections.<String, Object>emptyMap());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
index aad59eb..299af5d 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
@@ -60,23 +60,23 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
 
     private final ConnectionService service;
     private final IoHandlerFactory socksProxyIoHandlerFactory = new 
IoHandlerFactory() {
-            @Override
-            public IoHandler create() {
-                return new SocksProxy(getConnectionService());
-            }
-        };
+        @Override
+        public IoHandler create() {
+            return new SocksProxy(getConnectionService());
+        }
+    };
     private final Session session;
     private final Map<Integer, SshdSocketAddress> localToRemote = new 
HashMap<>();
     private final Map<Integer, SshdSocketAddress> remoteToLocal = new 
HashMap<>();
     private final Map<Integer, SocksProxy> dynamicLocal = new HashMap<>();
     private final Set<LocalForwardingEntry> localForwards = new HashSet<>();
     private final IoHandlerFactory staticIoHandlerFactory = new 
IoHandlerFactory() {
-            @Override
-            public IoHandler create() {
-                return new StaticIoHandler();
-            }
-        };
-    protected IoAcceptor acceptor;
+        @Override
+        public IoHandler create() {
+            return new StaticIoHandler();
+        }
+    };
+    private IoAcceptor acceptor;
 
     public DefaultTcpipForwarder(ConnectionService service) {
         this.service = ValidateUtils.checkNotNull(service, "No connection 
service");
@@ -107,10 +107,10 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
         InetSocketAddress bound = doBind(local, staticIoHandlerFactory);
         int port = bound.getPort();
         SshdSocketAddress prev;
-        synchronized(localToRemote) {
+        synchronized (localToRemote) {
             prev = localToRemote.put(port, remote);
         }
-        
+
         if (prev != null) {
             throw new IOException("Multiple local port forwarding bindings on 
port=" + port + ": current=" + remote + ", previous=" + prev);
         }
@@ -127,7 +127,7 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
         ValidateUtils.checkNotNull(local, "Local address is null");
 
         SshdSocketAddress bound;
-        synchronized(localToRemote) {
+        synchronized (localToRemote) {
             bound = localToRemote.remove(local.getPort());
         }
 
@@ -160,10 +160,10 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
         int port = (remote.getPort() == 0) ? result.getInt() : 
remote.getPort();
         // TODO: Is it really safe to only store the local address after the 
request ?
         SshdSocketAddress prev;
-        synchronized(remoteToLocal) {
+        synchronized (remoteToLocal) {
             prev = remoteToLocal.put(port, local);
         }
-        
+
         if (prev != null) {
             throw new IOException("Multiple remote port forwarding bindings on 
port=" + port + ": current=" + remote + ", previous=" + prev);
         }
@@ -179,7 +179,7 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
     @Override
     public synchronized void stopRemotePortForwarding(SshdSocketAddress 
remote) throws IOException {
         SshdSocketAddress bound;
-        synchronized(remoteToLocal) {
+        synchronized (remoteToLocal) {
             bound = remoteToLocal.remove(remote.getPort());
         }
 
@@ -213,13 +213,14 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
             throw new IllegalStateException("TcpipForwarder is closing");
         }
 
-        SocksProxy socksProxy = new SocksProxy(service), prev;
+        SocksProxy socksProxy = new SocksProxy(service);
+        SocksProxy prev;
         InetSocketAddress bound = doBind(local, socksProxyIoHandlerFactory);
         int port = bound.getPort();
-        synchronized(dynamicLocal) {
+        synchronized (dynamicLocal) {
             prev = dynamicLocal.put(port, socksProxy);
         }
-        
+
         if (prev != null) {
             throw new IOException("Multiple dynamic port mappings found for 
port=" + port + ": current=" + socksProxy + ", previous=" + prev);
         }
@@ -228,14 +229,14 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
         if (log.isDebugEnabled()) {
             log.debug("startDynamicPortForwarding(" + local + "): " + result);
         }
-        
+
         return result;
     }
 
     @Override
     public synchronized void stopDynamicPortForwarding(SshdSocketAddress 
local) throws IOException {
         Closeable obj;
-        synchronized(dynamicLocal) {
+        synchronized (dynamicLocal) {
             obj = dynamicLocal.remove(local.getPort());
         }
 
@@ -254,7 +255,7 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
 
     @Override
     public synchronized SshdSocketAddress getForwardedPort(int remotePort) {
-        synchronized(remoteToLocal) {
+        synchronized (remoteToLocal) {
             return remoteToLocal.get(remotePort);
         }
     }
@@ -263,7 +264,7 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
     public synchronized SshdSocketAddress 
localPortForwardingRequested(SshdSocketAddress local) throws IOException {
         ValidateUtils.checkNotNull(local, "Local address is null");
         ValidateUtils.checkTrue(local.getPort() >= 0, "Invalid local port: 
%s", local);
-        
+
         FactoryManager manager = session.getFactoryManager();
         ForwardingFilter filter = manager.getTcpipForwardingFilter();
         if ((filter == null) || (!filter.canListen(local, session))) {
@@ -279,11 +280,11 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
         }
 
         boolean added;
-        synchronized(localForwards) {
+        synchronized (localForwards) {
             // NOTE !!! it is crucial to use the bound address host name first
             added = localForwards.add(new 
LocalForwardingEntry(result.getHostName(), local.getHostName(), 
result.getPort()));
         }
-        
+
         if (!added) {
             throw new IOException("Failed to add local port forwarding entry 
for " + local + " -> " + result);
         }
@@ -293,8 +294,9 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
     @Override
     public synchronized void localPortForwardingCancelled(SshdSocketAddress 
local) throws IOException {
         LocalForwardingEntry entry;
-        synchronized(localForwards) {
-            if 
((entry=LocalForwardingEntry.findMatchingEntry(local.getHostName(), 
local.getPort(), localForwards)) != null) {
+        synchronized (localForwards) {
+            entry = 
LocalForwardingEntry.findMatchingEntry(local.getHostName(), local.getPort(), 
localForwards);
+            if (entry != null) {
                 localForwards.remove(entry);
             }
         }
@@ -317,7 +319,7 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
     }
 
     /**
-     * @param address The request bind address
+     * @param address        The request bind address
      * @param handlerFactory A {@link Factory} to create an {@link IoHandler} 
if necessary
      * @return The {@link InetSocketAddress} to which the binding occurred
      * @throws IOException If failed to bind
@@ -333,7 +335,7 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
         // TODO find a better way to determine the resulting bind address - 
what if multi-threaded calls...
         Set<SocketAddress> before = acceptor.getBoundAddresses();
         try {
-            InetSocketAddress bindAddress = address.toInetSocketAddress(); 
+            InetSocketAddress bindAddress = address.toInetSocketAddress();
             acceptor.bind(bindAddress);
 
             Set<SocketAddress> after = acceptor.getBoundAddresses();
@@ -374,7 +376,7 @@ public class DefaultTcpipForwarder extends 
CloseableUtils.AbstractInnerCloseable
         @SuppressWarnings("synthetic-access")
         @Override
         public void sessionCreated(final IoSession session) throws Exception {
-            InetSocketAddress local = (InetSocketAddress) 
session.getLocalAddress(); 
+            InetSocketAddress local = (InetSocketAddress) 
session.getLocalAddress();
             int localPort = local.getPort();
             SshdSocketAddress remote = localToRemote.get(localPort);
             final TcpipClientChannel channel;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
index b05f84c..d9837ec 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
@@ -23,8 +23,8 @@ import org.apache.sshd.common.session.ConnectionService;
 /**
  * The default {@link TcpipForwarderFactory} implementation.
  *
- * @see {@link DefaultTcpipForwarder}
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
+ * @see {@link DefaultTcpipForwarder}
  */
 public class DefaultTcpipForwarderFactory implements TcpipForwarderFactory {
     public static final DefaultTcpipForwarderFactory INSTANCE = new 
DefaultTcpipForwarderFactory();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/forward/LocalForwardingEntry.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/LocalForwardingEntry.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/LocalForwardingEntry.java
index b1872ba..610936a 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/LocalForwardingEntry.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/LocalForwardingEntry.java
@@ -63,12 +63,12 @@ public class LocalForwardingEntry extends SshdSocketAddress 
{
     public String toString() {
         return super.toString() + " - " + getAlias();
     }
-    
+
     /**
-     * @param host The host - ignored if {@code null}/empty - i.e., no match 
reported
-     * @param port The port - ignored if non-positive - i.e., no match reported
+     * @param host    The host - ignored if {@code null}/empty - i.e., no 
match reported
+     * @param port    The port - ignored if non-positive - i.e., no match 
reported
      * @param entries The {@link Collection} of {@link LocalForwardingEntry} 
to check
-     * - ignored if {@code null}/empty - i.e., no match reported
+     *                - ignored if {@code null}/empty - i.e., no match reported
      * @return The <U>first</U> entry whose host or alias matches the host 
name - case
      * <U>sensitive</U> <B>and</B> has a matching port - {@code null} if no 
match found
      */
@@ -76,13 +76,13 @@ public class LocalForwardingEntry extends SshdSocketAddress 
{
         if (GenericUtils.isEmpty(host) || (port <= 0) || 
(GenericUtils.isEmpty(entries))) {
             return null;
         }
-        
+
         for (LocalForwardingEntry e : entries) {
             if ((port == e.getPort()) && (host.equals(e.getHostName()) || 
host.equals(e.getAlias()))) {
                 return e;
             }
         }
-        
+
         return null;    // no match found
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
index c0d6a7c..b09242a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
@@ -36,6 +36,7 @@ import org.apache.sshd.common.util.buffer.ByteArrayBuffer;
 
 /**
  * SOCKS proxy server, supporting simple socks4/5 protocols.
+ *
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
  * @see <A HREF="https://en.wikipedia.org/wiki/SOCKS";>SOCKS Wikipedia</A>
  */
@@ -85,9 +86,9 @@ public class SocksProxy extends 
CloseableUtils.AbstractCloseable implements IoHa
     }
 
     @Override
-    public void exceptionCaught(IoSession ioSession, Throwable cause) throws 
Exception {
+    public void exceptionCaught(IoSession session, Throwable cause) throws 
Exception {
         log.warn("Exception caught, closing socks proxy", cause);
-        ioSession.close(false);
+        session.close(false);
     }
 
     public abstract class Proxy implements Closeable {
@@ -138,9 +139,9 @@ public class SocksProxy extends 
CloseableUtils.AbstractCloseable implements IoHa
                 }
                 int port = getUShort(buffer);
                 String host = Integer.toString(getUByte(buffer)) + "."
-                            + Integer.toString(getUByte(buffer)) + "."
-                            + Integer.toString(getUByte(buffer)) + "."
-                            + Integer.toString(getUByte(buffer));
+                        + Integer.toString(getUByte(buffer)) + "."
+                        + Integer.toString(getUByte(buffer)) + "."
+                        + Integer.toString(getUByte(buffer));
                 String userId = getNTString(buffer);
                 // Socks4a
                 if (host.startsWith("0.0.0.")) {
@@ -246,20 +247,20 @@ public class SocksProxy extends 
CloseableUtils.AbstractCloseable implements IoHa
                 String host;
                 if (type == 0x01) {
                     host = Integer.toString(getUByte(buffer)) + "."
-                         + Integer.toString(getUByte(buffer)) + "."
-                         + Integer.toString(getUByte(buffer)) + "."
-                         + Integer.toString(getUByte(buffer));
+                            + Integer.toString(getUByte(buffer)) + "."
+                            + Integer.toString(getUByte(buffer)) + "."
+                            + Integer.toString(getUByte(buffer));
                 } else if (type == 0x03) {
                     host = getBLString(buffer);
                 } else if (type == 0x04) {
                     host = Integer.toHexString(getUShort(buffer)) + ":"
-                         + Integer.toHexString(getUShort(buffer)) + ":"
-                         + Integer.toHexString(getUShort(buffer)) + ":"
-                         + Integer.toHexString(getUShort(buffer)) + ":"
-                         + Integer.toHexString(getUShort(buffer)) + ":"
-                         + Integer.toHexString(getUShort(buffer)) + ":"
-                         + Integer.toHexString(getUShort(buffer)) + ":"
-                         + Integer.toHexString(getUShort(buffer));
+                            + Integer.toHexString(getUShort(buffer)) + ":"
+                            + Integer.toHexString(getUShort(buffer)) + ":"
+                            + Integer.toHexString(getUShort(buffer)) + ":"
+                            + Integer.toHexString(getUShort(buffer)) + ":"
+                            + Integer.toHexString(getUShort(buffer)) + ":"
+                            + Integer.toHexString(getUShort(buffer)) + ":"
+                            + Integer.toHexString(getUShort(buffer));
                 } else {
                     throw new IllegalStateException("Unsupported address type: 
" + type);
                 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
index 0f4d89a..8d8a729 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
@@ -63,7 +63,8 @@ public class TcpipClientChannel extends AbstractClientChannel 
{
 
     @Override
     public synchronized OpenFuture open() throws IOException {
-        final InetSocketAddress src, dst;
+        final InetSocketAddress src;
+        final InetSocketAddress dst;
         switch (typeEnum) {
             case Direct:
                 src = (InetSocketAddress) serverSession.getRemoteAddress();
@@ -100,7 +101,8 @@ public class TcpipClientChannel extends 
AbstractClientChannel {
         if (streaming == Streaming.Async) {
             throw new IllegalArgumentException("Asynchronous streaming isn't 
supported yet on this channel");
         }
-        invertedIn = out = new ChannelOutputStream(this, remoteWindow, log, 
SshConstants.SSH_MSG_CHANNEL_DATA);
+        out = new ChannelOutputStream(this, remoteWindow, log, 
SshConstants.SSH_MSG_CHANNEL_DATA);
+        invertedIn = out;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipForwarder.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipForwarder.java 
b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipForwarder.java
index 16e9a1f..a278ab0 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipForwarder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipForwarder.java
@@ -28,14 +28,16 @@ public interface TcpipForwarder extends Closeable {
 
     /**
      * Start forwarding the given local address on the client to the given 
address on the server.
+     *
      * @param remote The remote address
-     * @param local The local address
+     * @param local  The local address
      * @throws IOException If failed to handle request
      */
     SshdSocketAddress startLocalPortForwarding(SshdSocketAddress local, 
SshdSocketAddress remote) throws IOException;
 
     /**
      * Stop forwarding the given local address.
+     *
      * @param local The local address
      * @throws IOException If failed to handle request
      */
@@ -44,26 +46,28 @@ public interface TcpipForwarder extends Closeable {
     /**
      * Start forwarding tcpip from the given remote address to the
      * given local address.
-     *
+     * <p/>
      * The remote host name is the address to bind to on the server:
      * <ul>
-     *    <li>"" means that connections are to be accepted on all protocol 
families
-     *              supported by the SSH implementation</li>
-     *    <li>"0.0.0.0" means to listen on all IPv4 addresses</li>
-     *    <li>"::" means to listen on all IPv6 addresses</li>
-     *    <li>"localhost" means to listen on all protocol families supported 
by the SSH
-     *              implementation on loopback addresses only, [RFC3330] and 
RFC3513]</li>
-     *    <li>"127.0.0.1" and "::1" indicate listening on the loopback 
interfaces for
-     *              IPv4 and IPv6 respectively</li>
+     * <li>"" means that connections are to be accepted on all protocol 
families
+     * supported by the SSH implementation</li>
+     * <li>"0.0.0.0" means to listen on all IPv4 addresses</li>
+     * <li>"::" means to listen on all IPv6 addresses</li>
+     * <li>"localhost" means to listen on all protocol families supported by 
the SSH
+     * implementation on loopback addresses only, [RFC3330] and RFC3513]</li>
+     * <li>"127.0.0.1" and "::1" indicate listening on the loopback interfaces 
for
+     * IPv4 and IPv6 respectively</li>
      * </ul>
+     *
      * @param remote The remote address
-     * @param local The local address
+     * @param local  The local address
      * @throws IOException If failed to handle request
      */
     SshdSocketAddress startRemotePortForwarding(SshdSocketAddress remote, 
SshdSocketAddress local) throws IOException;
 
     /**
      * Stop forwarding of the given remote address.
+     *
      * @param remote The remote {@link SshdSocketAddress}
      * @throws IOException If failed to handle request
      */
@@ -77,6 +81,7 @@ public interface TcpipForwarder extends Closeable {
 
     /**
      * Called when the other side requested a remote port forward.
+     *
      * @param local The request address
      * @return The bound local addresses
      * @throws IOException If failed to handle request
@@ -85,6 +90,7 @@ public interface TcpipForwarder extends Closeable {
 
     /**
      * Called when the other side cancelled a remote port forward.
+     *
      * @param local The local {@link SshdSocketAddress}
      * @throws IOException If failed to handle request
      */

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java 
b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java
index 3b95064..973f226 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java
@@ -35,12 +35,18 @@ import 
org.apache.sshd.common.util.logging.AbstractLoggingBean;
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
  */
 public class DefaultSshFuture<T extends SshFuture> extends AbstractLoggingBean 
implements SshFuture<T> {
-    /** A default value to indicate the future has been canceled */
+    /**
+     * A default value to indicate the future has been canceled
+     */
     private static final Object CANCELED = new Object();
-    /** A value indicating a null */
+    /**
+     * A value indicating a null
+     */
     private static final Object NULL = new Object();
 
-    /** A lock used by the wait() method */
+    /**
+     * A lock used by the wait() method
+     */
     private final Object lock;
     private Object listeners;
     private Object result;
@@ -100,31 +106,32 @@ public class DefaultSshFuture<T extends SshFuture> 
extends AbstractLoggingBean i
      * <P>Waits (interruptible) for the specified timeout (msec.) and then 
checks
      * the result:</P><BR/>
      * <UL>
-     *      <LI>
-     *      If result is {@code null} then timeout is assumed to have expired 
- throw
-     *      an appropriate {@link IOException}
-     *      </LI>
-     *      
-     *      <LI>
-     *      If the result is of the expected type, then cast and return it
-     *      </LI>
-     *      
-     *      <LI>
-     *      If the result is an {@link IOException} then re-throw it
-     *      </LI>
-     *      
-     *      <LI>
-     *      If the result is a {@link Throwable} then throw an {@link 
IOException}
-     *      whose cause is the original exception
-     *      </LI>
-     *      
-     *      <LI>
-     *      Otherwise (should never happen), throw a {@link 
StreamCorruptedException}
-     *      with the name of the result type
-     *      </LI>
+     * <LI>
+     * If result is {@code null} then timeout is assumed to have expired - 
throw
+     * an appropriate {@link IOException}
+     * </LI>
+     * <p/>
+     * <LI>
+     * If the result is of the expected type, then cast and return it
+     * </LI>
+     * <p/>
+     * <LI>
+     * If the result is an {@link IOException} then re-throw it
+     * </LI>
+     * <p/>
+     * <LI>
+     * If the result is a {@link Throwable} then throw an {@link IOException}
+     * whose cause is the original exception
+     * </LI>
+     * <p/>
+     * <LI>
+     * Otherwise (should never happen), throw a {@link 
StreamCorruptedException}
+     * with the name of the result type
+     * </LI>
      * </UL>
+     *
      * @param expectedType The expected result type
-     * @param timeout The timeout (millis) to wait for a result
+     * @param timeout      The timeout (millis) to wait for a result
      * @return The (never {@code null}) result
      * @throws IOException If failed to retrieve the expected result on time
      */
@@ -133,7 +140,7 @@ public class DefaultSshFuture<T extends SshFuture> extends 
AbstractLoggingBean i
         if (value == null) {
             throw new SshException("Failed to get operation result within 
specified timeout: " + timeout);
         }
-        
+
         Class<?> actualType = value.getClass();
         if (expectedType.isAssignableFrom(actualType)) {
             return expectedType.cast(value);
@@ -150,18 +157,20 @@ public class DefaultSshFuture<T extends SshFuture> 
extends AbstractLoggingBean i
     /**
      * Wait for the Future to be ready. If the requested delay is 0 or
      * negative, this method immediately returns.
+     *
      * @param timeoutMillis The delay we will wait for the Future to be ready
      * @param interruptable Tells if the wait can be interrupted or not.
-     * If {@code true} and the thread is interrupted then an {@link 
InterruptedIOException}
-     * is thrown.
+     *                      If {@code true} and the thread is interrupted then 
an {@link InterruptedIOException}
+     *                      is thrown.
      * @return The non-{@code null} result object if the Future is ready,
      * {@code null} if the timeout expired and no result was received
      * @throws InterruptedIOException If the thread has been interrupted
-     * when it's not allowed.
+     *                                when it's not allowed.
      */
     protected Object await0(long timeoutMillis, boolean interruptable) throws 
InterruptedIOException {
         ValidateUtils.checkTrue(timeoutMillis >= 0L, "Negative timeout N/A: 
%d", timeoutMillis);
-        long startTime = System.currentTimeMillis(), curTime = startTime;
+        long startTime = System.currentTimeMillis();
+        long curTime = startTime;
         long endTime = ((Long.MAX_VALUE - timeoutMillis) < curTime) ? 
Long.MAX_VALUE : (curTime + timeoutMillis);
 
         synchronized (lock) {
@@ -231,7 +240,7 @@ public class DefaultSshFuture<T extends SshFuture> extends 
AbstractLoggingBean i
                 if (listeners == null) {
                     listeners = listener;
                 } else if (listeners instanceof SshFutureListener) {
-                    listeners = new Object[] { listeners, listener };
+                    listeners = new Object[]{listeners, listener};
                 } else {
                     Object[] ol = (Object[]) listeners;
                     int l = ol.length;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/future/SshFuture.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/future/SshFuture.java 
b/sshd-core/src/main/java/org/apache/sshd/common/future/SshFuture.java
index ecb5d07..8963aae 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/future/SshFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/future/SshFuture.java
@@ -34,25 +34,28 @@ public interface SshFuture<T extends SshFuture> {
      * Wait for the asynchronous operation to complete.
      * The attached listeners will be notified when the operation is
      * completed.
+     *
      * @return The {@code this} instance
      * @throws IOException if failed - specifically {@link 
java.io.InterruptedIOException}
-     * if waiting was interrupted
+     *                     if waiting was interrupted
      */
     T await() throws IOException;
 
     /**
      * Wait for the asynchronous operation to complete with the specified 
timeout.
+     *
      * @return {@code true} if the operation is completed.
      * @throws IOException if failed - specifically {@link 
java.io.InterruptedIOException}
-     * if waiting was interrupted
+     *                     if waiting was interrupted
      */
     boolean await(long timeout, TimeUnit unit) throws IOException;
 
     /**
      * Wait for the asynchronous operation to complete with the specified 
timeout.
+     *
      * @return {@code true} if the operation is completed.
      * @throws IOException if failed - specifically {@link 
java.io.InterruptedIOException}
-     * if waiting was interrupted
+     *                     if waiting was interrupted
      */
     boolean await(long timeoutMillis) throws IOException;
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/future/SshFutureListener.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/future/SshFutureListener.java 
b/sshd-core/src/main/java/org/apache/sshd/common/future/SshFutureListener.java
index 7681899..7422ed9 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/future/SshFutureListener.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/future/SshFutureListener.java
@@ -32,8 +32,8 @@ public interface SshFutureListener<T extends SshFuture> 
extends EventListener {
      * Invoked when the operation associated with the {@link SshFuture}
      * has been completed even if you add the listener after the completion.
      *
-     * @param future  The source {@link SshFuture} which called this
-     *                callback.
+     * @param future The source {@link SshFuture} which called this
+     *               callback.
      */
     void operationComplete(T future);
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoServiceFactoryFactory.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoServiceFactoryFactory.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoServiceFactoryFactory.java
index 9d9b312..6510439 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoServiceFactoryFactory.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoServiceFactoryFactory.java
@@ -28,8 +28,8 @@ import 
org.apache.sshd.common.util.threads.ExecutorServiceConfigurer;
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
  */
 public abstract class AbstractIoServiceFactoryFactory
-                extends AbstractLoggingBean
-                implements IoServiceFactoryFactory, ExecutorServiceConfigurer {
+        extends AbstractLoggingBean
+        implements IoServiceFactoryFactory, ExecutorServiceConfigurer {
 
     private ExecutorService executorService;
     private boolean shutdownExecutor;
@@ -56,7 +56,7 @@ public abstract class AbstractIoServiceFactoryFactory
     @Override
     public void setExecutorService(ExecutorService service) {
         executorService = service;
-        
+
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/BuiltinIoServiceFactoryFactories.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/io/BuiltinIoServiceFactoryFactories.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/io/BuiltinIoServiceFactoryFactories.java
index da71b02..187b6a1 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/io/BuiltinIoServiceFactoryFactories.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/io/BuiltinIoServiceFactoryFactories.java
@@ -35,26 +35,30 @@ public enum BuiltinIoServiceFactoryFactories implements 
NamedFactory<IoServiceFa
     NIO2(Nio2ServiceFactoryFactory.class),
     NMINA(MinaServiceFactoryFactory.class);
 
+    public static final Set<BuiltinIoServiceFactoryFactories> VALUES =
+            
Collections.unmodifiableSet(EnumSet.allOf(BuiltinIoServiceFactoryFactories.class));
+
     private final Class<? extends IoServiceFactoryFactory> factoryClass;
-    public final Class<? extends IoServiceFactoryFactory> getFactoryClass() {
-        return factoryClass;
-    }
 
     BuiltinIoServiceFactoryFactories(Class<? extends IoServiceFactoryFactory> 
clazz) {
         factoryClass = clazz;
     }
 
+    public final Class<? extends IoServiceFactoryFactory> getFactoryClass() {
+        return factoryClass;
+    }
+
     @Override
     public final String getName() {
         return name().toLowerCase();
     }
-    
+
     @Override
     public final IoServiceFactoryFactory create() {
-        Class<? extends IoServiceFactoryFactory>    clazz=getFactoryClass();
+        Class<? extends IoServiceFactoryFactory> clazz = getFactoryClass();
         try {
             return clazz.newInstance();
-        } catch(Exception e) {
+        } catch (Exception e) {
             if (e instanceof RuntimeException) {
                 throw (RuntimeException) e;
             } else {
@@ -62,25 +66,22 @@ public enum BuiltinIoServiceFactoryFactories implements 
NamedFactory<IoServiceFa
             }
         }
     }
-    
-    public static final Set<BuiltinIoServiceFactoryFactories> VALUES = 
-            
Collections.unmodifiableSet(EnumSet.allOf(BuiltinIoServiceFactoryFactories.class));
 
     public static BuiltinIoServiceFactoryFactories fromFactoryName(String 
name) {
         return NamedResource.Utils.findByName(name, 
String.CASE_INSENSITIVE_ORDER, VALUES);
     }
-    
+
     public static BuiltinIoServiceFactoryFactories fromFactoryClass(Class<?> 
clazz) {
         if ((clazz == null) || 
(!IoServiceFactoryFactory.class.isAssignableFrom(clazz))) {
             return null;
         }
-        
+
         for (BuiltinIoServiceFactoryFactories f : VALUES) {
             if (clazz.isAssignableFrom(f.getFactoryClass())) {
                 return f;
             }
         }
-        
+
         return null;
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/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 0dcb30d..1ee6697 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
@@ -39,7 +39,7 @@ public class DefaultIoServiceFactoryFactory extends 
AbstractIoServiceFactoryFact
     public DefaultIoServiceFactoryFactory() {
         this(null, true);
     }
-    
+
     protected DefaultIoServiceFactoryFactory(ExecutorService executors, 
boolean shutdownOnExit) {
         super(executors, shutdownOnExit);
     }
@@ -54,7 +54,7 @@ public class DefaultIoServiceFactoryFactory extends 
AbstractIoServiceFactoryFact
             if (factory == null) {
                 factory = newInstance(IoServiceFactoryFactory.class);
                 if (factory instanceof ExecutorServiceConfigurer) {
-                    ExecutorServiceConfigurer   
configurer=(ExecutorServiceConfigurer) factory;
+                    ExecutorServiceConfigurer configurer = 
(ExecutorServiceConfigurer) factory;
                     configurer.setExecutorService(getExecutorService());
                     configurer.setShutdownOnExit(isShutdownOnExit());
                 }
@@ -102,7 +102,7 @@ public class DefaultIoServiceFactoryFactory extends 
AbstractIoServiceFactoryFact
     }
 
     public static <T extends IoServiceFactoryFactory> T newInstance(Class<T> 
clazz, String factory) {
-        BuiltinIoServiceFactoryFactories    builtin = 
BuiltinIoServiceFactoryFactories.fromFactoryName(factory);
+        BuiltinIoServiceFactoryFactories builtin = 
BuiltinIoServiceFactoryFactories.fromFactoryName(factory);
         if (builtin != null) {
             return clazz.cast(builtin.create());
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/IoConnectFuture.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/io/IoConnectFuture.java 
b/sshd-core/src/main/java/org/apache/sshd/common/io/IoConnectFuture.java
index 351e5e7..50b2053 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/IoConnectFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/IoConnectFuture.java
@@ -28,7 +28,7 @@ public interface IoConnectFuture extends 
SshFuture<IoConnectFuture> {
      * Returns the cause of the connection failure.
      *
      * @return <tt>null</tt> if the connect operation is not finished yet,
-     *         or if the connection attempt is successful.
+     * or if the connection attempt is successful.
      */
     Throwable getException();
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandler.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandler.java 
b/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandler.java
index 1d877e4..b0db68a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandler.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandler.java
@@ -28,7 +28,7 @@ public interface IoHandler {
 
     void sessionClosed(IoSession session) throws Exception;
 
-    void exceptionCaught(IoSession ioSession, Throwable cause) throws 
Exception;
+    void exceptionCaught(IoSession session, Throwable cause) throws Exception;
 
     void messageReceived(IoSession session, Readable message) throws Exception;
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java 
b/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java
index 168df15..35c133f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java
@@ -20,18 +20,11 @@
 package org.apache.sshd.common.io;
 
 import org.apache.sshd.common.Factory;
-import org.apache.sshd.common.util.Transformer;
 
 /**
  * @author <a href="mailto:[email protected]";>Apache MINA SSHD Project</a>
  */
+// CHECKSTYLE:OFF
 public interface IoHandlerFactory extends Factory<IoHandler> {
-    // may be required due to generics reasons
-    Transformer<IoHandlerFactory,Factory<IoHandler>> FAC2FAC =
-            new Transformer<IoHandlerFactory, Factory<IoHandler>>() {
-                @Override
-                public Factory<IoHandler> transform(IoHandlerFactory input) {
-                    return input;
-                }
-            };
+
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/IoReadFuture.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/io/IoReadFuture.java 
b/sshd-core/src/main/java/org/apache/sshd/common/io/IoReadFuture.java
index a857d1c..d9232a3 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/IoReadFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/IoReadFuture.java
@@ -27,10 +27,13 @@ import org.apache.sshd.common.util.buffer.Buffer;
 public interface IoReadFuture extends SshFuture<IoReadFuture> {
     /**
      * Wait and verify that the read succeeded.
+     *
      * @throws IOException if the action failed for any reason
      */
     void verify() throws IOException;
+
     void verify(long timeout, TimeUnit unit) throws IOException;
+
     void verify(long timeoutMillis) throws IOException;
 
     Buffer getBuffer();

Reply via email to