Repository: mina-sshd
Updated Branches:
  refs/heads/master 6de239d9b -> 9dbe5fe08


Activated some more PMD rules


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

Branch: refs/heads/master
Commit: 9dbe5fe084b4e7cbfef62371f881f6c65f26f17b
Parents: 6de239d
Author: Lyor Goldstein <lyor.goldst...@gmail.com>
Authored: Mon May 29 20:01:20 2017 +0300
Committer: Lyor Goldstein <lyor.goldst...@gmail.com>
Committed: Mon May 29 20:46:45 2017 +0300

----------------------------------------------------------------------
 .../org/apache/sshd/agent/unix/AprLibrary.java  |  4 +-
 .../sshd/client/subsystem/sftp/SftpCommand.java | 68 ++++++++++++++++++++
 .../sshd/common/channel/AbstractChannel.java    |  1 +
 .../common/channel/ChannelAsyncInputStream.java |  8 ++-
 .../apache/sshd/common/channel/SttySupport.java |  6 +-
 .../common/compression/CompressionZlib.java     |  9 ++-
 .../sshd/common/file/util/BaseFileSystem.java   | 13 ++--
 .../apache/sshd/common/forward/SocksProxy.java  |  4 +-
 .../org/apache/sshd/common/scp/ScpHelper.java   |  2 +-
 .../common/session/helpers/AbstractSession.java | 11 ++--
 .../common/subsystem/sftp/SftpConstants.java    |  2 +-
 .../apache/sshd/common/util/SelectorUtils.java  | 21 +++---
 .../sshd/common/util/buffer/BufferUtils.java    |  2 +
 .../sshd/common/util/io/DirectoryScanner.java   |  5 +-
 .../org/apache/sshd/common/util/io/IoUtils.java |  4 +-
 .../sshd/server/auth/gss/GSSAuthenticator.java  | 15 ++---
 .../java/org/apache/sshd/server/kex/Moduli.java |  5 +-
 .../server/session/ServerUserAuthService.java   |  3 +-
 .../server/shell/TtyFilterOutputStream.java     |  2 +-
 .../java/org/apache/sshd/client/ClientTest.java |  2 +
 .../sshd/client/subsystem/sftp/SftpTest.java    |  4 +-
 .../sshd/common/util/SttySupportTest.java       |  3 +
 .../AbstractGeneratorHostKeyProviderTest.java   | 20 +++---
 .../sshd/util/test/AsyncEchoShellFactory.java   | 13 ++--
 .../apache/sshd/util/test/BogusEnvironment.java |  3 +
 sshd-pmd-ruleset.xml                            | 20 +++++-
 26 files changed, 174 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java 
b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java
index 34940ab..2c0bfb8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java
@@ -148,11 +148,9 @@ public final class AprLibrary {
     }
 
     static void secureLocalSocket(String authSocket, long handle) throws 
IOException {
+        // should be ok on windows
         if (OsUtils.isUNIX()) {
             chmodOwner(authSocket, false);
-
-        } else {
-            // should be ok on windows
         }
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java
 
b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java
index 8abb8d9..cc720c7 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java
@@ -280,6 +280,10 @@ public class SftpCommand implements Channel {
     }
 
     private static class ExitCommandExecutor implements CommandExecutor {
+        ExitCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "exit";
@@ -313,6 +317,10 @@ public class SftpCommand implements Channel {
     }
 
     private class SessionCommandExecutor implements CommandExecutor {
+        SessionCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "session";
@@ -339,6 +347,10 @@ public class SftpCommand implements Channel {
     }
 
     private class InfoCommandExecutor implements CommandExecutor {
+        InfoCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "info";
@@ -373,6 +385,10 @@ public class SftpCommand implements Channel {
     }
 
     private class VersionCommandExecutor implements CommandExecutor {
+        VersionCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "version";
@@ -388,6 +404,10 @@ public class SftpCommand implements Channel {
     }
 
     private class CdCommandExecutor extends PwdCommandExecutor {
+        CdCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "cd";
@@ -405,6 +425,10 @@ public class SftpCommand implements Channel {
     }
 
     private class LcdCommandExecutor extends PwdCommandExecutor {
+        LcdCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "lcd";
@@ -426,6 +450,10 @@ public class SftpCommand implements Channel {
     }
 
     private class MkdirCommandExecutor implements CommandExecutor {
+        MkdirCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "mkdir";
@@ -443,6 +471,10 @@ public class SftpCommand implements Channel {
     }
 
     private class LsCommandExecutor implements CommandExecutor {
+        LsCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "ls";
@@ -478,6 +510,10 @@ public class SftpCommand implements Channel {
     }
 
     private class RmCommandExecutor implements CommandExecutor {
+        RmCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "rm";
@@ -557,6 +593,10 @@ public class SftpCommand implements Channel {
     }
 
     private class RmdirCommandExecutor implements CommandExecutor {
+        RmdirCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "rmdir";
@@ -574,6 +614,10 @@ public class SftpCommand implements Channel {
     }
 
     private class RenameCommandExecutor implements CommandExecutor {
+        RenameCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "rename";
@@ -593,6 +637,10 @@ public class SftpCommand implements Channel {
     }
 
     private class StatVfsCommandExecutor implements CommandExecutor {
+        StatVfsCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return StatVfsExtensionParser.NAME;
@@ -627,6 +675,10 @@ public class SftpCommand implements Channel {
     }
 
     private class LStatCommandExecutor implements CommandExecutor {
+        LStatCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "lstat";
@@ -646,6 +698,10 @@ public class SftpCommand implements Channel {
     }
 
     private class ReadLinkCommandExecutor implements CommandExecutor {
+        ReadLinkCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "readlink";
@@ -665,6 +721,10 @@ public class SftpCommand implements Channel {
     }
 
     private class HelpCommandExecutor implements CommandExecutor {
+        HelpCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "help";
@@ -825,6 +885,10 @@ public class SftpCommand implements Channel {
     }
 
     private class GetCommandExecutor extends TransferCommandExecutor {
+        GetCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "get";
@@ -838,6 +902,10 @@ public class SftpCommand implements Channel {
     }
 
     private class PutCommandExecutor extends TransferCommandExecutor {
+        PutCommandExecutor() {
+            super();
+        }
+
         @Override
         public String getName() {
             return "put";

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java 
b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
index de183bc..8f32a2b 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
@@ -644,6 +644,7 @@ public abstract class AbstractChannel
 
             if (gracefulState.compareAndSet(GracefulState.Opened, 
GracefulState.CloseSent)) {
                 // Waiting for CLOSE message to come back from the remote side
+                return;
             } else if 
(gracefulState.compareAndSet(GracefulState.CloseReceived, 
GracefulState.Closed)) {
                 gracefulFuture.setClosed();
             }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
index 3bd0044..0be24fe 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
@@ -101,7 +101,9 @@ public class ChannelAsyncInputStream extends 
AbstractCloseable implements IoInpu
         synchronized (buffer) {
             if (buffer.available() > 0) {
                 if (resume) {
-//                    LOGGER.debug("Resuming read due to incoming data");
+                    if (log.isDebugEnabled()) {
+                        log.debug("Resuming read due to incoming data on {}", 
this);
+                    }
                 }
                 future = pending;
                 pending = null;
@@ -111,7 +113,9 @@ public class ChannelAsyncInputStream extends 
AbstractCloseable implements IoInpu
                 }
             } else {
                 if (!resume) {
-//                    LOGGER.debug("Delaying read until data is available");
+                    if (log.isDebugEnabled()) {
+                        log.debug("Delaying read until data is available on 
{}", this);
+                    }
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java 
b/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java
index b2f712b..05cbfbf 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java
@@ -23,9 +23,9 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.charset.Charset;
+import java.util.EnumMap;
 import java.util.Map;
 import java.util.StringTokenizer;
-import java.util.TreeMap;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.AtomicReference;
 
@@ -55,10 +55,11 @@ public final class SttySupport {
     }
 
     public static Map<PtyMode, Integer> parsePtyModes(String stty) {
-        Map<PtyMode, Integer> modes = new TreeMap<>();
+        Map<PtyMode, Integer> modes = new EnumMap<>(PtyMode.class);
         for (PtyMode mode : PtyMode.values()) {
             if (mode == PtyMode.TTY_OP_ISPEED || mode == 
PtyMode.TTY_OP_OSPEED) {
                 // TODO ...
+                continue;
             } else {
                 String str = mode.name().toLowerCase();
                 // Are we looking for a character?
@@ -79,6 +80,7 @@ public final class SttySupport {
                 }
             }
         }
+
         return modes;
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java
index 5b76754..e365b91 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java
@@ -64,8 +64,9 @@ public class CompressionZlib extends BaseCompression {
     public void compress(Buffer buffer) throws IOException {
         compresser.setInput(buffer.array(), buffer.rpos(), buffer.available());
         buffer.wpos(buffer.rpos());
-        int len;
-        while ((len = compresser.deflate(tmpbuf, 0, tmpbuf.length, 
Deflater.SYNC_FLUSH)) > 0) {
+        for (int len = compresser.deflate(tmpbuf, 0, tmpbuf.length, 
Deflater.SYNC_FLUSH);
+                len > 0;
+                len = compresser.deflate(tmpbuf, 0, tmpbuf.length, 
Deflater.SYNC_FLUSH)) {
             buffer.putRawBytes(tmpbuf, 0, len);
         }
     }
@@ -73,14 +74,12 @@ public class CompressionZlib extends BaseCompression {
     @Override
     public void uncompress(Buffer from, Buffer to) throws IOException {
         decompresser.setInput(from.array(), from.rpos(), from.available());
-        int len;
         try {
-            while ((len = decompresser.inflate(tmpbuf)) > 0) {
+            for (int len = decompresser.inflate(tmpbuf); len > 0; len = 
decompresser.inflate(tmpbuf)) {
                 to.putRawBytes(tmpbuf, 0, len);
             }
         } catch (DataFormatException e) {
             throw new IOException("Error decompressing data", e);
         }
     }
-
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/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 c8c394b..4c5d92d 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
@@ -162,7 +162,8 @@ public abstract class BaseFileSystem<T extends Path> 
extends FileSystem {
             char ch = arr[i];
             switch (ch) {
                 case '\\':
-                    if (++i >= arr.length) {
+                    i++;
+                    if (i >= arr.length) {
                         sb.append('\\');
                     } else {
                         char next = arr[i];
@@ -183,10 +184,10 @@ public abstract class BaseFileSystem<T extends Path> 
extends FileSystem {
                     }
                     break;
                 case '*':
-                    sb.append(inClass == 0 ? ".*" : "*");
+                    sb.append((inClass == 0) ? ".*" : "*");
                     break;
                 case '?':
-                    sb.append(inClass == 0 ? '.' : '?');
+                    sb.append((inClass == 0) ? '.' : '?');
                     break;
                 case '[':
                     inClass++;
@@ -206,13 +207,13 @@ public abstract class BaseFileSystem<T extends Path> 
extends FileSystem {
                 case '$':
                 case '@':
                 case '%':
-                    if (inClass == 0 || (firstIndexInClass == i && ch == '^')) 
{
+                    if ((inClass == 0) || ((firstIndexInClass == i) && (ch == 
'^'))) {
                         sb.append('\\');
                     }
                     sb.append(ch);
                     break;
                 case '!':
-                    sb.append(firstIndexInClass == i ? '^' : '!');
+                    sb.append((firstIndexInClass == i) ? '^' : '!');
                     break;
                 case '{':
                     inGroup++;
@@ -223,7 +224,7 @@ public abstract class BaseFileSystem<T extends Path> 
extends FileSystem {
                     sb.append(')');
                     break;
                 case ',':
-                    sb.append(inGroup > 0 ? '|' : ',');
+                    sb.append((inGroup > 0) ? '|' : ',');
                     break;
                 default:
                     sb.append(ch);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/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 e12b0bb..893d145 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
@@ -182,13 +182,11 @@ public class SocksProxy extends AbstractCloseable 
implements IoHandler {
 
         private String getNTString(Buffer buffer) {
             StringBuilder sb = new StringBuilder();
-            char c;
-            while ((c = (char) getUByte(buffer)) != 0) {
+            for (char c = (char) getUByte(buffer); c != '\0'; c = (char) 
getUByte(buffer)) {
                 sb.append(c);
             }
             return sb.toString();
         }
-
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java 
b/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
index 3b20642..a7e46f9 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
@@ -62,7 +62,7 @@ import 
org.apache.sshd.common.util.logging.AbstractLoggingBean;
 /**
  * @author <a href="mailto:d...@mina.apache.org";>Apache MINA SSHD Project</a>
  */
-@SuppressWarnings("OctalInteger")
+@SuppressWarnings("PMD.AvoidUsingOctalValues")
 public class ScpHelper extends AbstractLoggingBean implements 
SessionHolder<Session> {
     /**
      * Command prefix used to identify SCP commands

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
index eccb87f..ac2b272 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
@@ -796,8 +796,9 @@ public abstract class AbstractSession extends 
AbstractKexFactoryManager implemen
                     log.debug("handleNewKeys({}) Dequeing {} pending packets", 
this, pendingPackets.size());
                 }
                 synchronized (encodeLock) {
-                    PendingWriteFuture future;
-                    while ((future = pendingPackets.poll()) != null) {
+                    for (PendingWriteFuture future = pendingPackets.poll();
+                            future != null;
+                            future = pendingPackets.poll()) {
                         doWritePacket(future.getBuffer()).addListener(future);
                     }
                 }
@@ -923,7 +924,7 @@ public abstract class AbstractSession extends 
AbstractKexFactoryManager implemen
         // if anyone waiting for global response notify them about the closing 
session
         synchronized (requestResult) {
             requestResult.set(GenericUtils.NULL);
-            requestResult.notify();
+            requestResult.notifyAll();
         }
 
         // Fire 'close' event
@@ -2073,7 +2074,7 @@ public abstract class AbstractSession extends 
AbstractKexFactoryManager implemen
         synchronized (requestResult) {
             requestResult.set(resultBuf);
             resetIdleTimeout();
-            requestResult.notify();
+            requestResult.notifyAll();
         }
     }
 
@@ -2087,7 +2088,7 @@ public abstract class AbstractSession extends 
AbstractKexFactoryManager implemen
         synchronized (requestResult) {
             requestResult.set(GenericUtils.NULL);
             resetIdleTimeout();
-            requestResult.notify();
+            requestResult.notifyAll();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java
 
b/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java
index 39ca03d..ad6234c 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/SftpConstants.java
@@ -27,7 +27,7 @@ import org.apache.sshd.common.util.logging.LoggingUtils;
 /**
  * @author <a href="mailto:d...@mina.apache.org";>Apache MINA SSHD Project</a>
  */
-@SuppressWarnings("OctalInteger")
+@SuppressWarnings("PMD.AvoidUsingOctalValues")
 public final class SftpConstants {
     public static final String SFTP_SUBSYSTEM_NAME = "sftp";
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java 
b/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
index 839eb7e..7fa1927 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
@@ -362,8 +362,8 @@ public final class SelectorUtils {
      * @return <code>true</code> if the string matches against the pattern,
      * or <code>false</code> otherwise.
      */
-    public static boolean match(String pattern, String str,
-                                boolean isCaseSensitive) {
+    @SuppressWarnings("PMD.AssignmentInOperand")
+    public static boolean match(String pattern, String str, boolean 
isCaseSensitive) {
         char[] patArr = pattern.toCharArray();
         char[] strArr = str.toCharArray();
         int patIdxStart = 0;
@@ -387,7 +387,7 @@ public final class SelectorUtils {
             }
             for (int i = 0; i <= patIdxEnd; i++) {
                 ch = patArr[i];
-                if (ch != '?' && !equals(ch, strArr[i], isCaseSensitive)) {
+                if ((ch != '?') && (!equals(ch, strArr[i], isCaseSensitive))) {
                     return false; // Character mismatch
                 }
             }
@@ -400,14 +400,15 @@ public final class SelectorUtils {
 
         // Process characters before first star
         // CHECKSTYLE:OFF
-        while ((ch = patArr[patIdxStart]) != '*' && strIdxStart <= strIdxEnd) {
-            if (ch != '?' && !equals(ch, strArr[strIdxStart], 
isCaseSensitive)) {
+        while (((ch = patArr[patIdxStart]) != '*') && (strIdxStart <= 
strIdxEnd)) {
+            if ((ch != '?') && (!equals(ch, strArr[strIdxStart], 
isCaseSensitive))) {
                 return false; // Character mismatch
             }
             patIdxStart++;
             strIdxStart++;
         }
         // CHECKSTYLE:ON
+
         if (strIdxStart > strIdxEnd) {
             // All characters in the string are used. Check if only '*'s are
             // left in the pattern. If so, we succeeded. Otherwise failure.
@@ -421,14 +422,15 @@ public final class SelectorUtils {
 
         // Process characters after last star
         // CHECKSTYLE:OFF
-        while ((ch = patArr[patIdxEnd]) != '*' && strIdxStart <= strIdxEnd) {
-            if (ch != '?' && !equals(ch, strArr[strIdxEnd], isCaseSensitive)) {
+        while (((ch = patArr[patIdxEnd]) != '*') && (strIdxStart <= 
strIdxEnd)) {
+            if ((ch != '?') && (!equals(ch, strArr[strIdxEnd], 
isCaseSensitive))) {
                 return false; // Character mismatch
             }
             patIdxEnd--;
             strIdxEnd--;
         }
         // CHECKSTYLE:ON
+
         if (strIdxStart > strIdxEnd) {
             // All characters in the string are used. Check if only '*'s are
             // left in the pattern. If so, we succeeded. Otherwise failure.
@@ -440,9 +442,8 @@ public final class SelectorUtils {
             return true;
         }
 
-        // process pattern between stars. padIdxStart and patIdxEnd point
-        // always to a '*'.
-        while (patIdxStart != patIdxEnd && strIdxStart <= strIdxEnd) {
+        // process pattern between stars. padIdxStart and patIdxEnd point 
always to a '*'.
+        while ((patIdxStart != patIdxEnd) && (strIdxStart <= strIdxEnd)) {
             int patIdxTmp = -1;
             for (int i = patIdxStart + 1; i <= patIdxEnd; i++) {
                 if (patArr[i] == '*') {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/BufferUtils.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/BufferUtils.java 
b/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/BufferUtils.java
index 8b111ca..c13cd9e 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/BufferUtils.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/BufferUtils.java
@@ -483,6 +483,7 @@ public final class BufferUtils {
         }
     }
 
+    @SuppressWarnings("PMD.AssignmentInOperand")
     public static boolean equals(byte[] a1, int a1Offset, byte[] a2, int 
a2Offset, int length) {
         int len1 = NumberUtils.length(a1);
         int len2 = NumberUtils.length(a2);
@@ -495,6 +496,7 @@ public final class BufferUtils {
                 return false;
             }
         }
+
         return true;
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/util/io/DirectoryScanner.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/util/io/DirectoryScanner.java 
b/sshd-core/src/main/java/org/apache/sshd/common/util/io/DirectoryScanner.java
index 0748aa6..6cd8ad9 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/common/util/io/DirectoryScanner.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/common/util/io/DirectoryScanner.java
@@ -358,6 +358,7 @@ public class DirectoryScanner {
      * @param max  maximum number of values to replace, or <code>-1</code> if 
no maximum
      * @return the text with any replacements processed
      */
+    @SuppressWarnings("PMD.AssignmentInOperand")
     public static String replace(String text, String repl, String with, int 
max) {
         if ((text == null) || (repl == null) || (with == null) || 
(repl.length() == 0)) {
             return text;
@@ -365,8 +366,7 @@ public class DirectoryScanner {
 
         StringBuilder buf = new StringBuilder(text.length());
         int start = 0;
-        int end;
-        while ((end = text.indexOf(repl, start)) != -1) {
+        for (int end = text.indexOf(repl, start); end != -1; end = 
text.indexOf(repl, start)) {
             buf.append(text.substring(start, end)).append(with);
             start = end + repl.length();
 
@@ -377,5 +377,4 @@ public class DirectoryScanner {
         buf.append(text.substring(start));
         return buf.toString();
     }
-
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/common/util/io/IoUtils.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/util/io/IoUtils.java 
b/sshd-core/src/main/java/org/apache/sshd/common/util/io/IoUtils.java
index 3f9bfcd..10aa59a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/io/IoUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/io/IoUtils.java
@@ -124,11 +124,11 @@ public final class IoUtils {
     public static long copy(InputStream source, OutputStream sink, int 
bufferSize) throws IOException {
         long nread = 0L;
         byte[] buf = new byte[bufferSize];
-        int n;
-        while ((n = source.read(buf)) > 0) {
+        for (int n = source.read(buf); n > 0; n = source.read(buf)) {
             sink.write(buf, 0, n);
             nread += n;
         }
+
         return nread;
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/server/auth/gss/GSSAuthenticator.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/server/auth/gss/GSSAuthenticator.java 
b/sshd-core/src/main/java/org/apache/sshd/server/auth/gss/GSSAuthenticator.java
index 7a97ab6..f9540f8 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/server/auth/gss/GSSAuthenticator.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/server/auth/gss/GSSAuthenticator.java
@@ -36,23 +36,23 @@ import org.ietf.jgss.GSSManager;
  */
 
 public class GSSAuthenticator {
-
     // Options:
     //
     // Service principal name: if unset, use host/hostname
-
     private String servicePrincipalName;
 
     // Location of Kerberos key table; if unset use default
-
     private String keytabFile;
 
+    public GSSAuthenticator() {
+        super();
+    }
+
     /**
      * Overridable method to get GSS manager suitable for current environment.
      *
      * @return A new manager
      */
-
     public GSSManager getGSSManager() {
         return GSSManager.getInstance();
     }
@@ -67,11 +67,8 @@ public class GSSAuthenticator {
      * @throws LoginException       If the subject could not be found
      * @throws GSSException         If the credential could not be obtained
      */
-
     public GSSCredential getGSSCredential(GSSManager mgr) throws 
UnknownHostException, LoginException, GSSException {
-
         String name = servicePrincipalName;
-
         if (name == null) {
             name = "host/" + InetAddress.getLocalHost().getCanonicalHostName();
         }
@@ -87,7 +84,6 @@ public class GSSAuthenticator {
      * @param user    The user name from the initial request
      * @return <code>true</code> if the user is valid, <code>false</code> if 
invalid
      */
-
     public boolean validateInitialUser(ServerSession session, String user) {
         return true;
     }
@@ -100,7 +96,6 @@ public class GSSAuthenticator {
      * @param identity The identity from the GSS context
      * @return <code>true</code> if the identity is valid, <code>false</code> 
if invalid
      */
-
     public boolean validateIdentity(ServerSession session, String identity) {
         return true;
     }
@@ -110,7 +105,6 @@ public class GSSAuthenticator {
      *
      * @param servicePrincipalName The principal name
      */
-
     public void setServicePrincipalName(String servicePrincipalName) {
         this.servicePrincipalName = servicePrincipalName;
     }
@@ -120,7 +114,6 @@ public class GSSAuthenticator {
      *
      * @param keytabFile The location of the keytab
      */
-
     public void setKeytabFile(String keytabFile) {
         this.keytabFile = keytabFile;
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java 
b/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java
index edc08d7..79bf988 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java
@@ -45,13 +45,13 @@ public final class Moduli {
 
     // Private constructor
     private Moduli() {
+        throw new UnsupportedOperationException("No instance allowed");
     }
 
     public static List<DhGroup> parseModuli(URL url) throws IOException {
         List<DhGroup> groups = new ArrayList<>();
         try (BufferedReader r = new BufferedReader(new 
InputStreamReader(url.openStream(), StandardCharsets.UTF_8))) {
-            String line;
-            while ((line = r.readLine()) != null) {
+            for (String line = r.readLine(); line != null; line = 
r.readLine()) {
                 line = line.trim();
                 if (line.startsWith("#")) {
                     continue;
@@ -87,6 +87,7 @@ public final class Moduli {
                 group.p = new BigInteger(parts[6], 16);
                 groups.add(group);
             }
+
             return groups;
         }
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/server/session/ServerUserAuthService.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerUserAuthService.java
 
b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerUserAuthService.java
index c33261e..0c58a52 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerUserAuthService.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerUserAuthService.java
@@ -171,7 +171,8 @@ public class ServerUserAuthService extends 
AbstractCloseable implements Service,
                 this.authUserName = username;
                 this.authService = service;
             } else if (this.authUserName.equals(username) && 
this.authService.equals(service)) {
-                if (nbAuthRequests++ > maxAuthRequests) {
+                nbAuthRequests++;
+                if (nbAuthRequests > maxAuthRequests) {
                     
session.disconnect(SshConstants.SSH2_DISCONNECT_PROTOCOL_ERROR, "Too many 
authentication failures: " + nbAuthRequests);
                     return;
                 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/main/java/org/apache/sshd/server/shell/TtyFilterOutputStream.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/server/shell/TtyFilterOutputStream.java
 
b/sshd-core/src/main/java/org/apache/sshd/server/shell/TtyFilterOutputStream.java
index 85e4707..2dd380a 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/server/shell/TtyFilterOutputStream.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/server/shell/TtyFilterOutputStream.java
@@ -66,12 +66,12 @@ public class TtyFilterOutputStream extends 
FilterOutputStream {
         }
     }
 
-    @SuppressWarnings("StatementWithEmptyBody")
     protected void handleCR() throws IOException {
         if (ttyOptions.contains(PtyMode.ICRNL)) {
             writeRawOutput('\n');   // Map CR to NL on input
         } else if (ttyOptions.contains(PtyMode.IGNCR)) {
             // Ignore CR on input
+            return;
         } else {
             writeRawOutput('\r');
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/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 7b30c7f..4968282 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
@@ -980,6 +980,7 @@ public class ClientTest extends BaseTestSupport {
 
         try (ClientSession session = createTestClientSession()) {
             // nothing extra
+            assertNotNull(session);
         } finally {
             client.stop();
         }
@@ -1009,6 +1010,7 @@ public class ClientTest extends BaseTestSupport {
 
         try (ClientSession session = createTestClientSession()) {
             // nothing extra
+            assertNotNull(session);
         } finally {
             client.stop();
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/test/java/org/apache/sshd/client/subsystem/sftp/SftpTest.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/test/java/org/apache/sshd/client/subsystem/sftp/SftpTest.java 
b/sshd-core/src/test/java/org/apache/sshd/client/subsystem/sftp/SftpTest.java
index f833b82..f2b9df9 100644
--- 
a/sshd-core/src/test/java/org/apache/sshd/client/subsystem/sftp/SftpTest.java
+++ 
b/sshd-core/src/test/java/org/apache/sshd/client/subsystem/sftp/SftpTest.java
@@ -1438,10 +1438,8 @@ public class SftpTest extends 
AbstractSftpClientTestSupport {
 
         try (ByteArrayOutputStream bos = new ByteArrayOutputStream();
              InputStream is = c.get(path)) {
-
             byte[] buffer = new byte[256];
-            int count;
-            while (-1 != (count = is.read(buffer))) {
+            for (int count = is.read(buffer); count != -1; count = 
is.read(buffer)) {
                 bos.write(buffer, 0, count);
             }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/test/java/org/apache/sshd/common/util/SttySupportTest.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/test/java/org/apache/sshd/common/util/SttySupportTest.java 
b/sshd-core/src/test/java/org/apache/sshd/common/util/SttySupportTest.java
index 47da098..50c8d63 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/util/SttySupportTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/util/SttySupportTest.java
@@ -37,6 +37,9 @@ import org.junit.runners.MethodSorters;
  */
 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class SttySupportTest extends BaseTestSupport {
+    public SttySupportTest() {
+        super();
+    }
 
     @Test
     public void parseOutput1() throws Exception {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/AbstractGeneratorHostKeyProviderTest.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/AbstractGeneratorHostKeyProviderTest.java
 
b/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/AbstractGeneratorHostKeyProviderTest.java
index 96ddfc6..28879ed 100644
--- 
a/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/AbstractGeneratorHostKeyProviderTest.java
+++ 
b/sshd-core/src/test/java/org/apache/sshd/server/keyprovider/AbstractGeneratorHostKeyProviderTest.java
@@ -18,31 +18,32 @@
  */
 package org.apache.sshd.server.keyprovider;
 
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.security.GeneralSecurityException;
 import java.security.KeyPair;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.sshd.util.test.BaseTestSupport;
 import org.junit.FixMethodOrder;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
 import org.junit.runners.MethodSorters;
 
 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class AbstractGeneratorHostKeyProviderTest extends BaseTestSupport {
-
-    @Rule
-    public TemporaryFolder temporaryFolder = new TemporaryFolder();
+    public AbstractGeneratorHostKeyProviderTest() {
+        super();
+    }
 
     @SuppressWarnings("synthetic-access")
     @Test
     public void testOverwriteKey() throws Exception {
-        File keyPairFile = temporaryFolder.newFile();
+        Path tempDir = 
assertHierarchyTargetFolderExists(getTempTargetFolder());
+        Path keyPairFile = tempDir.resolve(getCurrentTestName() + ".key");
+        Files.deleteIfExists(keyPairFile);
 
         TestProvider provider = new TestProvider(keyPairFile);
         provider.loadKeys();
@@ -57,9 +58,9 @@ public class AbstractGeneratorHostKeyProviderTest extends 
BaseTestSupport {
     private static final class TestProvider extends 
AbstractGeneratorHostKeyProvider {
         private final AtomicInteger writes = new AtomicInteger(0);
 
-        private TestProvider(File file) {
+        private TestProvider(Path file) {
             setKeySize(512);
-            setPath(file.toPath());
+            setPath(file);
         }
 
         @Override
@@ -76,5 +77,4 @@ public class AbstractGeneratorHostKeyProviderTest extends 
BaseTestSupport {
             return writes.get();
         }
     }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java 
b/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java
index 3c8fc83..cef9579 100644
--- 
a/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java
+++ 
b/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java
@@ -44,6 +44,9 @@ import org.apache.sshd.server.channel.ChannelSession;
  * @author <a href="mailto:d...@mina.apache.org";>Apache MINA SSHD Project</a>
  */
 public class AsyncEchoShellFactory implements Factory<Command> {
+    public AsyncEchoShellFactory() {
+        super();
+    }
 
     @Override
     public Command create() {
@@ -51,7 +54,6 @@ public class AsyncEchoShellFactory implements 
Factory<Command> {
     }
 
     public static class EchoShell implements AsyncCommand, 
ChannelDataReceiver, ChannelSessionAware {
-
         private IoOutputStream out;
         private IoOutputStream err;
         private ExitCallback callback;
@@ -59,6 +61,10 @@ public class AsyncEchoShellFactory implements 
Factory<Command> {
         private ChannelSession session;
         private StringBuilder buffer = new StringBuilder();
 
+        public EchoShell() {
+            super();
+        }
+
         public IoOutputStream getOut() {
             return out;
         }
@@ -132,8 +138,8 @@ public class AsyncEchoShellFactory implements 
Factory<Command> {
             buffer.append(new String(buf, start, len, StandardCharsets.UTF_8));
             for (int i = 0; i < buffer.length(); i++) {
                 if (buffer.charAt(i) == '\n') {
-                    final String s = buffer.substring(0, i + 1);
-                    final byte[] bytes = s.getBytes(StandardCharsets.UTF_8);
+                    String s = buffer.substring(0, i + 1);
+                    byte[] bytes = s.getBytes(StandardCharsets.UTF_8);
                     out.write(new ByteArrayBuffer(bytes)).addListener(future 
-> {
                         Session session1 = channel.getSession();
                         if (future.isWritten()) {
@@ -155,5 +161,4 @@ public class AsyncEchoShellFactory implements 
Factory<Command> {
             return 0;
         }
     }
-
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-core/src/test/java/org/apache/sshd/util/test/BogusEnvironment.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/test/java/org/apache/sshd/util/test/BogusEnvironment.java 
b/sshd-core/src/test/java/org/apache/sshd/util/test/BogusEnvironment.java
index 7181429..86d5261 100644
--- a/sshd-core/src/test/java/org/apache/sshd/util/test/BogusEnvironment.java
+++ b/sshd-core/src/test/java/org/apache/sshd/util/test/BogusEnvironment.java
@@ -28,6 +28,9 @@ import org.apache.sshd.server.Signal;
 import org.apache.sshd.server.SignalListener;
 
 public class BogusEnvironment implements Environment {
+    public BogusEnvironment() {
+        super();
+    }
 
     @Override
     public Map<String, String> getEnv() {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9dbe5fe0/sshd-pmd-ruleset.xml
----------------------------------------------------------------------
diff --git a/sshd-pmd-ruleset.xml b/sshd-pmd-ruleset.xml
index 39f6bfd..884aace 100644
--- a/sshd-pmd-ruleset.xml
+++ b/sshd-pmd-ruleset.xml
@@ -9,15 +9,33 @@
    </description> 
 
        <!-- See https://pmd.github.io/pmd-5.6.1/pmd-java/rules/index.html --> 
+   <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators" /> 
+   <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues" /> 
    <rule ref="rulesets/java/basic.xml/BooleanInstantiation" /> 
+   <rule ref="rulesets/java/basic.xml/BrokenNullCheck" /> 
    <rule ref="rulesets/java/basic.xml/ExtendsObject" /> 
+   <rule ref="rulesets/java/basic.xml/MisplacedNullCheck" /> 
+   <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode" /> 
+   <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock" /> 
+   <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement" /> 
 
    <rule ref="rulesets/java/braces.xml" /> 
 
    <rule ref="rulesets/java/clone.xml/ProperCloneImplementation" /> 
    <rule ref="rulesets/java/clone.xml/CloneMethodMustImplementCloneable" /> 
 
+   <rule ref="rulesets/java/controversial.xml/AssignmentInOperand" /> 
+   <rule ref="rulesets/java/controversial.xml/AtLeastOneConstructor" /> 
+
+   <rule ref="rulesets/java/design.xml/UseNotifyAllInsteadOfNotify" /> 
+
+   <rule ref="rulesets/java/empty.xml"> 
+       <exclude name="EmptyCatchBlock" />  <!-- Enforced by checkstyle --> 
+   </rule> 
+
+   <rule ref="rulesets/java/finalizers.xml" /> 
+
    <rule ref="rulesets/java/javabeans.xml/MissingSerialVersionUID" /> 
 
-   <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace" /> 
+   <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace" />
 </ruleset>
\ No newline at end of file

Reply via email to