You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/09/20 19:04:56 UTC

[commons-net] branch master updated (bc5fb9e -> 6c57c41)

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

ggregory pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git.


    from bc5fb9e  Java 7 won't simply build on Maven on GitHub.
     new 0892203  Use Java 7 diamonds.
     new 7a561ed  Use varg args syntax instead of explicit arrays.
     new 47e0dd9  Remove extra ';'.
     new 9148126  Merge identical blocks.
     new 93b9cf4  Always use a back.
     new 1f1cb3c  Use for-each.
     new 7520397  Use final.
     new 36321b4  Add missing annotations.
     new 6c57c41  Remove redundant 'public', 'static' and 'final' keywords.

The 9 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/commons/net/DatagramSocketClient.java   |  12 +-
 .../apache/commons/net/DatagramSocketFactory.java  |   6 +-
 .../commons/net/DefaultDatagramSocketFactory.java  |   4 +-
 .../apache/commons/net/DefaultSocketFactory.java   |  30 +-
 .../commons/net/MalformedServerReplyException.java |   2 +-
 .../apache/commons/net/PrintCommandListener.java   |  28 +-
 .../apache/commons/net/ProtocolCommandEvent.java   |   4 +-
 .../commons/net/ProtocolCommandListener.java       |   4 +-
 .../apache/commons/net/ProtocolCommandSupport.java |  14 +-
 .../java/org/apache/commons/net/SocketClient.java  |  64 ++--
 .../org/apache/commons/net/bsd/RCommandClient.java |  30 +-
 .../org/apache/commons/net/bsd/RExecClient.java    |  12 +-
 .../org/apache/commons/net/bsd/RLoginClient.java   |   8 +-
 .../commons/net/chargen/CharGenUDPClient.java      |   4 +-
 .../commons/net/daytime/DaytimeTCPClient.java      |   2 +-
 .../commons/net/daytime/DaytimeUDPClient.java      |   4 +-
 .../commons/net/discard/DiscardUDPClient.java      |   6 +-
 .../org/apache/commons/net/echo/EchoUDPClient.java |   8 +-
 .../java/org/apache/commons/net/examples/Main.java |  19 +-
 .../net/examples/cidr/SubnetUtilsExample.java      |  12 +-
 .../commons/net/examples/ftp/FTPClientExample.java |  45 +--
 .../net/examples/ftp/ServerToServerFTP.java        |  16 +-
 .../commons/net/examples/ftp/TFTPExample.java      |  36 +--
 .../commons/net/examples/mail/IMAPExportMbox.java  |  52 ++--
 .../commons/net/examples/mail/IMAPImportMbox.java  |  42 +--
 .../apache/commons/net/examples/mail/IMAPMail.java |   6 +-
 .../commons/net/examples/mail/IMAPUtils.java       |   8 +-
 .../commons/net/examples/mail/POP3ExportMbox.java  |  44 +--
 .../apache/commons/net/examples/mail/POP3Mail.java |  30 +-
 .../apache/commons/net/examples/mail/SMTPMail.java |  10 +-
 .../apache/commons/net/examples/mail/Utils.java    |   8 +-
 .../commons/net/examples/nntp/ArticleReader.java   |  20 +-
 .../commons/net/examples/nntp/ExtendedNNTPOps.java |  24 +-
 .../commons/net/examples/nntp/ListNewsgroups.java  |  16 +-
 .../net/examples/nntp/MessageThreading.java        |  28 +-
 .../commons/net/examples/nntp/NNTPUtils.java       |   8 +-
 .../commons/net/examples/nntp/PostMessage.java     |   8 +-
 .../apache/commons/net/examples/ntp/NTPClient.java |  56 ++--
 .../commons/net/examples/ntp/SimpleNTPServer.java  |  22 +-
 .../commons/net/examples/ntp/TimeClient.java       |  14 +-
 .../net/examples/telnet/TelnetClientExample.java   |  64 ++--
 .../commons/net/examples/telnet/WeatherTelnet.java |   6 +-
 .../apache/commons/net/examples/unix/chargen.java  |  16 +-
 .../apache/commons/net/examples/unix/daytime.java  |  14 +-
 .../org/apache/commons/net/examples/unix/echo.java |  16 +-
 .../apache/commons/net/examples/unix/finger.java   |  12 +-
 .../apache/commons/net/examples/unix/fwhois.java   |   6 +-
 .../apache/commons/net/examples/unix/rdate.java    |  14 +-
 .../apache/commons/net/examples/unix/rexec.java    |  10 +-
 .../apache/commons/net/examples/unix/rlogin.java   |  10 +-
 .../apache/commons/net/examples/unix/rshell.java   |  10 +-
 .../apache/commons/net/examples/util/IOUtil.java   |   8 +-
 .../apache/commons/net/finger/FingerClient.java    |  16 +-
 .../org/apache/commons/net/ftp/Configurable.java   |   2 +-
 src/main/java/org/apache/commons/net/ftp/FTP.java  | 124 ++++----
 .../java/org/apache/commons/net/ftp/FTPClient.java | 322 ++++++++++-----------
 .../apache/commons/net/ftp/FTPClientConfig.java    |  74 ++---
 .../org/apache/commons/net/ftp/FTPCommand.java     |   4 +-
 .../net/ftp/FTPConnectionClosedException.java      |   2 +-
 .../java/org/apache/commons/net/ftp/FTPFile.java   |  38 +--
 .../commons/net/ftp/FTPFileEntryParserImpl.java    |   4 +-
 .../org/apache/commons/net/ftp/FTPFileFilter.java  |   2 +-
 .../org/apache/commons/net/ftp/FTPFileFilters.java |   6 +-
 .../org/apache/commons/net/ftp/FTPHTTPClient.java  |  40 +--
 .../apache/commons/net/ftp/FTPListParseEngine.java |  36 +--
 .../java/org/apache/commons/net/ftp/FTPReply.java  |  12 +-
 .../org/apache/commons/net/ftp/FTPSClient.java     |  86 +++---
 .../org/apache/commons/net/ftp/FTPSCommand.java    |   2 +-
 .../commons/net/ftp/FTPSServerSocketFactory.java   |  10 +-
 .../apache/commons/net/ftp/FTPSSocketFactory.java  |  18 +-
 .../apache/commons/net/ftp/FTPSTrustManager.java   |   6 +-
 .../net/ftp/parser/CompositeFileEntryParser.java   |  10 +-
 .../parser/ConfigurableFTPFileEntryParserImpl.java |  10 +-
 .../parser/DefaultFTPFileEntryParserFactory.java   |  24 +-
 .../ftp/parser/EnterpriseUnixFTPEntryParser.java   |  32 +-
 .../net/ftp/parser/FTPFileEntryParserFactory.java  |   4 +-
 .../commons/net/ftp/parser/FTPTimestampParser.java |   6 +-
 .../net/ftp/parser/FTPTimestampParserImpl.java     |  46 +--
 .../commons/net/ftp/parser/MLSxEntryParser.java    |  53 ++--
 .../commons/net/ftp/parser/MVSFTPEntryParser.java  |  40 +--
 .../net/ftp/parser/MacOsPeterFTPEntryParser.java   |  30 +-
 .../commons/net/ftp/parser/NTFTPEntryParser.java   |  20 +-
 .../net/ftp/parser/NetwareFTPEntryParser.java      |  20 +-
 .../commons/net/ftp/parser/OS2FTPEntryParser.java  |  18 +-
 .../net/ftp/parser/OS400FTPEntryParser.java        |  20 +-
 .../ftp/parser/ParserInitializationException.java  |   4 +-
 .../ftp/parser/RegexFTPFileEntryParserImpl.java    |  12 +-
 .../commons/net/ftp/parser/UnixFTPEntryParser.java |  38 +--
 .../commons/net/ftp/parser/VMSFTPEntryParser.java  |  32 +-
 .../ftp/parser/VMSVersioningFTPEntryParser.java    |  34 +--
 .../commons/net/imap/AuthenticatingIMAPClient.java |  48 +--
 .../java/org/apache/commons/net/imap/IMAP.java     |  46 +--
 .../org/apache/commons/net/imap/IMAPClient.java    |  44 +--
 .../org/apache/commons/net/imap/IMAPCommand.java   |  12 +-
 .../org/apache/commons/net/imap/IMAPReply.java     |  22 +-
 .../org/apache/commons/net/imap/IMAPSClient.java   |  32 +-
 .../org/apache/commons/net/io/CRLFLineReader.java  |   6 +-
 .../apache/commons/net/io/CopyStreamAdapter.java   |  14 +-
 .../org/apache/commons/net/io/CopyStreamEvent.java |   4 +-
 .../apache/commons/net/io/CopyStreamException.java |   6 +-
 .../apache/commons/net/io/CopyStreamListener.java  |   4 +-
 .../commons/net/io/DotTerminatedMessageReader.java |  12 +-
 .../commons/net/io/DotTerminatedMessageWriter.java |  12 +-
 .../commons/net/io/FromNetASCIIInputStream.java    |  10 +-
 .../commons/net/io/FromNetASCIIOutputStream.java   |  10 +-
 .../apache/commons/net/io/SocketInputStream.java   |   2 +-
 .../apache/commons/net/io/SocketOutputStream.java  |   4 +-
 .../commons/net/io/ToNetASCIIInputStream.java      |   6 +-
 .../commons/net/io/ToNetASCIIOutputStream.java     |   8 +-
 src/main/java/org/apache/commons/net/io/Util.java  |  52 ++--
 .../java/org/apache/commons/net/nntp/Article.java  |  36 +--
 .../apache/commons/net/nntp/ArticleIterator.java   |   4 +-
 .../java/org/apache/commons/net/nntp/NNTP.java     |  70 ++---
 .../org/apache/commons/net/nntp/NNTPClient.java    | 234 +++++++--------
 .../org/apache/commons/net/nntp/NNTPCommand.java   |   2 +-
 .../net/nntp/NNTPConnectionClosedException.java    |   2 +-
 .../org/apache/commons/net/nntp/NNTPReply.java     |  10 +-
 .../commons/net/nntp/NewGroupsOrNewsQuery.java     |   8 +-
 .../org/apache/commons/net/nntp/NewsgroupInfo.java |  10 +-
 .../apache/commons/net/nntp/NewsgroupIterator.java |   4 +-
 .../org/apache/commons/net/nntp/ReplyIterator.java |   8 +-
 .../apache/commons/net/nntp/SimpleNNTPHeader.java  |   8 +-
 .../apache/commons/net/nntp/ThreadContainer.java   |   2 +-
 .../org/apache/commons/net/nntp/Threadable.java    |  16 +-
 .../java/org/apache/commons/net/nntp/Threader.java |  48 +--
 .../org/apache/commons/net/ntp/NTPUDPClient.java   |  20 +-
 .../java/org/apache/commons/net/ntp/NtpUtils.java  |  16 +-
 .../java/org/apache/commons/net/ntp/NtpV3Impl.java |  74 ++---
 .../org/apache/commons/net/ntp/NtpV3Packet.java    | 108 +++----
 .../java/org/apache/commons/net/ntp/TimeInfo.java  |  36 +--
 .../java/org/apache/commons/net/ntp/TimeStamp.java |  50 ++--
 .../commons/net/pop3/ExtendedPOP3Client.java       |  24 +-
 .../java/org/apache/commons/net/pop3/POP3.java     |  22 +-
 .../org/apache/commons/net/pop3/POP3Client.java    |  30 +-
 .../org/apache/commons/net/pop3/POP3Command.java   |   2 +-
 .../apache/commons/net/pop3/POP3MessageInfo.java   |   6 +-
 .../org/apache/commons/net/pop3/POP3SClient.java   |  32 +-
 .../commons/net/smtp/AuthenticatingSMTPClient.java |  44 +--
 .../org/apache/commons/net/smtp/RelayPath.java     |   8 +-
 .../java/org/apache/commons/net/smtp/SMTP.java     |  44 +--
 .../org/apache/commons/net/smtp/SMTPClient.java    |  26 +-
 .../org/apache/commons/net/smtp/SMTPCommand.java   |   2 +-
 .../net/smtp/SMTPConnectionClosedException.java    |   2 +-
 .../org/apache/commons/net/smtp/SMTPReply.java     |  10 +-
 .../org/apache/commons/net/smtp/SMTPSClient.java   |  32 +-
 .../apache/commons/net/smtp/SimpleSMTPHeader.java  |   8 +-
 .../commons/net/telnet/EchoOptionHandler.java      |   4 +-
 .../net/telnet/InvalidTelnetOptionException.java   |   2 +-
 .../commons/net/telnet/SimpleOptionHandler.java    |  12 +-
 .../net/telnet/SuppressGAOptionHandler.java        |   4 +-
 .../java/org/apache/commons/net/telnet/Telnet.java | 104 +++----
 .../apache/commons/net/telnet/TelnetClient.java    |  30 +-
 .../apache/commons/net/telnet/TelnetCommand.java   |   4 +-
 .../commons/net/telnet/TelnetInputListener.java    |   2 +-
 .../commons/net/telnet/TelnetInputStream.java      |  34 +--
 .../net/telnet/TelnetNotificationHandler.java      |  12 +-
 .../apache/commons/net/telnet/TelnetOption.java    |   4 +-
 .../commons/net/telnet/TelnetOptionHandler.java    |  24 +-
 .../commons/net/telnet/TelnetOutputStream.java     |   6 +-
 .../net/telnet/TerminalTypeOptionHandler.java      |  16 +-
 .../net/telnet/WindowSizeOptionHandler.java        |  20 +-
 .../java/org/apache/commons/net/tftp/TFTP.java     |  16 +-
 .../org/apache/commons/net/tftp/TFTPAckPacket.java |   8 +-
 .../org/apache/commons/net/tftp/TFTPClient.java    |  70 ++---
 .../apache/commons/net/tftp/TFTPDataPacket.java    |  16 +-
 .../apache/commons/net/tftp/TFTPErrorPacket.java   |   8 +-
 .../org/apache/commons/net/tftp/TFTPPacket.java    |   8 +-
 .../commons/net/tftp/TFTPPacketException.java      |   2 +-
 .../commons/net/tftp/TFTPReadRequestPacket.java    |   6 +-
 .../apache/commons/net/tftp/TFTPRequestPacket.java |  14 +-
 .../commons/net/tftp/TFTPWriteRequestPacket.java   |   6 +-
 .../org/apache/commons/net/time/TimeUDPClient.java |   8 +-
 .../java/org/apache/commons/net/util/Base64.java   | 112 +++----
 .../java/org/apache/commons/net/util/Charsets.java |   4 +-
 .../apache/commons/net/util/KeyManagerUtils.java   |  42 +--
 .../org/apache/commons/net/util/ListenerList.java  |   6 +-
 .../apache/commons/net/util/SSLContextUtils.java   |   8 +-
 .../apache/commons/net/util/SSLSocketUtils.java    |  24 +-
 .../org/apache/commons/net/util/SubnetUtils.java   |  52 ++--
 .../apache/commons/net/util/TrustManagerUtils.java |  14 +-
 .../org/apache/commons/net/whois/WhoisClient.java  |   4 +-
 .../commons/net/SocketClientFunctionalTest.java    |   4 +-
 .../org/apache/commons/net/SocketClientTest.java   |   4 +-
 .../org/apache/commons/net/SubnetUtilsTest.java    |  76 ++---
 .../org/apache/commons/net/examples/MainTest.java  |  38 +--
 .../net/ftp/FTPClientConfigFunctionalTest.java     |  28 +-
 .../commons/net/ftp/FTPClientConfigTest.java       |  44 +--
 .../org/apache/commons/net/ftp/FTPClientTest.java  |  36 +--
 .../org/apache/commons/net/ftp/FTPCommandTest.java |   2 +-
 .../org/apache/commons/net/ftp/FTPSClientTest.java |  12 +-
 .../commons/net/ftp/ListingFunctionalTest.java     |  70 ++---
 .../apache/commons/net/ftp/TestConnectTimeout.java |   8 +-
 .../ftp/parser/CompositeFTPParseTestFramework.java |  30 +-
 .../DefaultFTPFileEntryParserFactoryTest.java      |  28 +-
 .../commons/net/ftp/parser/DownloadListings.java   |  30 +-
 .../parser/EnterpriseUnixFTPEntryParserTest.java   |  10 +-
 .../net/ftp/parser/FTPConfigEntryParserTest.java   |  16 +-
 .../net/ftp/parser/FTPParseTestFramework.java      |  32 +-
 .../net/ftp/parser/FTPTimestampParserImplTest.java | 192 ++++++------
 .../commons/net/ftp/parser/MLSDComparison.java     |  70 ++---
 .../net/ftp/parser/MLSxEntryParserTest.java        |   4 +-
 .../net/ftp/parser/MVSFTPEntryParserTest.java      |  44 +--
 .../ftp/parser/MacOsPeterFTPEntryParserTest.java   |  12 +-
 .../net/ftp/parser/NTFTPEntryParserTest.java       |  32 +-
 .../net/ftp/parser/NetwareFTPEntryParserTest.java  |  12 +-
 .../net/ftp/parser/OS2FTPEntryParserTest.java      |   8 +-
 .../parser/OS400FTPEntryParserAdditionalTest.java  |  12 +-
 .../net/ftp/parser/OS400FTPEntryParserTest.java    |  16 +-
 .../net/ftp/parser/UnixFTPEntryParserTest.java     |  70 ++---
 .../net/ftp/parser/VMSFTPEntryParserTest.java      |  28 +-
 .../java/org/apache/commons/net/imap/IMAPTest.java |   6 +-
 .../commons/net/io/ToNetASCIIInputStreamTest.java  |  20 +-
 .../org/apache/commons/net/nntp/TestThreader.java  |  24 +-
 .../org/apache/commons/net/ntp/TestNtpClient.java  |  22 +-
 .../org/apache/commons/net/ntp/TestNtpPacket.java  |  36 +--
 .../org/apache/commons/net/ntp/TestTimeInfo.java   |  36 +--
 .../org/apache/commons/net/ntp/TimeStampTest.java  |  26 +-
 .../commons/net/pop3/POP3ClientCommandsTest.java   |  26 +-
 .../apache/commons/net/pop3/POP3ClientTest.java    |   2 +-
 .../commons/net/pop3/POP3ConstructorTest.java      |   8 +-
 .../commons/net/smtp/SimpleSMTPHeaderTestCase.java |  30 +-
 .../commons/net/telnet/EchoOptionHandlerTest.java  |   8 +-
 .../net/telnet/SimpleOptionHandlerTest.java        |   8 +-
 .../net/telnet/SuppressGAOptionHandlerTest.java    |   8 +-
 .../net/telnet/TelnetClientFunctionalTest.java     |  12 +-
 .../commons/net/telnet/TelnetClientTest.java       | 190 ++++++------
 .../commons/net/telnet/TelnetTestResponder.java    |  12 +-
 .../commons/net/telnet/TelnetTestSimpleServer.java |  14 +-
 .../net/telnet/TerminalTypeOptionHandlerTest.java  |  16 +-
 .../net/telnet/WindowSizeOptionHandlerTest.java    |  22 +-
 .../org/apache/commons/net/tftp/TFTPServer.java    | 106 +++----
 .../apache/commons/net/tftp/TFTPServerMain.java    |  24 +-
 .../commons/net/tftp/TFTPServerPathTest.java       |  38 +--
 .../java/org/apache/commons/net/tftp/TFTPTest.java |  34 +--
 .../apache/commons/net/time/TimeTCPClientTest.java |  14 +-
 .../commons/net/time/TimeTestSimpleServer.java     |  18 +-
 .../org/apache/commons/net/util/Base64Test.java    |  12 +-
 .../java/org/apache/commons/net/util/UtilTest.java |  56 ++--
 238 files changed, 3062 insertions(+), 3061 deletions(-)


[commons-net] 01/09: Use Java 7 diamonds.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 089220322e79ed4a1f1bbc9291e8633d24282ae0
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 14:55:09 2020 -0400

    Use Java 7 diamonds.
---
 .../org/apache/commons/net/examples/mail/IMAPExportMbox.java   |  2 +-
 .../java/org/apache/commons/net/examples/mail/SMTPMail.java    |  2 +-
 .../java/org/apache/commons/net/examples/nntp/NNTPUtils.java   |  2 +-
 src/main/java/org/apache/commons/net/ftp/FTP.java              |  2 +-
 src/main/java/org/apache/commons/net/ftp/FTPClient.java        |  8 ++++----
 src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java  |  2 +-
 src/main/java/org/apache/commons/net/ftp/FTPHTTPClient.java    |  2 +-
 .../java/org/apache/commons/net/ftp/FTPListParseEngine.java    | 10 +++++-----
 .../org/apache/commons/net/ftp/parser/MLSxEntryParser.java     |  2 +-
 .../commons/net/ftp/parser/VMSVersioningFTPEntryParser.java    |  2 +-
 src/main/java/org/apache/commons/net/imap/IMAP.java            |  2 +-
 src/main/java/org/apache/commons/net/nntp/Article.java         |  2 +-
 src/main/java/org/apache/commons/net/nntp/NNTPClient.java      |  6 +++---
 src/main/java/org/apache/commons/net/nntp/Threader.java        |  4 ++--
 src/main/java/org/apache/commons/net/ntp/TimeInfo.java         |  4 ++--
 src/main/java/org/apache/commons/net/pop3/POP3.java            |  2 +-
 src/main/java/org/apache/commons/net/smtp/RelayPath.java       |  2 +-
 src/main/java/org/apache/commons/net/util/ListenerList.java    |  2 +-
 .../apache/commons/net/ftp/FTPClientConfigFunctionalTest.java  |  2 +-
 .../apache/commons/net/ftp/parser/MVSFTPEntryParserTest.java   |  4 ++--
 src/test/java/org/apache/commons/net/tftp/TFTPServer.java      |  2 +-
 src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java  |  2 +-
 22 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java b/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java
index 1b3b15c..7b13f08 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java
@@ -332,7 +332,7 @@ public final class IMAPExportMbox
         private final BufferedWriter bw;
         volatile int total = 0;
         volatile String lastFetched;
-        volatile List<String> missingIds = new ArrayList<String>();
+        volatile List<String> missingIds = new ArrayList<>();
         volatile long lastSeq = -1;
         private final String eol;
         private final SimpleDateFormat DATE_FORMAT // for mbox From_ lines
diff --git a/src/main/java/org/apache/commons/net/examples/mail/SMTPMail.java b/src/main/java/org/apache/commons/net/examples/mail/SMTPMail.java
index adf26ed..eac3dbc 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/SMTPMail.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/SMTPMail.java
@@ -45,7 +45,7 @@ public final class SMTPMail
     public static void main(String[] args)
     {
         String sender, recipient, subject, fileName, server, cc;
-        List<String> ccList = new ArrayList<String>();
+        List<String> ccList = new ArrayList<>();
         BufferedReader stdin;
         FileReader fileReader = null;
         Writer writer;
diff --git a/src/main/java/org/apache/commons/net/examples/nntp/NNTPUtils.java b/src/main/java/org/apache/commons/net/examples/nntp/NNTPUtils.java
index a1f8afb..2db46c4 100644
--- a/src/main/java/org/apache/commons/net/examples/nntp/NNTPUtils.java
+++ b/src/main/java/org/apache/commons/net/examples/nntp/NNTPUtils.java
@@ -38,7 +38,7 @@ public class NNTPUtils {
      */
     public  static List<Article> getArticleInfo(NNTPClient client, long lowArticleNumber, long highArticleNumber)
     throws IOException {
-        List<Article> articles = new ArrayList<Article>();
+        List<Article> articles = new ArrayList<>();
         Iterable<Article> arts = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);
         for(Article article : arts){
             articles.add(article);
diff --git a/src/main/java/org/apache/commons/net/ftp/FTP.java b/src/main/java/org/apache/commons/net/ftp/FTP.java
index bc62e15..8745692 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTP.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTP.java
@@ -269,7 +269,7 @@ public class FTP extends SocketClient
     {
         super();
         setDefaultPort(DEFAULT_PORT);
-        _replyLines = new ArrayList<String>();
+        _replyLines = new ArrayList<>();
         _newReplyString = false;
         _replyString = null;
         _controlEncoding = DEFAULT_CONTROL_ENCODING;
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPClient.java b/src/main/java/org/apache/commons/net/ftp/FTPClient.java
index 8b1379f..4555e62 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPClient.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPClient.java
@@ -973,7 +973,7 @@ implements Configurable
         // Exception claiming we're not connected
         if ( __autodetectEncoding )
         {
-            ArrayList<String> oldReplyLines = new ArrayList<String> (_replyLines);
+            ArrayList<String> oldReplyLines = new ArrayList<> (_replyLines);
             int oldReplyCode = _replyCode;
             if ( hasFeature("UTF8") || hasFeature("UTF-8")) // UTF8 appears to be the default
             {
@@ -2421,7 +2421,7 @@ implements Configurable
             }
             boolean success = FTPReply.isPositiveCompletion(replyCode);
             // we init the map here, so we don't keep trying if we know the command will fail
-            __featuresMap = new HashMap<String, Set<String>>();
+            __featuresMap = new HashMap<>();
             if (!success) {
                 return false;
             }
@@ -2439,7 +2439,7 @@ implements Configurable
                     key = key.toUpperCase(Locale.ENGLISH);
                     Set<String> entries = __featuresMap.get(key);
                     if (entries == null) {
-                        entries = new HashSet<String>();
+                        entries = new HashSet<>();
                         __featuresMap.put(key, entries);
                     }
                     entries.add(value);
@@ -2958,7 +2958,7 @@ implements Configurable
         BufferedReader reader =
             new BufferedReader(new InputStreamReader(socket.getInputStream(), getControlEncoding()));
 
-        ArrayList<String> results = new ArrayList<String>();
+        ArrayList<String> results = new ArrayList<>();
         String line;
         while ((line = reader.readLine()) != null) {
             results.add(line);
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java b/src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java
index ae8f593..10d56eb 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java
@@ -367,7 +367,7 @@ public class FTPClientConfig
         this.shortMonthNames = config.shortMonthNames;
     }
 
-    private static final Map<String, Object> LANGUAGE_CODE_MAP = new TreeMap<String, Object>();
+    private static final Map<String, Object> LANGUAGE_CODE_MAP = new TreeMap<>();
     static {
 
         // if there are other commonly used month name encodings which
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPHTTPClient.java b/src/main/java/org/apache/commons/net/ftp/FTPHTTPClient.java
index 2009449..d5f1114 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPHTTPClient.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPHTTPClient.java
@@ -205,7 +205,7 @@ public class FTPHTTPClient extends FTPClient {
         }
         output.write(CRLF);
 
-        List<String> response = new ArrayList<String>();
+        List<String> response = new ArrayList<>();
         BufferedReader reader = new BufferedReader(
                 new InputStreamReader(input, getCharset()));
 
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java b/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java
index 87eca30..b409915 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java
@@ -75,7 +75,7 @@ import org.apache.commons.net.util.Charsets;
  * uses this class transparently.
  */
 public class FTPListParseEngine {
-    private List<String> entries = new LinkedList<String>();
+    private List<String> entries = new LinkedList<>();
     private ListIterator<String> _internalIterator = entries.listIterator();
 
     private final FTPFileEntryParser parser;
@@ -114,7 +114,7 @@ public class FTPListParseEngine {
     public void readServerList(InputStream stream, String encoding)
     throws IOException
     {
-        this.entries = new LinkedList<String>();
+        this.entries = new LinkedList<>();
         readStream(stream, encoding);
         this.parser.preParse(this.entries);
         resetIterator();
@@ -173,7 +173,7 @@ public class FTPListParseEngine {
      * check each entry for null before referencing it.
      */
     public FTPFile[] getNext(int quantityRequested) {
-        List<FTPFile> tmpResults = new LinkedList<FTPFile>();
+        List<FTPFile> tmpResults = new LinkedList<>();
         int count = quantityRequested;
         while (count > 0 && this._internalIterator.hasNext()) {
             String entry = this._internalIterator.next();
@@ -215,7 +215,7 @@ public class FTPListParseEngine {
      * check each entry for null before referencing it.
      */
     public FTPFile[] getPrevious(int quantityRequested) {
-        List<FTPFile> tmpResults = new LinkedList<FTPFile>();
+        List<FTPFile> tmpResults = new LinkedList<>();
         int count = quantityRequested;
         while (count > 0 && this._internalIterator.hasPrevious()) {
             String entry = this._internalIterator.previous();
@@ -265,7 +265,7 @@ public class FTPListParseEngine {
     public FTPFile[] getFiles(FTPFileFilter filter)
     throws IOException // TODO remove; not actually thrown
     {
-        List<FTPFile> tmpResults = new ArrayList<FTPFile>();
+        List<FTPFile> tmpResults = new ArrayList<>();
         Iterator<String> iter = this.entries.iterator();
         while (iter.hasNext()) {
             String entry = iter.next();
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java
index 6cdf9ea..ee985c2 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java
@@ -59,7 +59,7 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
     // This class is immutable, so a single instance can be shared.
     private static final MLSxEntryParser PARSER = new MLSxEntryParser();
 
-    private static final HashMap<String, Integer> TYPE_TO_INT = new HashMap<String, Integer>();
+    private static final HashMap<String, Integer> TYPE_TO_INT = new HashMap<>();
     static {
         TYPE_TO_INT.put("file", Integer.valueOf(FTPFile.FILE_TYPE));
         TYPE_TO_INT.put("cdir", Integer.valueOf(FTPFile.DIRECTORY_TYPE)); // listed directory
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java
index ad445fd..2e2619a 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java
@@ -102,7 +102,7 @@ public class VMSVersioningFTPEntryParser extends VMSFTPEntryParser
      */
     @Override
     public List<String> preParse(List<String> original) {
-        HashMap<String, Integer> existingEntries = new HashMap<String, Integer>();
+        HashMap<String, Integer> existingEntries = new HashMap<>();
         ListIterator<String> iter = original.listIterator();
         while (iter.hasNext()) {
             String entry = iter.next().trim();
diff --git a/src/main/java/org/apache/commons/net/imap/IMAP.java b/src/main/java/org/apache/commons/net/imap/IMAP.java
index ddcca6a..9ac0290 100644
--- a/src/main/java/org/apache/commons/net/imap/IMAP.java
+++ b/src/main/java/org/apache/commons/net/imap/IMAP.java
@@ -121,7 +121,7 @@ public class IMAP extends SocketClient
         __state = IMAPState.DISCONNECTED_STATE;
         _reader = null;
         __writer = null;
-        _replyLines = new ArrayList<String>();
+        _replyLines = new ArrayList<>();
         createCommandSupport();
     }
 
diff --git a/src/main/java/org/apache/commons/net/nntp/Article.java b/src/main/java/org/apache/commons/net/nntp/Article.java
index ba23507..a2ad1b9 100644
--- a/src/main/java/org/apache/commons/net/nntp/Article.java
+++ b/src/main/java/org/apache/commons/net/nntp/Article.java
@@ -49,7 +49,7 @@ public class Article implements Threadable {
             return;
         }
         if (references == null) {
-            references = new ArrayList<String>();
+            references = new ArrayList<>();
         }
         isReply = true;
         for(String s : msgId.split(" ")) {
diff --git a/src/main/java/org/apache/commons/net/nntp/NNTPClient.java b/src/main/java/org/apache/commons/net/nntp/NNTPClient.java
index be3f0de..53e4fd8 100644
--- a/src/main/java/org/apache/commons/net/nntp/NNTPClient.java
+++ b/src/main/java/org/apache/commons/net/nntp/NNTPClient.java
@@ -247,7 +247,7 @@ public class NNTPClient extends NNTP
         BufferedReader reader = new DotTerminatedMessageReader(_reader_);
         // Start of with a big vector because we may be reading a very large
         // amount of groups.
-        Vector<NewsgroupInfo> list = new Vector<NewsgroupInfo>(2048);
+        Vector<NewsgroupInfo> list = new Vector<>(2048);
 
         String line;
         try {
@@ -791,7 +791,7 @@ public class NNTPClient extends NNTP
 
         BufferedReader reader = new DotTerminatedMessageReader(_reader_);
         String line;
-        ArrayList<String> list = new ArrayList<String>();
+        ArrayList<String> list = new ArrayList<>();
         while((line=reader.readLine()) != null) {
             list.add(line);
         }
@@ -1264,7 +1264,7 @@ public class NNTPClient extends NNTP
             return null;
         }
 
-        Vector<String> list = new Vector<String>();
+        Vector<String> list = new Vector<>();
         BufferedReader reader = new DotTerminatedMessageReader(_reader_);
 
         String line;
diff --git a/src/main/java/org/apache/commons/net/nntp/Threader.java b/src/main/java/org/apache/commons/net/nntp/Threader.java
index d638594..37244b9 100644
--- a/src/main/java/org/apache/commons/net/nntp/Threader.java
+++ b/src/main/java/org/apache/commons/net/nntp/Threader.java
@@ -57,7 +57,7 @@ public class Threader {
             return null;
         }
 
-        HashMap<String,ThreadContainer> idTable = new HashMap<String,ThreadContainer>();
+        HashMap<String,ThreadContainer> idTable = new HashMap<>();
 
         // walk through each Threadable element
         for (Threadable t : messages) {
@@ -309,7 +309,7 @@ public class Threader {
         }
 
         // TODO verify this will avoid rehashing
-        HashMap<String, ThreadContainer> subjectTable = new HashMap<String, ThreadContainer>((int) (count * 1.2), (float) 0.9);
+        HashMap<String, ThreadContainer> subjectTable = new HashMap<>((int) (count * 1.2), (float) 0.9);
         count = 0;
 
         for (ThreadContainer c = root.child; c != null; c = c.next) {
diff --git a/src/main/java/org/apache/commons/net/ntp/TimeInfo.java b/src/main/java/org/apache/commons/net/ntp/TimeInfo.java
index c3903b1..1af502b 100644
--- a/src/main/java/org/apache/commons/net/ntp/TimeInfo.java
+++ b/src/main/java/org/apache/commons/net/ntp/TimeInfo.java
@@ -120,7 +120,7 @@ public class TimeInfo {
     public void addComment(String comment)
     {
         if (_comments == null) {
-            _comments = new ArrayList<String>();
+            _comments = new ArrayList<>();
         }
         _comments.add(comment);
     }
@@ -136,7 +136,7 @@ public class TimeInfo {
         }
         _detailsComputed = true;
         if (_comments == null) {
-            _comments = new ArrayList<String>();
+            _comments = new ArrayList<>();
         }
 
         TimeStamp origNtpTime = _message.getOriginateTimeStamp();
diff --git a/src/main/java/org/apache/commons/net/pop3/POP3.java b/src/main/java/org/apache/commons/net/pop3/POP3.java
index 915c362..7868bbc 100644
--- a/src/main/java/org/apache/commons/net/pop3/POP3.java
+++ b/src/main/java/org/apache/commons/net/pop3/POP3.java
@@ -104,7 +104,7 @@ public class POP3 extends SocketClient
         __popState = DISCONNECTED_STATE;
         _reader = null;
         _writer = null;
-        _replyLines = new ArrayList<String>();
+        _replyLines = new ArrayList<>();
         _commandSupport_ = new ProtocolCommandSupport(this);
     }
 
diff --git a/src/main/java/org/apache/commons/net/smtp/RelayPath.java b/src/main/java/org/apache/commons/net/smtp/RelayPath.java
index 0fbe98d..5271b38 100644
--- a/src/main/java/org/apache/commons/net/smtp/RelayPath.java
+++ b/src/main/java/org/apache/commons/net/smtp/RelayPath.java
@@ -42,7 +42,7 @@ public final class RelayPath
      ***/
     public RelayPath(String emailAddress)
     {
-        _path = new Vector<String>();
+        _path = new Vector<>();
         _emailAddress = emailAddress;
     }
 
diff --git a/src/main/java/org/apache/commons/net/util/ListenerList.java b/src/main/java/org/apache/commons/net/util/ListenerList.java
index 10a3ffc..79857c7 100644
--- a/src/main/java/org/apache/commons/net/util/ListenerList.java
+++ b/src/main/java/org/apache/commons/net/util/ListenerList.java
@@ -33,7 +33,7 @@ public class ListenerList implements Serializable, Iterable<EventListener>
 
     public ListenerList()
     {
-        __listeners = new CopyOnWriteArrayList<EventListener>();
+        __listeners = new CopyOnWriteArrayList<>();
     }
 
     public void addListener(EventListener listener)
diff --git a/src/test/java/org/apache/commons/net/ftp/FTPClientConfigFunctionalTest.java b/src/test/java/org/apache/commons/net/ftp/FTPClientConfigFunctionalTest.java
index 26db09f..867149d 100644
--- a/src/test/java/org/apache/commons/net/ftp/FTPClientConfigFunctionalTest.java
+++ b/src/test/java/org/apache/commons/net/ftp/FTPClientConfigFunctionalTest.java
@@ -97,7 +97,7 @@ public class FTPClientConfigFunctionalTest extends TestCase {
     private TreeSet<FTPFile> getSortedList(FTPFile[] files) {
         // create a TreeSet which will sort each element
         // as it is added.
-        TreeSet<FTPFile> sorted = new TreeSet<FTPFile>(new Comparator<Object>() {
+        TreeSet<FTPFile> sorted = new TreeSet<>(new Comparator<Object>() {
 
             @Override
             public int compare(Object o1, Object o2) {
diff --git a/src/test/java/org/apache/commons/net/ftp/parser/MVSFTPEntryParserTest.java b/src/test/java/org/apache/commons/net/ftp/parser/MVSFTPEntryParserTest.java
index 768bae8..53cd2c1 100644
--- a/src/test/java/org/apache/commons/net/ftp/parser/MVSFTPEntryParserTest.java
+++ b/src/test/java/org/apache/commons/net/ftp/parser/MVSFTPEntryParserTest.java
@@ -102,7 +102,7 @@ public class MVSFTPEntryParserTest extends FTPParseTestFramework {
     }
 
     protected List<String[]> getAllGoodListings() {
-        List<String[]> l = new ArrayList<String[]>();
+        List<String[]> l = new ArrayList<>();
         l.add(goodsamplesDatasetList);
         l.add(goodsamplesMemberList);
         l.add(goodsamplesJES1List);
@@ -175,7 +175,7 @@ public class MVSFTPEntryParserTest extends FTPParseTestFramework {
 
     public void testUnixListings() {
         MVSFTPEntryParser parser = new MVSFTPEntryParser();
-        List<String> list = new ArrayList<String>();
+        List<String> list = new ArrayList<>();
         Collections.addAll(list, goodsamplesUnixList);
         parser.preParse(list);
         for (String test : list) {
diff --git a/src/test/java/org/apache/commons/net/tftp/TFTPServer.java b/src/test/java/org/apache/commons/net/tftp/TFTPServer.java
index 2778904..975b20a 100644
--- a/src/test/java/org/apache/commons/net/tftp/TFTPServer.java
+++ b/src/test/java/org/apache/commons/net/tftp/TFTPServer.java
@@ -86,7 +86,7 @@ public class TFTPServer implements Runnable
     private static final int DEFAULT_TFTP_PORT = 69;
     public static enum ServerMode { GET_ONLY, PUT_ONLY, GET_AND_PUT; }
 
-    private final HashSet<TFTPTransfer> transfers_ = new HashSet<TFTPTransfer>();
+    private final HashSet<TFTPTransfer> transfers_ = new HashSet<>();
     private volatile boolean shutdownServer = false;
     private TFTP serverTftp_;
     private File serverReadDirectory_;
diff --git a/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java b/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java
index ecb5809..abb6c25 100644
--- a/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java
+++ b/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java
@@ -41,7 +41,7 @@ public class TFTPServerMain {
     public static void main(String [] args) throws Exception {
         int port = 6901;
         int argc;
-        Map<String,String> opts = new HashMap<String,String>();
+        Map<String,String> opts = new HashMap<>();
         opts.put("-p", System.getProperty("java.io.tmpdir"));
         // Parse options
         for (argc = 0; argc < args.length; argc++)


[commons-net] 05/09: Always use a back.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 93b9cf46546583b7428da7ddc698280b86b0226c
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 14:59:32 2020 -0400

    Always use a back.
---
 src/test/java/org/apache/commons/net/tftp/TFTPServer.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/test/java/org/apache/commons/net/tftp/TFTPServer.java b/src/test/java/org/apache/commons/net/tftp/TFTPServer.java
index 975b20a..62983d4 100644
--- a/src/test/java/org/apache/commons/net/tftp/TFTPServer.java
+++ b/src/test/java/org/apache/commons/net/tftp/TFTPServer.java
@@ -234,7 +234,9 @@ public class TFTPServer implements Runnable
             Enumeration<InetAddress> ifaddrs = localiface.getInetAddresses();
             if (ifaddrs != null)
             {
-                if (ifaddrs.hasMoreElements()) iaddr = ifaddrs.nextElement();
+                if (ifaddrs.hasMoreElements()) {
+                    iaddr = ifaddrs.nextElement();
+                }
             }
         }
         log_ = (log == null ? nullStream: log);


[commons-net] 08/09: Add missing annotations.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 36321b49c2075777bc96c276c193ed8cccf290f3
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 15:01:34 2020 -0400

    Add missing annotations.
---
 src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java b/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java
index 02eb38f..e6d0973 100644
--- a/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java
+++ b/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java
@@ -120,6 +120,7 @@ public class TFTPServerMain {
                 }
             }
 
+            @Override
             TFTP newTFTP(){
                 if (verbose) {
                     return new TFTP() {
@@ -135,6 +136,7 @@ public class TFTPServerMain {
         };
 
         Runtime.getRuntime().addShutdownHook(new Thread() {
+            @Override
             public void run() {
                 System.out.println("Server shutting down");
                 tftpS.shutdown();


[commons-net] 09/09: Remove redundant 'public', 'static' and 'final' keywords.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 6c57c412f16ab4e0cf9d00d84f4e3ce5a39120f9
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 15:04:23 2020 -0400

    Remove redundant 'public', 'static' and 'final' keywords.
---
 .../apache/commons/net/DatagramSocketFactory.java  |   6 +-
 .../commons/net/ProtocolCommandListener.java       |   4 +-
 .../apache/commons/net/examples/mail/POP3Mail.java |   2 +-
 .../commons/net/examples/ntp/TimeClient.java       |   4 +-
 .../commons/net/examples/telnet/WeatherTelnet.java |   2 +-
 .../apache/commons/net/examples/unix/chargen.java  |   4 +-
 .../apache/commons/net/examples/unix/daytime.java  |   4 +-
 .../org/apache/commons/net/examples/unix/echo.java |   4 +-
 .../apache/commons/net/examples/unix/rdate.java    |   4 +-
 .../apache/commons/net/examples/util/IOUtil.java   |   2 +-
 .../org/apache/commons/net/ftp/Configurable.java   |   2 +-
 .../java/org/apache/commons/net/ftp/FTPClient.java |   2 +-
 .../org/apache/commons/net/ftp/FTPCommand.java     |   2 +-
 .../org/apache/commons/net/ftp/FTPFileFilter.java  |   2 +-
 .../org/apache/commons/net/ftp/FTPSCommand.java    |   2 +-
 .../net/ftp/parser/FTPFileEntryParserFactory.java  |   4 +-
 .../commons/net/ftp/parser/FTPTimestampParser.java |   6 +-
 .../commons/net/imap/AuthenticatingIMAPClient.java |   2 +-
 .../apache/commons/net/io/CopyStreamListener.java  |   4 +-
 .../commons/net/io/FromNetASCIIInputStream.java    |   2 +-
 src/main/java/org/apache/commons/net/io/Util.java  |  14 +--
 .../org/apache/commons/net/nntp/NNTPCommand.java   |   2 +-
 .../org/apache/commons/net/nntp/Threadable.java    |  16 +--
 .../org/apache/commons/net/ntp/NtpV3Packet.java    | 108 ++++++++++-----------
 .../commons/net/pop3/ExtendedPOP3Client.java       |   2 +-
 .../org/apache/commons/net/pop3/POP3Command.java   |   2 +-
 .../commons/net/smtp/AuthenticatingSMTPClient.java |   2 +-
 .../org/apache/commons/net/smtp/SMTPCommand.java   |   2 +-
 .../apache/commons/net/telnet/TelnetCommand.java   |   4 +-
 .../commons/net/telnet/TelnetInputListener.java    |   2 +-
 .../net/telnet/TelnetNotificationHandler.java      |  12 +--
 .../org/apache/commons/net/tftp/TFTPServer.java    |   2 +-
 32 files changed, 116 insertions(+), 116 deletions(-)

diff --git a/src/main/java/org/apache/commons/net/DatagramSocketFactory.java b/src/main/java/org/apache/commons/net/DatagramSocketFactory.java
index 3fe8ded..1145738 100644
--- a/src/main/java/org/apache/commons/net/DatagramSocketFactory.java
+++ b/src/main/java/org/apache/commons/net/DatagramSocketFactory.java
@@ -44,7 +44,7 @@ public interface DatagramSocketFactory
      *
      * @throws SocketException If the socket could not be created.
      ***/
-    public DatagramSocket createDatagramSocket() throws SocketException;
+    DatagramSocket createDatagramSocket() throws SocketException;
 
     /***
      * Creates a DatagramSocket on the local host at a specified port.
@@ -53,7 +53,7 @@ public interface DatagramSocketFactory
      * @return the socket
      * @throws SocketException If the socket could not be created.
      ***/
-    public DatagramSocket createDatagramSocket(int port) throws SocketException;
+    DatagramSocket createDatagramSocket(int port) throws SocketException;
 
     /***
      * Creates a DatagramSocket at the specified address on the local host
@@ -64,6 +64,6 @@ public interface DatagramSocketFactory
      * @return the socket
      * @throws SocketException If the socket could not be created.
      ***/
-    public DatagramSocket createDatagramSocket(int port, InetAddress laddr)
+    DatagramSocket createDatagramSocket(int port, InetAddress laddr)
     throws SocketException;
 }
diff --git a/src/main/java/org/apache/commons/net/ProtocolCommandListener.java b/src/main/java/org/apache/commons/net/ProtocolCommandListener.java
index f6d4231..0f542b7 100644
--- a/src/main/java/org/apache/commons/net/ProtocolCommandListener.java
+++ b/src/main/java/org/apache/commons/net/ProtocolCommandListener.java
@@ -45,7 +45,7 @@ public interface ProtocolCommandListener extends EventListener
      *
      * @param event The ProtocolCommandEvent fired.
      ***/
-    public void protocolCommandSent(ProtocolCommandEvent event);
+    void protocolCommandSent(ProtocolCommandEvent event);
 
     /***
      * This method is invoked by a ProtocolCommandEvent source after
@@ -53,6 +53,6 @@ public interface ProtocolCommandListener extends EventListener
      *
      * @param event The ProtocolCommandEvent fired.
      ***/
-    public void protocolReplyReceived(ProtocolCommandEvent event);
+    void protocolReplyReceived(ProtocolCommandEvent event);
 
 }
diff --git a/src/main/java/org/apache/commons/net/examples/mail/POP3Mail.java b/src/main/java/org/apache/commons/net/examples/mail/POP3Mail.java
index 5a6a892..33bf350 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/POP3Mail.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/POP3Mail.java
@@ -38,7 +38,7 @@ import org.apache.commons.net.pop3.POP3SClient;
 public final class POP3Mail
 {
 
-    public static final void printMessageInfo(final BufferedReader reader, final int id) throws IOException  {
+    public static void printMessageInfo(final BufferedReader reader, final int id) throws IOException  {
         String from = "";
         String subject = "";
         String line;
diff --git a/src/main/java/org/apache/commons/net/examples/ntp/TimeClient.java b/src/main/java/org/apache/commons/net/examples/ntp/TimeClient.java
index e88000d..c0840d2 100644
--- a/src/main/java/org/apache/commons/net/examples/ntp/TimeClient.java
+++ b/src/main/java/org/apache/commons/net/examples/ntp/TimeClient.java
@@ -38,7 +38,7 @@ import org.apache.commons.net.time.TimeUDPClient;
 public final class TimeClient
 {
 
-    public static final void timeTCP(final String host) throws IOException
+    public static void timeTCP(final String host) throws IOException
     {
         final TimeTCPClient client = new TimeTCPClient();
     try {
@@ -51,7 +51,7 @@ public final class TimeClient
     }
     }
 
-    public static final void timeUDP(final String host) throws IOException
+    public static void timeUDP(final String host) throws IOException
     {
         final TimeUDPClient client = new TimeUDPClient();
 
diff --git a/src/main/java/org/apache/commons/net/examples/telnet/WeatherTelnet.java b/src/main/java/org/apache/commons/net/examples/telnet/WeatherTelnet.java
index a678a28..b2cb060 100644
--- a/src/main/java/org/apache/commons/net/examples/telnet/WeatherTelnet.java
+++ b/src/main/java/org/apache/commons/net/examples/telnet/WeatherTelnet.java
@@ -38,7 +38,7 @@ import org.apache.commons.net.examples.util.IOUtil;
 public final class WeatherTelnet
 {
 
-    public static final void main(final String[] args)
+    public static void main(final String[] args)
     {
         TelnetClient telnet;
 
diff --git a/src/main/java/org/apache/commons/net/examples/unix/chargen.java b/src/main/java/org/apache/commons/net/examples/unix/chargen.java
index 1f8d0f5..426ac99 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/chargen.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/chargen.java
@@ -42,7 +42,7 @@ import org.apache.commons.net.chargen.CharGenUDPClient;
 public final class chargen
 {
 
-    public static final void chargenTCP(final String host) throws IOException
+    public static void chargenTCP(final String host) throws IOException
     {
         int lines = 100;
         String line;
@@ -70,7 +70,7 @@ public final class chargen
         client.disconnect();
     }
 
-    public static final void chargenUDP(final String host) throws IOException
+    public static void chargenUDP(final String host) throws IOException
     {
         int packets = 50;
         byte[] data;
diff --git a/src/main/java/org/apache/commons/net/examples/unix/daytime.java b/src/main/java/org/apache/commons/net/examples/unix/daytime.java
index 9fd8c4a..b578dc1 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/daytime.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/daytime.java
@@ -36,7 +36,7 @@ import org.apache.commons.net.daytime.DaytimeUDPClient;
 public final class daytime
 {
 
-    public static final void daytimeTCP(final String host) throws IOException
+    public static void daytimeTCP(final String host) throws IOException
     {
         final DaytimeTCPClient client = new DaytimeTCPClient();
 
@@ -47,7 +47,7 @@ public final class daytime
         client.disconnect();
     }
 
-    public static final void daytimeUDP(final String host) throws IOException
+    public static void daytimeUDP(final String host) throws IOException
     {
         final DaytimeUDPClient client = new DaytimeUDPClient();
 
diff --git a/src/main/java/org/apache/commons/net/examples/unix/echo.java b/src/main/java/org/apache/commons/net/examples/unix/echo.java
index c25844e..c97d4ea 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/echo.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/echo.java
@@ -42,7 +42,7 @@ import org.apache.commons.net.echo.EchoUDPClient;
 public final class echo
 {
 
-    public static final void echoTCP(final String host) throws IOException
+    public static void echoTCP(final String host) throws IOException
     {
         final EchoTCPClient client = new EchoTCPClient();
         BufferedReader input, echoInput;
@@ -70,7 +70,7 @@ public final class echo
         client.disconnect();
     }
 
-    public static final void echoUDP(final String host) throws IOException
+    public static void echoUDP(final String host) throws IOException
     {
         int length, count;
         byte[] data;
diff --git a/src/main/java/org/apache/commons/net/examples/unix/rdate.java b/src/main/java/org/apache/commons/net/examples/unix/rdate.java
index a9debab..3c39609 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/rdate.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/rdate.java
@@ -37,7 +37,7 @@ import org.apache.commons.net.time.TimeUDPClient;
 public final class rdate
 {
 
-    public static final void timeTCP(final String host) throws IOException
+    public static void timeTCP(final String host) throws IOException
     {
         final TimeTCPClient client = new TimeTCPClient();
 
@@ -48,7 +48,7 @@ public final class rdate
         client.disconnect();
     }
 
-    public static final void timeUDP(final String host) throws IOException
+    public static void timeUDP(final String host) throws IOException
     {
         final TimeUDPClient client = new TimeUDPClient();
 
diff --git a/src/main/java/org/apache/commons/net/examples/util/IOUtil.java b/src/main/java/org/apache/commons/net/examples/util/IOUtil.java
index cd8738c..5b6b4a4 100644
--- a/src/main/java/org/apache/commons/net/examples/util/IOUtil.java
+++ b/src/main/java/org/apache/commons/net/examples/util/IOUtil.java
@@ -36,7 +36,7 @@ import org.apache.commons.net.io.Util;
 public final class IOUtil
 {
 
-    public static final void readWrite(final InputStream remoteInput,
+    public static void readWrite(final InputStream remoteInput,
                                        final OutputStream remoteOutput,
                                        final InputStream localInput,
                                        final OutputStream localOutput)
diff --git a/src/main/java/org/apache/commons/net/ftp/Configurable.java b/src/main/java/org/apache/commons/net/ftp/Configurable.java
index b04ded9..bc2bd90 100644
--- a/src/main/java/org/apache/commons/net/ftp/Configurable.java
+++ b/src/main/java/org/apache/commons/net/ftp/Configurable.java
@@ -31,5 +31,5 @@ public interface Configurable {
      * <code>config</code> are somehow inadequate to configure the
      * Configurable object.
      */
-    public void configure(FTPClientConfig config);
+    void configure(FTPClientConfig config);
 }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPClient.java b/src/main/java/org/apache/commons/net/ftp/FTPClient.java
index 19d4e2b..0d2cc99 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPClient.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPClient.java
@@ -3919,7 +3919,7 @@ implements Configurable
      *
      * @since 3.6
      */
-    public static interface HostnameResolver {
+    public interface HostnameResolver {
         String resolve(String hostname) throws UnknownHostException;
     }
 
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPCommand.java b/src/main/java/org/apache/commons/net/ftp/FTPCommand.java
index 757044a..0b69b92 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPCommand.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPCommand.java
@@ -164,7 +164,7 @@ public final class FTPCommand
      * @return The FTP protcol command string corresponding to a specified
      *         command code.
      */
-    public static final String getCommand(final int command)
+    public static String getCommand(final int command)
     {
         return _commands[command];
     }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPFileFilter.java b/src/main/java/org/apache/commons/net/ftp/FTPFileFilter.java
index 16f9c13..86bb994 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPFileFilter.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPFileFilter.java
@@ -29,5 +29,5 @@ public interface FTPFileFilter {
      * @param file entry to be checked for inclusion. May be <code>null</code>.
      * @return <code>true</code> if the file is to be included, <code>false</code> otherwise
      */
-    public boolean accept(FTPFile file);
+    boolean accept(FTPFile file);
 }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPSCommand.java b/src/main/java/org/apache/commons/net/ftp/FTPSCommand.java
index a3dea83..cd0776e 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPSCommand.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPSCommand.java
@@ -46,7 +46,7 @@ public final class FTPSCommand {
      * @return The FTPS command string corresponding to a specified
      *  command code.
      */
-    public static final String getCommand(final int command) {
+    public static String getCommand(final int command) {
         return _commands[command];
     }
 }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.java b/src/main/java/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.java
index 9901a97..59b711a 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.java
@@ -37,7 +37,7 @@ public interface FTPFileEntryParserFactory
      * @throws ParserInitializationException
      *                   Thrown on any exception in instantiation
      */
-    public FTPFileEntryParser createFileEntryParser(String key)
+    FTPFileEntryParser createFileEntryParser(String key)
         throws ParserInitializationException;
 
     /**
@@ -62,7 +62,7 @@ public interface FTPFileEntryParserFactory
      *                   Thrown on any exception in instantiation
      * @since 1.4
      */
-    public FTPFileEntryParser createFileEntryParser(FTPClientConfig config)
+    FTPFileEntryParser createFileEntryParser(FTPClientConfig config)
         throws ParserInitializationException;
 
 }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/FTPTimestampParser.java b/src/main/java/org/apache/commons/net/ftp/parser/FTPTimestampParser.java
index 0f74437..c04cd44 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/FTPTimestampParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/FTPTimestampParser.java
@@ -30,11 +30,11 @@ public interface FTPTimestampParser {
     /**
      * the default default date format.
      */
-    public static final String DEFAULT_SDF = UnixFTPEntryParser.DEFAULT_DATE_FORMAT;
+    String DEFAULT_SDF = UnixFTPEntryParser.DEFAULT_DATE_FORMAT;
     /**
      * the default recent date format.
      */
-    public static final String DEFAULT_RECENT_SDF = UnixFTPEntryParser.DEFAULT_RECENT_DATE_FORMAT;
+    String DEFAULT_RECENT_SDF = UnixFTPEntryParser.DEFAULT_RECENT_DATE_FORMAT;
 
     /**
      * Parses the supplied datestamp parameter.  This parameter typically would
@@ -47,6 +47,6 @@ public interface FTPTimestampParser {
      * @throws ParseException if none of the parser mechanisms belonging to
      * the implementor can parse the input.
      */
-    public Calendar parseTimestamp(String timestampStr) throws ParseException;
+    Calendar parseTimestamp(String timestampStr) throws ParseException;
 
 }
diff --git a/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java b/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
index 9f08147..c31c7b9 100644
--- a/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
+++ b/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
@@ -240,7 +240,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
     /**
      * The enumeration of currently-supported authentication methods.
      */
-    public static enum AUTH_METHOD
+    public enum AUTH_METHOD
     {
         /** The standarised (RFC4616) PLAIN method, which sends the password unencrypted (insecure). */
         PLAIN("PLAIN"),
diff --git a/src/main/java/org/apache/commons/net/io/CopyStreamListener.java b/src/main/java/org/apache/commons/net/io/CopyStreamListener.java
index f56b022..bbf27cd 100644
--- a/src/main/java/org/apache/commons/net/io/CopyStreamListener.java
+++ b/src/main/java/org/apache/commons/net/io/CopyStreamListener.java
@@ -48,7 +48,7 @@ public interface CopyStreamListener extends EventListener
      * @param event The CopyStreamEvent fired by the copying of a block of
      *              bytes.
      */
-    public void bytesTransferred(CopyStreamEvent event);
+    void bytesTransferred(CopyStreamEvent event);
 
 
     /**
@@ -64,7 +64,7 @@ public interface CopyStreamListener extends EventListener
      *        This may be equal to CopyStreamEvent.UNKNOWN_STREAM_SIZE if
      *        the size is unknown.
      */
-    public void bytesTransferred(long totalBytesTransferred,
+    void bytesTransferred(long totalBytesTransferred,
                                  int bytesTransferred,
                                  long streamSize);
 }
diff --git a/src/main/java/org/apache/commons/net/io/FromNetASCIIInputStream.java b/src/main/java/org/apache/commons/net/io/FromNetASCIIInputStream.java
index 80df25f..f825b13 100644
--- a/src/main/java/org/apache/commons/net/io/FromNetASCIIInputStream.java
+++ b/src/main/java/org/apache/commons/net/io/FromNetASCIIInputStream.java
@@ -59,7 +59,7 @@ public final class FromNetASCIIInputStream extends PushbackInputStream
      * @return True if the NETASCII line separator differs from the local
      *   system line separator, false if they are the same.
      ***/
-    public static final boolean isConversionRequired()
+    public static boolean isConversionRequired()
     {
         return !_noConversionRequired;
     }
diff --git a/src/main/java/org/apache/commons/net/io/Util.java b/src/main/java/org/apache/commons/net/io/Util.java
index 2cd3661..32b0e68 100644
--- a/src/main/java/org/apache/commons/net/io/Util.java
+++ b/src/main/java/org/apache/commons/net/io/Util.java
@@ -87,7 +87,7 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyStream(final InputStream source, final OutputStream dest,
+    public static long copyStream(final InputStream source, final OutputStream dest,
                                         final int bufferSize, final long streamSize,
                                         final CopyStreamListener listener,
                                         final boolean flush)
@@ -175,7 +175,7 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyStream(final InputStream source, final OutputStream dest,
+    public static long copyStream(final InputStream source, final OutputStream dest,
                                         final int bufferSize, final long streamSize,
                                         final CopyStreamListener listener)
     throws CopyStreamException
@@ -207,7 +207,7 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyStream(final InputStream source, final OutputStream dest,
+    public static long copyStream(final InputStream source, final OutputStream dest,
                                         final int bufferSize)
     throws CopyStreamException
     {
@@ -223,7 +223,7 @@ public final class Util
      * @return number of bytes copied
      * @throws CopyStreamException on error
      ***/
-    public static final long copyStream(final InputStream source, final OutputStream dest)
+    public static long copyStream(final InputStream source, final OutputStream dest)
     throws CopyStreamException
     {
         return copyStream(source, dest, DEFAULT_COPY_BUFFER_SIZE);
@@ -263,7 +263,7 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyReader(final Reader source, final Writer dest,
+    public static long copyReader(final Reader source, final Writer dest,
                                         final int bufferSize, final long streamSize,
                                         final CopyStreamListener listener)
     throws CopyStreamException
@@ -332,7 +332,7 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyReader(final Reader source, final Writer dest,
+    public static long copyReader(final Reader source, final Writer dest,
                                         final int bufferSize)
     throws CopyStreamException
     {
@@ -348,7 +348,7 @@ public final class Util
      * @return number of bytes copied
      * @throws CopyStreamException on error
      ***/
-    public static final long copyReader(final Reader source, final Writer dest)
+    public static long copyReader(final Reader source, final Writer dest)
     throws CopyStreamException
     {
         return copyReader(source, dest, DEFAULT_COPY_BUFFER_SIZE);
diff --git a/src/main/java/org/apache/commons/net/nntp/NNTPCommand.java b/src/main/java/org/apache/commons/net/nntp/NNTPCommand.java
index f98e655..8a9e219 100644
--- a/src/main/java/org/apache/commons/net/nntp/NNTPCommand.java
+++ b/src/main/java/org/apache/commons/net/nntp/NNTPCommand.java
@@ -63,7 +63,7 @@ public final class NNTPCommand
      * @return The NNTP protcol command string corresponding to a specified
      *         command code.
      ***/
-    public static final String getCommand(final int command)
+    public static String getCommand(final int command)
     {
         return _commands[command];
     }
diff --git a/src/main/java/org/apache/commons/net/nntp/Threadable.java b/src/main/java/org/apache/commons/net/nntp/Threadable.java
index 2a28512..aeb408e 100644
--- a/src/main/java/org/apache/commons/net/nntp/Threadable.java
+++ b/src/main/java/org/apache/commons/net/nntp/Threadable.java
@@ -23,12 +23,12 @@ package org.apache.commons.net.nntp;
  *
  */
 public interface Threadable {
-    public boolean isDummy();
-    public String messageThreadId();
-    public String[] messageThreadReferences();
-    public String simplifiedSubject();
-    public boolean subjectIsReply();
-    public void setChild(Threadable child);
-    public void setNext(Threadable next);
-    public Threadable makeDummy();
+    boolean isDummy();
+    String messageThreadId();
+    String[] messageThreadReferences();
+    String simplifiedSubject();
+    boolean subjectIsReply();
+    void setChild(Threadable child);
+    void setNext(Threadable next);
+    Threadable makeDummy();
 }
diff --git a/src/main/java/org/apache/commons/net/ntp/NtpV3Packet.java b/src/main/java/org/apache/commons/net/ntp/NtpV3Packet.java
index adfe370..fc327a6 100644
--- a/src/main/java/org/apache/commons/net/ntp/NtpV3Packet.java
+++ b/src/main/java/org/apache/commons/net/ntp/NtpV3Packet.java
@@ -30,95 +30,95 @@ public interface NtpV3Packet
     /**
      * Standard NTP UDP port
      */
-    public static final int NTP_PORT = 123;
+    int NTP_PORT = 123;
 
-    public static final int LI_NO_WARNING = 0;
-    public static final int LI_LAST_MINUTE_HAS_61_SECONDS = 1;
-    public static final int LI_LAST_MINUTE_HAS_59_SECONDS = 2;
-    public static final int LI_ALARM_CONDITION = 3;
+    int LI_NO_WARNING = 0;
+    int LI_LAST_MINUTE_HAS_61_SECONDS = 1;
+    int LI_LAST_MINUTE_HAS_59_SECONDS = 2;
+    int LI_ALARM_CONDITION = 3;
 
     /* mode options */
-    public static final int MODE_RESERVED = 0;
-    public static final int MODE_SYMMETRIC_ACTIVE = 1;
-    public static final int MODE_SYMMETRIC_PASSIVE = 2;
-    public static final int MODE_CLIENT = 3;
-    public static final int MODE_SERVER = 4;
-    public static final int MODE_BROADCAST = 5;
-    public static final int MODE_CONTROL_MESSAGE = 6;
-    public static final int MODE_PRIVATE = 7;
+    int MODE_RESERVED = 0;
+    int MODE_SYMMETRIC_ACTIVE = 1;
+    int MODE_SYMMETRIC_PASSIVE = 2;
+    int MODE_CLIENT = 3;
+    int MODE_SERVER = 4;
+    int MODE_BROADCAST = 5;
+    int MODE_CONTROL_MESSAGE = 6;
+    int MODE_PRIVATE = 7;
 
-    public static final int NTP_MINPOLL = 4;  // 16 seconds
-    public static final int NTP_MAXPOLL = 14; // 16284 seconds
+    int NTP_MINPOLL = 4;  // 16 seconds
+    int NTP_MAXPOLL = 14; // 16284 seconds
 
-    public static final int NTP_MINCLOCK = 1;
-    public static final int NTP_MAXCLOCK = 10;
+    int NTP_MINCLOCK = 1;
+    int NTP_MAXCLOCK = 10;
 
-    public static final int VERSION_3 = 3;
-    public static final int VERSION_4 = 4;
+    int VERSION_3 = 3;
+    int VERSION_4 = 4;
 
     /* possible getType values such that other time-related protocols can
      * have its information represented as NTP packets
      */
-    public static final String TYPE_NTP = "NTP";         // RFC-1305/2030
-    public static final String TYPE_ICMP = "ICMP";       // RFC-792
-    public static final String TYPE_TIME = "TIME";       // RFC-868
-    public static final String TYPE_DAYTIME = "DAYTIME"; // RFC-867
+    String TYPE_NTP = "NTP";         // RFC-1305/2030
+    String TYPE_ICMP = "ICMP";       // RFC-792
+    String TYPE_TIME = "TIME";       // RFC-868
+    String TYPE_DAYTIME = "DAYTIME"; // RFC-867
 
     /**
      * @return a datagram packet with the NTP parts already filled in
      */
-    public DatagramPacket getDatagramPacket();
+    DatagramPacket getDatagramPacket();
 
     /**
      * Set the contents of this object from the datagram packet
      * @param dp the packet
      */
-    public void setDatagramPacket(DatagramPacket dp);
+    void setDatagramPacket(DatagramPacket dp);
 
     /**
      * @return leap indicator as defined in RFC-1305
      */
-    public int getLeapIndicator();
+    int getLeapIndicator();
 
     /**
      * Set leap indicator.
      * @param li - leap indicator code
      */
-    public void setLeapIndicator(int li);
+    void setLeapIndicator(int li);
 
     /**
      * @return mode as defined in RFC-1305
      */
-    public int getMode();
+    int getMode();
 
     /**
      * @return mode as human readable string; e.g. 3=Client
      */
-    public String getModeName();
+    String getModeName();
 
     /**
      * Set mode as defined in RFC-1305
      * @param mode the mode to set
      */
-    public void setMode(int mode);
+    void setMode(int mode);
 
     /**
      * @return poll interval as defined in RFC-1305.
      * Field range between NTP_MINPOLL and NTP_MAXPOLL.
      */
-    public int getPoll();
+    int getPoll();
 
     /**
      * Set poll interval as defined in RFC-1305.
      * Field range between NTP_MINPOLL and NTP_MAXPOLL.
      * @param poll the interval to set
      */
-    public void setPoll(int poll);
+    void setPoll(int poll);
 
     /**
      * @return precision as defined in RFC-1305
      */
-    public int getPrecision();
+    int getPrecision();
 
     /**
      * Set precision as defined in RFC-1305
@@ -130,7 +130,7 @@ public interface NtpV3Packet
     /**
      * @return root delay as defined in RFC-1305
      */
-    public int getRootDelay();
+    int getRootDelay();
 
     /**
      * Set root delay as defined in RFC-1305
@@ -142,12 +142,12 @@ public interface NtpV3Packet
     /**
      * @return root delay in milliseconds
      */
-    public double getRootDelayInMillisDouble();
+    double getRootDelayInMillisDouble();
 
     /**
      * @return root dispersion as defined in RFC-1305
      */
-    public int getRootDispersion();
+    int getRootDispersion();
 
     /**
      *
@@ -159,94 +159,94 @@ public interface NtpV3Packet
     /**
      * @return root dispersion in milliseconds
      */
-    public long getRootDispersionInMillis();
+    long getRootDispersionInMillis();
 
     /**
      * @return root dispersion in milliseconds
      */
-    public double getRootDispersionInMillisDouble();
+    double getRootDispersionInMillisDouble();
 
     /**
      * @return version as defined in RFC-1305
      */
-    public int getVersion();
+    int getVersion();
 
     /**
      * Set version as defined in RFC-1305
      * @param version the version to set
      */
-    public void setVersion(int version);
+    void setVersion(int version);
 
     /**
      * @return stratum as defined in RFC-1305
      */
-    public int getStratum();
+    int getStratum();
 
     /**
      * Set stratum as defined in RFC-1305
      * @param stratum the stratum to set
      */
-    public void setStratum(int stratum);
+    void setStratum(int stratum);
 
     /**
      * @return the reference id string
      */
-    public String getReferenceIdString();
+    String getReferenceIdString();
 
     /**
      * @return the reference id (32-bit code) as defined in RFC-1305
      */
-    public int getReferenceId();
+    int getReferenceId();
 
     /**
      * Set reference clock identifier field.
      * @param refId the clock id field to set
      */
-    public void setReferenceId(int refId);
+    void setReferenceId(int refId);
 
     /**
      * @return the transmit timestamp as defined in RFC-1305
      */
-    public TimeStamp getTransmitTimeStamp();
+    TimeStamp getTransmitTimeStamp();
 
     /**
      * @return the reference time as defined in RFC-1305
      */
-    public TimeStamp getReferenceTimeStamp();
+    TimeStamp getReferenceTimeStamp();
 
     /**
      * @return the originate time as defined in RFC-1305
      */
-    public TimeStamp getOriginateTimeStamp();
+    TimeStamp getOriginateTimeStamp();
 
     /**
      * @return the receive time as defined in RFC-1305
      */
-    public TimeStamp getReceiveTimeStamp();
+    TimeStamp getReceiveTimeStamp();
 
     /**
      * Set the transmit timestamp given NTP TimeStamp object.
      * @param ts - timestamp
      */
-    public void setTransmitTime(TimeStamp ts);
+    void setTransmitTime(TimeStamp ts);
 
     /**
      * Set the reference timestamp given NTP TimeStamp object.
      * @param ts - timestamp
      */
-    public void setReferenceTime(TimeStamp ts);
+    void setReferenceTime(TimeStamp ts);
 
     /**
      * Set originate timestamp given NTP TimeStamp object.
      * @param ts - timestamp
      */
-    public void setOriginateTimeStamp(TimeStamp ts);
+    void setOriginateTimeStamp(TimeStamp ts);
 
     /**
      * Set receive timestamp given NTP TimeStamp object.
      * @param ts - timestamp
      */
-    public void setReceiveTimeStamp(TimeStamp ts);
+    void setReceiveTimeStamp(TimeStamp ts);
 
     /**
      * Return type of time packet. The values (e.g. NTP, TIME, ICMP, ...)
@@ -254,6 +254,6 @@ public interface NtpV3Packet
      *
      * @return packet type string identifier
      */
-    public String getType();
+    String getType();
 
 }
diff --git a/src/main/java/org/apache/commons/net/pop3/ExtendedPOP3Client.java b/src/main/java/org/apache/commons/net/pop3/ExtendedPOP3Client.java
index 95b6c86..39725b4 100644
--- a/src/main/java/org/apache/commons/net/pop3/ExtendedPOP3Client.java
+++ b/src/main/java/org/apache/commons/net/pop3/ExtendedPOP3Client.java
@@ -124,7 +124,7 @@ public class ExtendedPOP3Client extends POP3SClient
     /**
      * The enumeration of currently-supported authentication methods.
      */
-    public static enum AUTH_METHOD
+    public enum AUTH_METHOD
     {
         /** The standarised (RFC4616) PLAIN method, which sends the password unencrypted (insecure). */
         PLAIN("PLAIN"),
diff --git a/src/main/java/org/apache/commons/net/pop3/POP3Command.java b/src/main/java/org/apache/commons/net/pop3/POP3Command.java
index 5db2acd..a378b13 100644
--- a/src/main/java/org/apache/commons/net/pop3/POP3Command.java
+++ b/src/main/java/org/apache/commons/net/pop3/POP3Command.java
@@ -83,7 +83,7 @@ public final class POP3Command
      *
      * @return The POP3 protocol string command corresponding to a command code.
      ***/
-    public static final String getCommand(final int command)
+    public static String getCommand(final int command)
     {
         return _commands[command];
     }
diff --git a/src/main/java/org/apache/commons/net/smtp/AuthenticatingSMTPClient.java b/src/main/java/org/apache/commons/net/smtp/AuthenticatingSMTPClient.java
index d812da1..62f895a 100644
--- a/src/main/java/org/apache/commons/net/smtp/AuthenticatingSMTPClient.java
+++ b/src/main/java/org/apache/commons/net/smtp/AuthenticatingSMTPClient.java
@@ -290,7 +290,7 @@ public class AuthenticatingSMTPClient extends SMTPSClient
     /**
      * The enumeration of currently-supported authentication methods.
      */
-    public static enum AUTH_METHOD
+    public enum AUTH_METHOD
     {
         /** The standarised (RFC4616) PLAIN method, which sends the password unencrypted (insecure). */
         PLAIN,
diff --git a/src/main/java/org/apache/commons/net/smtp/SMTPCommand.java b/src/main/java/org/apache/commons/net/smtp/SMTPCommand.java
index 853e8f8..ef31979 100644
--- a/src/main/java/org/apache/commons/net/smtp/SMTPCommand.java
+++ b/src/main/java/org/apache/commons/net/smtp/SMTPCommand.java
@@ -101,7 +101,7 @@ public final class SMTPCommand
      * @return The SMTP protcol command string corresponding to a specified
      *         command code.
      ***/
-    public static final String getCommand(final int command)
+    public static String getCommand(final int command)
     {
         return _commands[command];
     }
diff --git a/src/main/java/org/apache/commons/net/telnet/TelnetCommand.java b/src/main/java/org/apache/commons/net/telnet/TelnetCommand.java
index ac4b06e..003a3a5 100644
--- a/src/main/java/org/apache/commons/net/telnet/TelnetCommand.java
+++ b/src/main/java/org/apache/commons/net/telnet/TelnetCommand.java
@@ -108,7 +108,7 @@ public final class TelnetCommand
      * @param code The command code of the telnet protocol command.
      * @return The string representation of the telnet protocol command.
      ***/
-    public static final String getCommand(final int code)
+    public static String getCommand(final int code)
     {
         return __commandString[__FIRST_COMMAND - code];
     }
@@ -120,7 +120,7 @@ public final class TelnetCommand
      * @param code  The command code to test.
      * @return True if the command code is valid, false if not.
      **/
-    public static final boolean isValidCommand(final int code)
+    public static boolean isValidCommand(final int code)
     {
         return (code <= __FIRST_COMMAND && code >= __LAST_COMMAND);
     }
diff --git a/src/main/java/org/apache/commons/net/telnet/TelnetInputListener.java b/src/main/java/org/apache/commons/net/telnet/TelnetInputListener.java
index 34bb2b6..afeeeb7 100644
--- a/src/main/java/org/apache/commons/net/telnet/TelnetInputListener.java
+++ b/src/main/java/org/apache/commons/net/telnet/TelnetInputListener.java
@@ -33,5 +33,5 @@ public interface TelnetInputListener
      *
      * @see TelnetClient#registerInputListener
      ***/
-    public void telnetInputAvailable();
+    void telnetInputAvailable();
 }
diff --git a/src/main/java/org/apache/commons/net/telnet/TelnetNotificationHandler.java b/src/main/java/org/apache/commons/net/telnet/TelnetNotificationHandler.java
index 19446dd..bf5f03d 100644
--- a/src/main/java/org/apache/commons/net/telnet/TelnetNotificationHandler.java
+++ b/src/main/java/org/apache/commons/net/telnet/TelnetNotificationHandler.java
@@ -32,28 +32,28 @@ public interface TelnetNotificationHandler
     /***
      * The remote party sent a DO command.
      ***/
-    public static final int RECEIVED_DO =   1;
+    int RECEIVED_DO =   1;
 
     /***
      * The remote party sent a DONT command.
      ***/
-    public static final int RECEIVED_DONT = 2;
+    int RECEIVED_DONT = 2;
 
     /***
      * The remote party sent a WILL command.
      ***/
-    public static final int RECEIVED_WILL = 3;
+    int RECEIVED_WILL = 3;
 
     /***
      * The remote party sent a WONT command.
      ***/
-    public static final int RECEIVED_WONT = 4;
+    int RECEIVED_WONT = 4;
 
     /***
      * The remote party sent a COMMAND.
      * @since 2.2
      ***/
-    public static final int RECEIVED_COMMAND = 5;
+    int RECEIVED_COMMAND = 5;
 
     /***
      * Callback method called when TelnetClient receives an
@@ -64,5 +64,5 @@ public interface TelnetNotificationHandler
      *
      * @param option_code - code of the option negotiated, or the command code itself (e.g. NOP).
      ***/
-    public void receivedNegotiation(int negotiation_code, int option_code);
+    void receivedNegotiation(int negotiation_code, int option_code);
 }
diff --git a/src/test/java/org/apache/commons/net/tftp/TFTPServer.java b/src/test/java/org/apache/commons/net/tftp/TFTPServer.java
index edc4c82..8861faf 100644
--- a/src/test/java/org/apache/commons/net/tftp/TFTPServer.java
+++ b/src/test/java/org/apache/commons/net/tftp/TFTPServer.java
@@ -84,7 +84,7 @@ import org.apache.commons.net.io.ToNetASCIIInputStream;
 public class TFTPServer implements Runnable
 {
     private static final int DEFAULT_TFTP_PORT = 69;
-    public static enum ServerMode { GET_ONLY, PUT_ONLY, GET_AND_PUT; }
+    public enum ServerMode { GET_ONLY, PUT_ONLY, GET_AND_PUT; }
 
     private final HashSet<TFTPTransfer> transfers_ = new HashSet<>();
     private volatile boolean shutdownServer = false;


[commons-net] 02/09: Use varg args syntax instead of explicit arrays.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 7a561ed6ad8169c114a4b8358d69dc9fda6220da
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 14:57:07 2020 -0400

    Use varg args syntax instead of explicit arrays.
---
 src/main/java/org/apache/commons/net/examples/Main.java     | 2 +-
 src/test/java/org/apache/commons/net/examples/MainTest.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/commons/net/examples/Main.java b/src/main/java/org/apache/commons/net/examples/Main.java
index dd2fb84..c6e1d6c 100644
--- a/src/main/java/org/apache/commons/net/examples/Main.java
+++ b/src/main/java/org/apache/commons/net/examples/Main.java
@@ -85,7 +85,7 @@ public class Main {
         fullName = fullName.replace('/', '.');
         try {
             Class<?> clazz = Class.forName(fullName);
-            Method m = clazz.getDeclaredMethod("main", new Class[]{args.getClass()});
+            Method m = clazz.getDeclaredMethod("main", args.getClass());
             String[] args2 = new String[args.length-1];
             System.arraycopy(args, 1, args2, 0, args2.length);
             try {
diff --git a/src/test/java/org/apache/commons/net/examples/MainTest.java b/src/test/java/org/apache/commons/net/examples/MainTest.java
index 45c4904..4ca9abd 100644
--- a/src/test/java/org/apache/commons/net/examples/MainTest.java
+++ b/src/test/java/org/apache/commons/net/examples/MainTest.java
@@ -109,7 +109,7 @@ public class MainTest {
         name = name.replace("/", ".");
         try {
             Class<?> clazz = Class.forName(name, false, MainTest.class.getClassLoader());
-            clazz.getMethod("main", new Class[]{String[].class});
+            clazz.getMethod("main", String[].class);
             return true;
         } catch (ClassNotFoundException e) {
             System.out.println("Cannot find " + name);


[commons-net] 07/09: Use final.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 75203979592aefd409775ae843225deb4035f4b3
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 15:00:34 2020 -0400

    Use final.
---
 .../apache/commons/net/DatagramSocketClient.java   |  12 +-
 .../commons/net/DefaultDatagramSocketFactory.java  |   4 +-
 .../apache/commons/net/DefaultSocketFactory.java   |  30 +-
 .../commons/net/MalformedServerReplyException.java |   2 +-
 .../apache/commons/net/PrintCommandListener.java   |  28 +-
 .../apache/commons/net/ProtocolCommandEvent.java   |   4 +-
 .../apache/commons/net/ProtocolCommandSupport.java |  14 +-
 .../java/org/apache/commons/net/SocketClient.java  |  64 ++---
 .../org/apache/commons/net/bsd/RCommandClient.java |  30 +-
 .../org/apache/commons/net/bsd/RExecClient.java    |  12 +-
 .../org/apache/commons/net/bsd/RLoginClient.java   |   8 +-
 .../commons/net/chargen/CharGenUDPClient.java      |   4 +-
 .../commons/net/daytime/DaytimeTCPClient.java      |   2 +-
 .../commons/net/daytime/DaytimeUDPClient.java      |   4 +-
 .../commons/net/discard/DiscardUDPClient.java      |   6 +-
 .../org/apache/commons/net/echo/EchoUDPClient.java |   8 +-
 .../java/org/apache/commons/net/examples/Main.java |  19 +-
 .../net/examples/cidr/SubnetUtilsExample.java      |  12 +-
 .../commons/net/examples/ftp/FTPClientExample.java |  45 +--
 .../net/examples/ftp/ServerToServerFTP.java        |  16 +-
 .../commons/net/examples/ftp/TFTPExample.java      |  36 +--
 .../commons/net/examples/mail/IMAPExportMbox.java  |  50 ++--
 .../commons/net/examples/mail/IMAPImportMbox.java  |  42 +--
 .../apache/commons/net/examples/mail/IMAPMail.java |   6 +-
 .../commons/net/examples/mail/IMAPUtils.java       |   8 +-
 .../commons/net/examples/mail/POP3ExportMbox.java  |  44 +--
 .../apache/commons/net/examples/mail/POP3Mail.java |  30 +-
 .../apache/commons/net/examples/mail/SMTPMail.java |  10 +-
 .../apache/commons/net/examples/mail/Utils.java    |   8 +-
 .../commons/net/examples/nntp/ArticleReader.java   |  20 +-
 .../commons/net/examples/nntp/ExtendedNNTPOps.java |  24 +-
 .../commons/net/examples/nntp/ListNewsgroups.java  |  16 +-
 .../net/examples/nntp/MessageThreading.java        |  28 +-
 .../commons/net/examples/nntp/NNTPUtils.java       |   8 +-
 .../commons/net/examples/nntp/PostMessage.java     |   8 +-
 .../apache/commons/net/examples/ntp/NTPClient.java |  56 ++--
 .../commons/net/examples/ntp/SimpleNTPServer.java  |  22 +-
 .../commons/net/examples/ntp/TimeClient.java       |  14 +-
 .../net/examples/telnet/TelnetClientExample.java   |  64 ++---
 .../commons/net/examples/telnet/WeatherTelnet.java |   6 +-
 .../apache/commons/net/examples/unix/chargen.java  |  16 +-
 .../apache/commons/net/examples/unix/daytime.java  |  14 +-
 .../org/apache/commons/net/examples/unix/echo.java |  16 +-
 .../apache/commons/net/examples/unix/finger.java   |  12 +-
 .../apache/commons/net/examples/unix/fwhois.java   |   6 +-
 .../apache/commons/net/examples/unix/rdate.java    |  14 +-
 .../apache/commons/net/examples/unix/rexec.java    |  10 +-
 .../apache/commons/net/examples/unix/rlogin.java   |  10 +-
 .../apache/commons/net/examples/unix/rshell.java   |  10 +-
 .../apache/commons/net/examples/util/IOUtil.java   |   6 +-
 .../apache/commons/net/finger/FingerClient.java    |  16 +-
 src/main/java/org/apache/commons/net/ftp/FTP.java  | 122 ++++----
 .../java/org/apache/commons/net/ftp/FTPClient.java | 316 ++++++++++-----------
 .../apache/commons/net/ftp/FTPClientConfig.java    |  72 ++---
 .../org/apache/commons/net/ftp/FTPCommand.java     |   4 +-
 .../net/ftp/FTPConnectionClosedException.java      |   2 +-
 .../java/org/apache/commons/net/ftp/FTPFile.java   |  38 +--
 .../commons/net/ftp/FTPFileEntryParserImpl.java    |   4 +-
 .../org/apache/commons/net/ftp/FTPFileFilters.java |   6 +-
 .../org/apache/commons/net/ftp/FTPHTTPClient.java  |  40 +--
 .../apache/commons/net/ftp/FTPListParseEngine.java |  32 +--
 .../java/org/apache/commons/net/ftp/FTPReply.java  |  12 +-
 .../org/apache/commons/net/ftp/FTPSClient.java     |  86 +++---
 .../org/apache/commons/net/ftp/FTPSCommand.java    |   2 +-
 .../commons/net/ftp/FTPSServerSocketFactory.java   |  10 +-
 .../apache/commons/net/ftp/FTPSSocketFactory.java  |  18 +-
 .../apache/commons/net/ftp/FTPSTrustManager.java   |   6 +-
 .../net/ftp/parser/CompositeFileEntryParser.java   |  10 +-
 .../parser/ConfigurableFTPFileEntryParserImpl.java |  10 +-
 .../parser/DefaultFTPFileEntryParserFactory.java   |  24 +-
 .../ftp/parser/EnterpriseUnixFTPEntryParser.java   |  32 +--
 .../net/ftp/parser/FTPTimestampParserImpl.java     |  46 +--
 .../commons/net/ftp/parser/MLSxEntryParser.java    |  46 +--
 .../commons/net/ftp/parser/MVSFTPEntryParser.java  |  40 +--
 .../net/ftp/parser/MacOsPeterFTPEntryParser.java   |  30 +-
 .../commons/net/ftp/parser/NTFTPEntryParser.java   |  20 +-
 .../net/ftp/parser/NetwareFTPEntryParser.java      |  20 +-
 .../commons/net/ftp/parser/OS2FTPEntryParser.java  |  18 +-
 .../net/ftp/parser/OS400FTPEntryParser.java        |  20 +-
 .../ftp/parser/ParserInitializationException.java  |   4 +-
 .../ftp/parser/RegexFTPFileEntryParserImpl.java    |  12 +-
 .../commons/net/ftp/parser/UnixFTPEntryParser.java |  38 +--
 .../commons/net/ftp/parser/VMSFTPEntryParser.java  |  32 +--
 .../ftp/parser/VMSVersioningFTPEntryParser.java    |  34 +--
 .../commons/net/imap/AuthenticatingIMAPClient.java |  46 +--
 .../java/org/apache/commons/net/imap/IMAP.java     |  44 +--
 .../org/apache/commons/net/imap/IMAPClient.java    |  44 +--
 .../org/apache/commons/net/imap/IMAPCommand.java   |  12 +-
 .../org/apache/commons/net/imap/IMAPReply.java     |  22 +-
 .../org/apache/commons/net/imap/IMAPSClient.java   |  32 +--
 .../org/apache/commons/net/io/CRLFLineReader.java  |   6 +-
 .../apache/commons/net/io/CopyStreamAdapter.java   |  14 +-
 .../org/apache/commons/net/io/CopyStreamEvent.java |   4 +-
 .../apache/commons/net/io/CopyStreamException.java |   6 +-
 .../commons/net/io/DotTerminatedMessageReader.java |  12 +-
 .../commons/net/io/DotTerminatedMessageWriter.java |  12 +-
 .../commons/net/io/FromNetASCIIInputStream.java    |   8 +-
 .../commons/net/io/FromNetASCIIOutputStream.java   |  10 +-
 .../apache/commons/net/io/SocketInputStream.java   |   2 +-
 .../apache/commons/net/io/SocketOutputStream.java  |   4 +-
 .../commons/net/io/ToNetASCIIInputStream.java      |   6 +-
 .../commons/net/io/ToNetASCIIOutputStream.java     |   8 +-
 src/main/java/org/apache/commons/net/io/Util.java  |  52 ++--
 .../java/org/apache/commons/net/nntp/Article.java  |  34 +--
 .../apache/commons/net/nntp/ArticleIterator.java   |   4 +-
 .../java/org/apache/commons/net/nntp/NNTP.java     |  70 ++---
 .../org/apache/commons/net/nntp/NNTPClient.java    | 234 +++++++--------
 .../org/apache/commons/net/nntp/NNTPCommand.java   |   2 +-
 .../net/nntp/NNTPConnectionClosedException.java    |   2 +-
 .../org/apache/commons/net/nntp/NNTPReply.java     |  10 +-
 .../commons/net/nntp/NewGroupsOrNewsQuery.java     |   8 +-
 .../org/apache/commons/net/nntp/NewsgroupInfo.java |  10 +-
 .../apache/commons/net/nntp/NewsgroupIterator.java |   4 +-
 .../org/apache/commons/net/nntp/ReplyIterator.java |   8 +-
 .../apache/commons/net/nntp/SimpleNNTPHeader.java  |   8 +-
 .../apache/commons/net/nntp/ThreadContainer.java   |   2 +-
 .../java/org/apache/commons/net/nntp/Threader.java |  44 +--
 .../org/apache/commons/net/ntp/NTPUDPClient.java   |  20 +-
 .../java/org/apache/commons/net/ntp/NtpUtils.java  |  16 +-
 .../java/org/apache/commons/net/ntp/NtpV3Impl.java |  74 ++---
 .../java/org/apache/commons/net/ntp/TimeInfo.java  |  32 +--
 .../java/org/apache/commons/net/ntp/TimeStamp.java |  50 ++--
 .../commons/net/pop3/ExtendedPOP3Client.java       |  22 +-
 .../java/org/apache/commons/net/pop3/POP3.java     |  20 +-
 .../org/apache/commons/net/pop3/POP3Client.java    |  30 +-
 .../org/apache/commons/net/pop3/POP3Command.java   |   2 +-
 .../apache/commons/net/pop3/POP3MessageInfo.java   |   6 +-
 .../org/apache/commons/net/pop3/POP3SClient.java   |  32 +--
 .../commons/net/smtp/AuthenticatingSMTPClient.java |  42 +--
 .../org/apache/commons/net/smtp/RelayPath.java     |   6 +-
 .../java/org/apache/commons/net/smtp/SMTP.java     |  44 +--
 .../org/apache/commons/net/smtp/SMTPClient.java    |  26 +-
 .../org/apache/commons/net/smtp/SMTPCommand.java   |   2 +-
 .../net/smtp/SMTPConnectionClosedException.java    |   2 +-
 .../org/apache/commons/net/smtp/SMTPReply.java     |  10 +-
 .../org/apache/commons/net/smtp/SMTPSClient.java   |  32 +--
 .../apache/commons/net/smtp/SimpleSMTPHeader.java  |   8 +-
 .../commons/net/telnet/EchoOptionHandler.java      |   4 +-
 .../net/telnet/InvalidTelnetOptionException.java   |   2 +-
 .../commons/net/telnet/SimpleOptionHandler.java    |  12 +-
 .../net/telnet/SuppressGAOptionHandler.java        |   4 +-
 .../java/org/apache/commons/net/telnet/Telnet.java | 104 +++----
 .../apache/commons/net/telnet/TelnetClient.java    |  30 +-
 .../apache/commons/net/telnet/TelnetCommand.java   |   4 +-
 .../commons/net/telnet/TelnetInputStream.java      |  34 +--
 .../apache/commons/net/telnet/TelnetOption.java    |   4 +-
 .../commons/net/telnet/TelnetOptionHandler.java    |  24 +-
 .../commons/net/telnet/TelnetOutputStream.java     |   6 +-
 .../net/telnet/TerminalTypeOptionHandler.java      |  16 +-
 .../net/telnet/WindowSizeOptionHandler.java        |  20 +-
 .../java/org/apache/commons/net/tftp/TFTP.java     |  16 +-
 .../org/apache/commons/net/tftp/TFTPAckPacket.java |   8 +-
 .../org/apache/commons/net/tftp/TFTPClient.java    |  70 ++---
 .../apache/commons/net/tftp/TFTPDataPacket.java    |  16 +-
 .../apache/commons/net/tftp/TFTPErrorPacket.java   |   8 +-
 .../org/apache/commons/net/tftp/TFTPPacket.java    |   8 +-
 .../commons/net/tftp/TFTPPacketException.java      |   2 +-
 .../commons/net/tftp/TFTPReadRequestPacket.java    |   6 +-
 .../apache/commons/net/tftp/TFTPRequestPacket.java |  14 +-
 .../commons/net/tftp/TFTPWriteRequestPacket.java   |   6 +-
 .../org/apache/commons/net/time/TimeUDPClient.java |   8 +-
 .../java/org/apache/commons/net/util/Base64.java   | 110 +++----
 .../java/org/apache/commons/net/util/Charsets.java |   4 +-
 .../apache/commons/net/util/KeyManagerUtils.java   |  42 +--
 .../org/apache/commons/net/util/ListenerList.java  |   4 +-
 .../apache/commons/net/util/SSLContextUtils.java   |   8 +-
 .../apache/commons/net/util/SSLSocketUtils.java    |  24 +-
 .../org/apache/commons/net/util/SubnetUtils.java   |  52 ++--
 .../apache/commons/net/util/TrustManagerUtils.java |  14 +-
 .../org/apache/commons/net/whois/WhoisClient.java  |   4 +-
 .../commons/net/SocketClientFunctionalTest.java    |   4 +-
 .../org/apache/commons/net/SocketClientTest.java   |   4 +-
 .../org/apache/commons/net/SubnetUtilsTest.java    |  76 ++---
 .../org/apache/commons/net/examples/MainTest.java  |  36 +--
 .../net/ftp/FTPClientConfigFunctionalTest.java     |  28 +-
 .../commons/net/ftp/FTPClientConfigTest.java       |  44 +--
 .../org/apache/commons/net/ftp/FTPClientTest.java  |  36 +--
 .../org/apache/commons/net/ftp/FTPCommandTest.java |   2 +-
 .../org/apache/commons/net/ftp/FTPSClientTest.java |  12 +-
 .../commons/net/ftp/ListingFunctionalTest.java     |  70 ++---
 .../apache/commons/net/ftp/TestConnectTimeout.java |   8 +-
 .../ftp/parser/CompositeFTPParseTestFramework.java |  30 +-
 .../DefaultFTPFileEntryParserFactoryTest.java      |  28 +-
 .../commons/net/ftp/parser/DownloadListings.java   |  30 +-
 .../parser/EnterpriseUnixFTPEntryParserTest.java   |  10 +-
 .../net/ftp/parser/FTPConfigEntryParserTest.java   |  16 +-
 .../net/ftp/parser/FTPParseTestFramework.java      |  30 +-
 .../net/ftp/parser/FTPTimestampParserImplTest.java | 192 ++++++-------
 .../commons/net/ftp/parser/MLSDComparison.java     |  70 ++---
 .../net/ftp/parser/MLSxEntryParserTest.java        |   4 +-
 .../net/ftp/parser/MVSFTPEntryParserTest.java      |  44 +--
 .../ftp/parser/MacOsPeterFTPEntryParserTest.java   |  12 +-
 .../net/ftp/parser/NTFTPEntryParserTest.java       |  32 +--
 .../net/ftp/parser/NetwareFTPEntryParserTest.java  |  12 +-
 .../net/ftp/parser/OS2FTPEntryParserTest.java      |   8 +-
 .../parser/OS400FTPEntryParserAdditionalTest.java  |  12 +-
 .../net/ftp/parser/OS400FTPEntryParserTest.java    |  16 +-
 .../net/ftp/parser/UnixFTPEntryParserTest.java     |  70 ++---
 .../net/ftp/parser/VMSFTPEntryParserTest.java      |  28 +-
 .../java/org/apache/commons/net/imap/IMAPTest.java |   6 +-
 .../commons/net/io/ToNetASCIIInputStreamTest.java  |  20 +-
 .../org/apache/commons/net/nntp/TestThreader.java  |  24 +-
 .../org/apache/commons/net/ntp/TestNtpClient.java  |  22 +-
 .../org/apache/commons/net/ntp/TestNtpPacket.java  |  36 +--
 .../org/apache/commons/net/ntp/TestTimeInfo.java   |  36 +--
 .../org/apache/commons/net/ntp/TimeStampTest.java  |  26 +-
 .../commons/net/pop3/POP3ClientCommandsTest.java   |  26 +-
 .../apache/commons/net/pop3/POP3ClientTest.java    |   2 +-
 .../commons/net/pop3/POP3ConstructorTest.java      |   8 +-
 .../commons/net/smtp/SimpleSMTPHeaderTestCase.java |  30 +-
 .../commons/net/telnet/EchoOptionHandlerTest.java  |   8 +-
 .../net/telnet/SimpleOptionHandlerTest.java        |   8 +-
 .../net/telnet/SuppressGAOptionHandlerTest.java    |   8 +-
 .../net/telnet/TelnetClientFunctionalTest.java     |  12 +-
 .../commons/net/telnet/TelnetClientTest.java       | 190 ++++++-------
 .../commons/net/telnet/TelnetTestResponder.java    |  12 +-
 .../commons/net/telnet/TelnetTestSimpleServer.java |  14 +-
 .../net/telnet/TerminalTypeOptionHandlerTest.java  |  16 +-
 .../net/telnet/WindowSizeOptionHandlerTest.java    |  22 +-
 .../org/apache/commons/net/tftp/TFTPServer.java    |  98 +++----
 .../apache/commons/net/tftp/TFTPServerMain.java    |  18 +-
 .../commons/net/tftp/TFTPServerPathTest.java       |  38 +--
 .../java/org/apache/commons/net/tftp/TFTPTest.java |  34 +--
 .../apache/commons/net/time/TimeTCPClientTest.java |  14 +-
 .../commons/net/time/TimeTestSimpleServer.java     |  18 +-
 .../org/apache/commons/net/util/Base64Test.java    |  12 +-
 .../java/org/apache/commons/net/util/UtilTest.java |  56 ++--
 227 files changed, 2944 insertions(+), 2942 deletions(-)

diff --git a/src/main/java/org/apache/commons/net/DatagramSocketClient.java b/src/main/java/org/apache/commons/net/DatagramSocketClient.java
index 4273d2a..a39a80b 100644
--- a/src/main/java/org/apache/commons/net/DatagramSocketClient.java
+++ b/src/main/java/org/apache/commons/net/DatagramSocketClient.java
@@ -119,7 +119,7 @@ public abstract class DatagramSocketClient
      * @throws SocketException If the socket could not be opened or the
      *   timeout could not be set.
      ***/
-    public void open(int port) throws SocketException
+    public void open(final int port) throws SocketException
     {
         _socket_ = _socketFactory_.createDatagramSocket(port);
         _socket_.setSoTimeout(_timeout_);
@@ -141,7 +141,7 @@ public abstract class DatagramSocketClient
      * @throws SocketException If the socket could not be opened or the
      *   timeout could not be set.
      ***/
-    public void open(int port, InetAddress laddr) throws SocketException
+    public void open(final int port, final InetAddress laddr) throws SocketException
     {
         _socket_ = _socketFactory_.createDatagramSocket(port, laddr);
         _socket_.setSoTimeout(_timeout_);
@@ -188,7 +188,7 @@ public abstract class DatagramSocketClient
      * @param timeout  The timeout in milliseconds to use for the datagram socket
      *                 connection.
      ***/
-    public void setDefaultTimeout(int timeout)
+    public void setDefaultTimeout(final int timeout)
     {
         _timeout_ = timeout;
     }
@@ -216,7 +216,7 @@ public abstract class DatagramSocketClient
      *                 open datagram socket connection.
      * @throws SocketException if an error setting the timeout
      ***/
-    public void setSoTimeout(int timeout) throws SocketException
+    public void setSoTimeout(final int timeout) throws SocketException
     {
         _socket_.setSoTimeout(timeout);
     }
@@ -272,7 +272,7 @@ public abstract class DatagramSocketClient
      * @param factory  The new DatagramSocketFactory the DatagramSocketClient
      * should use.
      ***/
-    public void setDatagramSocketFactory(DatagramSocketFactory factory)
+    public void setDatagramSocketFactory(final DatagramSocketFactory factory)
     {
         if (factory == null) {
             _socketFactory_ = __DEFAULT_SOCKET_FACTORY;
@@ -309,7 +309,7 @@ public abstract class DatagramSocketClient
      * @param charset the charset.
      * @since 3.3
      */
-    public void setCharset(Charset charset) {
+    public void setCharset(final Charset charset) {
         this.charset = charset;
     }
 }
diff --git a/src/main/java/org/apache/commons/net/DefaultDatagramSocketFactory.java b/src/main/java/org/apache/commons/net/DefaultDatagramSocketFactory.java
index 7ad1997..b215e91 100644
--- a/src/main/java/org/apache/commons/net/DefaultDatagramSocketFactory.java
+++ b/src/main/java/org/apache/commons/net/DefaultDatagramSocketFactory.java
@@ -56,7 +56,7 @@ public class DefaultDatagramSocketFactory implements DatagramSocketFactory
      * @throws SocketException If the socket could not be created.
      ***/
     @Override
-    public DatagramSocket createDatagramSocket(int port) throws SocketException
+    public DatagramSocket createDatagramSocket(final int port) throws SocketException
     {
         return new DatagramSocket(port);
     }
@@ -71,7 +71,7 @@ public class DefaultDatagramSocketFactory implements DatagramSocketFactory
      * @throws SocketException If the socket could not be created.
      ***/
     @Override
-    public DatagramSocket createDatagramSocket(int port, InetAddress laddr)
+    public DatagramSocket createDatagramSocket(final int port, final InetAddress laddr)
     throws SocketException
     {
         return new DatagramSocket(port, laddr);
diff --git a/src/main/java/org/apache/commons/net/DefaultSocketFactory.java b/src/main/java/org/apache/commons/net/DefaultSocketFactory.java
index 3e68b75..4e5faac 100644
--- a/src/main/java/org/apache/commons/net/DefaultSocketFactory.java
+++ b/src/main/java/org/apache/commons/net/DefaultSocketFactory.java
@@ -59,7 +59,7 @@ public class DefaultSocketFactory extends SocketFactory
      * @param proxy The Proxy to use when creating new Sockets.
      * @since 3.2
      */
-    public DefaultSocketFactory(Proxy proxy)
+    public DefaultSocketFactory(final Proxy proxy)
     {
         connProxy = proxy;
     }
@@ -91,12 +91,12 @@ public class DefaultSocketFactory extends SocketFactory
      * @throws IOException If an I/O error occurs while creating the Socket.
      ***/
     @Override
-    public Socket createSocket(String host, int port)
+    public Socket createSocket(final String host, final int port)
     throws UnknownHostException, IOException
     {
         if (connProxy != null)
         {
-            Socket s = new Socket(connProxy);
+            final Socket s = new Socket(connProxy);
             s.connect(new InetSocketAddress(host, port));
             return s;
         }
@@ -112,12 +112,12 @@ public class DefaultSocketFactory extends SocketFactory
      * @throws IOException If an I/O error occurs while creating the Socket.
      ***/
     @Override
-    public Socket createSocket(InetAddress address, int port)
+    public Socket createSocket(final InetAddress address, final int port)
     throws IOException
     {
         if (connProxy != null)
         {
-            Socket s = new Socket(connProxy);
+            final Socket s = new Socket(connProxy);
             s.connect(new InetSocketAddress(address, port));
             return s;
         }
@@ -137,13 +137,13 @@ public class DefaultSocketFactory extends SocketFactory
      * @throws IOException If an I/O error occurs while creating the Socket.
      ***/
     @Override
-    public Socket createSocket(String host, int port,
-                               InetAddress localAddr, int localPort)
+    public Socket createSocket(final String host, final int port,
+                               final InetAddress localAddr, final int localPort)
     throws UnknownHostException, IOException
     {
         if (connProxy != null)
         {
-            Socket s = new Socket(connProxy);
+            final Socket s = new Socket(connProxy);
             s.bind(new InetSocketAddress(localAddr, localPort));
             s.connect(new InetSocketAddress(host, port));
             return s;
@@ -163,13 +163,13 @@ public class DefaultSocketFactory extends SocketFactory
      * @throws IOException If an I/O error occurs while creating the Socket.
      ***/
     @Override
-    public Socket createSocket(InetAddress address, int port,
-                               InetAddress localAddr, int localPort)
+    public Socket createSocket(final InetAddress address, final int port,
+                               final InetAddress localAddr, final int localPort)
     throws IOException
     {
         if (connProxy != null)
         {
-            Socket s = new Socket(connProxy);
+            final Socket s = new Socket(connProxy);
             s.bind(new InetSocketAddress(localAddr, localPort));
             s.connect(new InetSocketAddress(address, port));
             return s;
@@ -186,7 +186,7 @@ public class DefaultSocketFactory extends SocketFactory
      * @throws IOException If an I/O error occurs while creating
      *                        the ServerSocket.
      ***/
-    public ServerSocket createServerSocket(int port) throws IOException
+    public ServerSocket createServerSocket(final int port) throws IOException
     {
         return new ServerSocket(port);
     }
@@ -202,7 +202,7 @@ public class DefaultSocketFactory extends SocketFactory
      * @throws IOException If an I/O error occurs while creating
      *                        the ServerSocket.
      ***/
-    public ServerSocket createServerSocket(int port, int backlog)
+    public ServerSocket createServerSocket(final int port, final int backlog)
     throws IOException
     {
         return new ServerSocket(port, backlog);
@@ -221,8 +221,8 @@ public class DefaultSocketFactory extends SocketFactory
      * @throws IOException If an I/O error occurs while creating
      *                        the ServerSocket.
      ***/
-    public ServerSocket createServerSocket(int port, int backlog,
-                                           InetAddress bindAddr)
+    public ServerSocket createServerSocket(final int port, final int backlog,
+                                           final InetAddress bindAddr)
     throws IOException
     {
         return new ServerSocket(port, backlog, bindAddr);
diff --git a/src/main/java/org/apache/commons/net/MalformedServerReplyException.java b/src/main/java/org/apache/commons/net/MalformedServerReplyException.java
index e5ade4e..15a8a03 100644
--- a/src/main/java/org/apache/commons/net/MalformedServerReplyException.java
+++ b/src/main/java/org/apache/commons/net/MalformedServerReplyException.java
@@ -48,7 +48,7 @@ public class MalformedServerReplyException extends IOException
      *
      * @param message  The message explaining the reason for the exception.
      ***/
-    public MalformedServerReplyException(String message)
+    public MalformedServerReplyException(final String message)
     {
         super(message);
     }
diff --git a/src/main/java/org/apache/commons/net/PrintCommandListener.java b/src/main/java/org/apache/commons/net/PrintCommandListener.java
index 8fff4ed..1ccb1c7 100644
--- a/src/main/java/org/apache/commons/net/PrintCommandListener.java
+++ b/src/main/java/org/apache/commons/net/PrintCommandListener.java
@@ -42,7 +42,7 @@ public class PrintCommandListener implements ProtocolCommandListener
      * e.g. System.out
      * @since 3.0
      */
-    public PrintCommandListener(PrintStream stream)
+    public PrintCommandListener(final PrintStream stream)
     {
         this(new PrintWriter(stream));
     }
@@ -56,7 +56,7 @@ public class PrintCommandListener implements ProtocolCommandListener
      *
      * @since 3.0
      */
-    public PrintCommandListener(PrintStream stream, boolean suppressLogin) {
+    public PrintCommandListener(final PrintStream stream, final boolean suppressLogin) {
         this(new PrintWriter(stream), suppressLogin);
     }
 
@@ -70,7 +70,7 @@ public class PrintCommandListener implements ProtocolCommandListener
      *
      * @since 3.0
      */
-    public PrintCommandListener(PrintStream stream, boolean suppressLogin, char eolMarker) {
+    public PrintCommandListener(final PrintStream stream, final boolean suppressLogin, final char eolMarker) {
         this(new PrintWriter(stream), suppressLogin, eolMarker);
     }
 
@@ -85,7 +85,7 @@ public class PrintCommandListener implements ProtocolCommandListener
      *
      * @since 3.0
      */
-    public PrintCommandListener(PrintStream stream, boolean suppressLogin, char eolMarker, boolean showDirection) {
+    public PrintCommandListener(final PrintStream stream, final boolean suppressLogin, final char eolMarker, final boolean showDirection) {
         this(new PrintWriter(stream), suppressLogin, eolMarker, showDirection);
     }
 
@@ -94,7 +94,7 @@ public class PrintCommandListener implements ProtocolCommandListener
      *
      * @param writer where to write the commands and responses
      */
-    public PrintCommandListener(PrintWriter writer)
+    public PrintCommandListener(final PrintWriter writer)
     {
         this(writer, false);
     }
@@ -107,7 +107,7 @@ public class PrintCommandListener implements ProtocolCommandListener
      *
      * @since 3.0
      */
-    public PrintCommandListener(PrintWriter writer, boolean suppressLogin)
+    public PrintCommandListener(final PrintWriter writer, final boolean suppressLogin)
     {
         this(writer, suppressLogin, (char) 0);
     }
@@ -122,7 +122,7 @@ public class PrintCommandListener implements ProtocolCommandListener
      *
      * @since 3.0
      */
-    public PrintCommandListener(PrintWriter writer, boolean suppressLogin, char eolMarker)
+    public PrintCommandListener(final PrintWriter writer, final boolean suppressLogin, final char eolMarker)
     {
         this(writer, suppressLogin, eolMarker, false);
     }
@@ -138,7 +138,7 @@ public class PrintCommandListener implements ProtocolCommandListener
      *
      * @since 3.0
      */
-    public PrintCommandListener(PrintWriter writer, boolean suppressLogin, char eolMarker, boolean showDirection)
+    public PrintCommandListener(final PrintWriter writer, final boolean suppressLogin, final char eolMarker, final boolean showDirection)
     {
         __writer = writer;
         __nologin = suppressLogin;
@@ -147,13 +147,13 @@ public class PrintCommandListener implements ProtocolCommandListener
     }
 
     @Override
-    public void protocolCommandSent(ProtocolCommandEvent event)
+    public void protocolCommandSent(final ProtocolCommandEvent event)
     {
         if (__directionMarker) {
             __writer.print("> ");
         }
         if (__nologin) {
-            String cmd = event.getCommand();
+            final String cmd = event.getCommand();
             if ("PASS".equalsIgnoreCase(cmd) || "USER".equalsIgnoreCase(cmd)) {
                 __writer.print(cmd);
                 __writer.println(" *******"); // Don't bother with EOL marker for this!
@@ -174,13 +174,13 @@ public class PrintCommandListener implements ProtocolCommandListener
         __writer.flush();
     }
 
-    private String getPrintableString(String msg){
+    private String getPrintableString(final String msg){
         if (__eolMarker == 0) {
             return msg;
         }
-        int pos = msg.indexOf(SocketClient.NETASCII_EOL);
+        final int pos = msg.indexOf(SocketClient.NETASCII_EOL);
         if (pos > 0) {
-            StringBuilder sb = new StringBuilder();
+            final StringBuilder sb = new StringBuilder();
             sb.append(msg.substring(0,pos));
             sb.append(__eolMarker);
             sb.append(msg.substring(pos));
@@ -190,7 +190,7 @@ public class PrintCommandListener implements ProtocolCommandListener
     }
 
     @Override
-    public void protocolReplyReceived(ProtocolCommandEvent event)
+    public void protocolReplyReceived(final ProtocolCommandEvent event)
     {
         if (__directionMarker) {
             __writer.print("< ");
diff --git a/src/main/java/org/apache/commons/net/ProtocolCommandEvent.java b/src/main/java/org/apache/commons/net/ProtocolCommandEvent.java
index d921c61..da9fce8 100644
--- a/src/main/java/org/apache/commons/net/ProtocolCommandEvent.java
+++ b/src/main/java/org/apache/commons/net/ProtocolCommandEvent.java
@@ -52,7 +52,7 @@ public class ProtocolCommandEvent extends EventObject
      * @param message The entire command string verbatim as sent to the server,
      *        including all arguments.
      ***/
-    public ProtocolCommandEvent(Object source, String command, String message)
+    public ProtocolCommandEvent(final Object source, final String command, final String message)
     {
         super(source);
         __replyCode = 0;
@@ -76,7 +76,7 @@ public class ProtocolCommandEvent extends EventObject
      *   strings like OK rather than integer codes (i.e., POP3Repy.OK).
      * @param message The entire reply as received from the server.
      ***/
-    public ProtocolCommandEvent(Object source, int replyCode, String message)
+    public ProtocolCommandEvent(final Object source, final int replyCode, final String message)
     {
         super(source);
         __replyCode = replyCode;
diff --git a/src/main/java/org/apache/commons/net/ProtocolCommandSupport.java b/src/main/java/org/apache/commons/net/ProtocolCommandSupport.java
index 95611f0..3e1017d 100644
--- a/src/main/java/org/apache/commons/net/ProtocolCommandSupport.java
+++ b/src/main/java/org/apache/commons/net/ProtocolCommandSupport.java
@@ -46,7 +46,7 @@ public class ProtocolCommandSupport implements Serializable
      *
      * @param source  The source to use for all generated ProtocolCommandEvents.
      ***/
-    public ProtocolCommandSupport(Object source)
+    public ProtocolCommandSupport(final Object source)
     {
         __listeners = new ListenerList();
         __source = source;
@@ -64,13 +64,13 @@ public class ProtocolCommandSupport implements Serializable
      * @param message The entire command string verbatim as sent to the server,
      *        including all arguments.
      ***/
-    public void fireCommandSent(String command, String message)
+    public void fireCommandSent(final String command, final String message)
     {
         ProtocolCommandEvent event;
 
         event = new ProtocolCommandEvent(__source, command, message);
 
-        for (EventListener listener : __listeners)
+        for (final EventListener listener : __listeners)
         {
            ((ProtocolCommandListener)listener).protocolCommandSent(event);
         }
@@ -89,12 +89,12 @@ public class ProtocolCommandSupport implements Serializable
      *   strings like OK rather than integer codes (i.e., POP3Repy.OK).
      * @param message The entire reply as received from the server.
      ***/
-    public void fireReplyReceived(int replyCode, String message)
+    public void fireReplyReceived(final int replyCode, final String message)
     {
         ProtocolCommandEvent event;
         event = new ProtocolCommandEvent(__source, replyCode, message);
 
-        for (EventListener listener : __listeners)
+        for (final EventListener listener : __listeners)
         {
             ((ProtocolCommandListener)listener).protocolReplyReceived(event);
         }
@@ -105,7 +105,7 @@ public class ProtocolCommandSupport implements Serializable
      *
      * @param listener  The ProtocolCommandListener to add.
      ***/
-    public void addProtocolCommandListener(ProtocolCommandListener listener)
+    public void addProtocolCommandListener(final ProtocolCommandListener listener)
     {
         __listeners.addListener(listener);
     }
@@ -115,7 +115,7 @@ public class ProtocolCommandSupport implements Serializable
      *
      * @param listener  The ProtocolCommandListener to remove.
      ***/
-    public void removeProtocolCommandListener(ProtocolCommandListener listener)
+    public void removeProtocolCommandListener(final ProtocolCommandListener listener)
     {
         __listeners.removeListener(listener);
     }
diff --git a/src/main/java/org/apache/commons/net/SocketClient.java b/src/main/java/org/apache/commons/net/SocketClient.java
index 6c938b5..4c854e5 100644
--- a/src/main/java/org/apache/commons/net/SocketClient.java
+++ b/src/main/java/org/apache/commons/net/SocketClient.java
@@ -174,7 +174,7 @@ public abstract class SocketClient
      *  cases you will only want to catch IOException since SocketException is
      *  derived from it.
      */
-    public void connect(InetAddress host, int port)
+    public void connect(final InetAddress host, final int port)
     throws SocketException, IOException
     {
         _hostname_ = null;
@@ -195,7 +195,7 @@ public abstract class SocketClient
      *  derived from it.
      * @throws java.net.UnknownHostException If the hostname cannot be resolved.
      */
-    public void connect(String hostname, int port)
+    public void connect(final String hostname, final int port)
     throws SocketException, IOException
     {
         _hostname_ = hostname;
@@ -218,8 +218,8 @@ public abstract class SocketClient
      *  cases you will only want to catch IOException since SocketException is
      *  derived from it.
      */
-    public void connect(InetAddress host, int port,
-                        InetAddress localAddr, int localPort)
+    public void connect(final InetAddress host, final int port,
+                        final InetAddress localAddr, final int localPort)
     throws SocketException, IOException
     {
         _hostname_ = null;
@@ -227,7 +227,7 @@ public abstract class SocketClient
     }
 
     // helper method to allow code to be shared with connect(String,...) methods
-    private void _connect(InetAddress host, int port, InetAddress localAddr, int localPort)
+    private void _connect(final InetAddress host, final int port, final InetAddress localAddr, final int localPort)
         throws SocketException, IOException
     {
         _socket_ = _socketFactory_.createSocket();
@@ -260,8 +260,8 @@ public abstract class SocketClient
      *  derived from it.
      * @throws java.net.UnknownHostException If the hostname cannot be resolved.
      */
-    public void connect(String hostname, int port,
-                        InetAddress localAddr, int localPort)
+    public void connect(final String hostname, final int port,
+                        final InetAddress localAddr, final int localPort)
     throws SocketException, IOException
     {
         _hostname_ = hostname;
@@ -281,7 +281,7 @@ public abstract class SocketClient
      *  cases you will only want to catch IOException since SocketException is
      *  derived from it.
      */
-    public void connect(InetAddress host) throws SocketException, IOException
+    public void connect(final InetAddress host) throws SocketException, IOException
     {
         _hostname_ = null;
         connect(host, _defaultPort_);
@@ -301,7 +301,7 @@ public abstract class SocketClient
      *  derived from it.
      * @throws java.net.UnknownHostException If the hostname cannot be resolved.
      */
-    public void connect(String hostname) throws SocketException, IOException
+    public void connect(final String hostname) throws SocketException, IOException
     {
         connect(hostname, _defaultPort_);
     }
@@ -328,21 +328,21 @@ public abstract class SocketClient
         _output_ = null;
     }
 
-    private void closeQuietly(Socket socket) {
+    private void closeQuietly(final Socket socket) {
         if (socket != null){
             try {
                 socket.close();
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 // Ignored
             }
         }
     }
 
-    private void closeQuietly(Closeable close){
+    private void closeQuietly(final Closeable close){
         if (close != null){
             try {
                 close.close();
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 // Ignored
             }
         }
@@ -400,7 +400,7 @@ public abstract class SocketClient
                 _socket_.getInputStream();
                 _socket_.getOutputStream();
             }
-            catch (IOException ioex)
+            catch (final IOException ioex)
             {
                 return false;
             }
@@ -418,7 +418,7 @@ public abstract class SocketClient
      * <p>
      * @param port  The default port to set.
      */
-    public void setDefaultPort(int port)
+    public void setDefaultPort(final int port)
     {
         _defaultPort_ = port;
     }
@@ -446,7 +446,7 @@ public abstract class SocketClient
      * @param timeout  The timeout in milliseconds to use for the socket
      *                 connection.
      */
-    public void setDefaultTimeout(int timeout)
+    public void setDefaultTimeout(final int timeout)
     {
         _timeout_ = timeout;
     }
@@ -477,7 +477,7 @@ public abstract class SocketClient
      * @throws SocketException If the operation fails.
      * @throws NullPointerException if the socket is not currently open
      */
-    public void setSoTimeout(int timeout) throws SocketException
+    public void setSoTimeout(final int timeout) throws SocketException
     {
         _socket_.setSoTimeout(timeout);
     }
@@ -490,7 +490,7 @@ public abstract class SocketClient
      * @throws SocketException never thrown, but subclasses might want to do so
      * @since 2.0
      */
-    public void setSendBufferSize(int size) throws SocketException {
+    public void setSendBufferSize(final int size) throws SocketException {
         sendBufferSize = size;
     }
 
@@ -510,7 +510,7 @@ public abstract class SocketClient
      * @throws SocketException never (but subclasses may wish to do so)
      * @since 2.0
      */
-    public void setReceiveBufferSize(int size) throws SocketException  {
+    public void setReceiveBufferSize(final int size) throws SocketException  {
         receiveBufferSize = size;
     }
 
@@ -543,7 +543,7 @@ public abstract class SocketClient
      * @throws SocketException If the operation fails.
      * @throws NullPointerException if the socket is not currently open
      */
-    public void setTcpNoDelay(boolean on) throws SocketException
+    public void setTcpNoDelay(final boolean on) throws SocketException
     {
         _socket_.setTcpNoDelay(on);
     }
@@ -575,7 +575,7 @@ public abstract class SocketClient
      * @throws NullPointerException if the socket is not currently open
      * @since 2.2
      */
-    public void setKeepAlive(boolean keepAlive) throws SocketException {
+    public void setKeepAlive(final boolean keepAlive) throws SocketException {
         _socket_.setKeepAlive(keepAlive);
     }
 
@@ -599,7 +599,7 @@ public abstract class SocketClient
      * @throws SocketException If the operation fails.
      * @throws NullPointerException if the socket is not currently open
      */
-    public void setSoLinger(boolean on, int val) throws SocketException
+    public void setSoLinger(final boolean on, final int val) throws SocketException
     {
         _socket_.setSoLinger(on, val);
     }
@@ -682,7 +682,7 @@ public abstract class SocketClient
      * @param socket the item to check against
      * @return True if the remote hosts are the same, false if not.
      */
-    public boolean verifyRemote(Socket socket)
+    public boolean verifyRemote(final Socket socket)
     {
         InetAddress host1, host2;
 
@@ -702,7 +702,7 @@ public abstract class SocketClient
      * <p>
      * @param factory  The new SocketFactory the SocketClient should use.
      */
-    public void setSocketFactory(SocketFactory factory)
+    public void setSocketFactory(final SocketFactory factory)
     {
         if (factory == null) {
             _socketFactory_ = __DEFAULT_SOCKET_FACTORY;
@@ -724,7 +724,7 @@ public abstract class SocketClient
      * @param factory  The new ServerSocketFactory the SocketClient should use.
      * @since 2.0
      */
-    public void setServerSocketFactory(ServerSocketFactory factory) {
+    public void setServerSocketFactory(final ServerSocketFactory factory) {
         if (factory == null) {
             _serverSocketFactory_ = __DEFAULT_SERVER_SOCKET_FACTORY;
         } else {
@@ -738,7 +738,7 @@ public abstract class SocketClient
      * @param connectTimeout The connection timeout to use (in ms)
      * @since 2.0
      */
-    public void setConnectTimeout(int connectTimeout) {
+    public void setConnectTimeout(final int connectTimeout) {
         this.connectTimeout = connectTimeout;
     }
 
@@ -767,7 +767,7 @@ public abstract class SocketClient
      * @param listener  The ProtocolCommandListener to add.
      * @since 3.0
      */
-    public void addProtocolCommandListener(ProtocolCommandListener listener) {
+    public void addProtocolCommandListener(final ProtocolCommandListener listener) {
         getCommandSupport().addProtocolCommandListener(listener);
     }
 
@@ -777,7 +777,7 @@ public abstract class SocketClient
      * @param listener  The ProtocolCommandListener to remove.
      * @since 3.0
      */
-    public void removeProtocolCommandListener(ProtocolCommandListener listener) {
+    public void removeProtocolCommandListener(final ProtocolCommandListener listener) {
         getCommandSupport().removeProtocolCommandListener(listener);
     }
 
@@ -788,7 +788,7 @@ public abstract class SocketClient
      * @param reply the full reply text
      * @since 3.0
      */
-    protected void fireReplyReceived(int replyCode, String reply) {
+    protected void fireReplyReceived(final int replyCode, final String reply) {
         if (getCommandSupport().getListenerCount() > 0) {
             getCommandSupport().fireReplyReceived(replyCode, reply);
         }
@@ -801,7 +801,7 @@ public abstract class SocketClient
      * @param message the complete message, including command name
      * @since 3.0
      */
-    protected void fireCommandSent(String command, String message) {
+    protected void fireCommandSent(final String command, final String message) {
         if (getCommandSupport().getListenerCount() > 0) {
             getCommandSupport().fireCommandSent(command, message);
         }
@@ -833,7 +833,7 @@ public abstract class SocketClient
      * @param proxy the new proxy for connections.
      * @since 3.2
      */
-    public void setProxy(Proxy proxy) {
+    public void setProxy(final Proxy proxy) {
         setSocketFactory(new DefaultSocketFactory(proxy));
         connProxy = proxy;
     }
@@ -874,7 +874,7 @@ public abstract class SocketClient
      * @param charset the charset.
      * @since 3.3
      */
-    public void setCharset(Charset charset) {
+    public void setCharset(final Charset charset) {
         this.charset = charset;
     }
 
diff --git a/src/main/java/org/apache/commons/net/bsd/RCommandClient.java b/src/main/java/org/apache/commons/net/bsd/RCommandClient.java
index 6819cae..d6c313a 100644
--- a/src/main/java/org/apache/commons/net/bsd/RCommandClient.java
+++ b/src/main/java/org/apache/commons/net/bsd/RCommandClient.java
@@ -123,7 +123,7 @@ public class RCommandClient extends RExecClient
                          getLocalAddress());
                 break; // got a socket
             }
-            catch (SocketException e)
+            catch (final SocketException e)
             {
                 continue;
             }
@@ -177,7 +177,7 @@ public class RCommandClient extends RExecClient
      *  cases you will only want to catch IOException since SocketException is
      *  derived from it.
      ***/
-    public void connect(InetAddress host, int port, InetAddress localAddr)
+    public void connect(final InetAddress host, final int port, final InetAddress localAddr)
     throws SocketException, BindException, IOException
     {
         int localPort;
@@ -191,10 +191,10 @@ public class RCommandClient extends RExecClient
                 _socket_ =
                     _socketFactory_.createSocket(host, port, localAddr, localPort);
             }
-            catch (BindException be) {
+            catch (final BindException be) {
                 continue;
             }
-            catch (SocketException e)
+            catch (final SocketException e)
             {
                 continue;
             }
@@ -226,7 +226,7 @@ public class RCommandClient extends RExecClient
      *  derived from it.
      ***/
     @Override
-    public void connect(InetAddress host, int port)
+    public void connect(final InetAddress host, final int port)
     throws SocketException, IOException
     {
         connect(host, port, InetAddress.getLocalHost());
@@ -250,7 +250,7 @@ public class RCommandClient extends RExecClient
      * @throws UnknownHostException If the hostname cannot be resolved.
      ***/
     @Override
-    public void connect(String hostname, int port)
+    public void connect(final String hostname, final int port)
     throws SocketException, IOException, UnknownHostException
     {
         connect(InetAddress.getByName(hostname), port, InetAddress.getLocalHost());
@@ -273,7 +273,7 @@ public class RCommandClient extends RExecClient
      *  cases you will only want to catch IOException since SocketException is
      *  derived from it.
      ***/
-    public void connect(String hostname, int port, InetAddress localAddr)
+    public void connect(final String hostname, final int port, final InetAddress localAddr)
     throws SocketException, IOException
     {
         connect(InetAddress.getByName(hostname), port, localAddr);
@@ -301,8 +301,8 @@ public class RCommandClient extends RExecClient
      *            is specified.
      ***/
     @Override
-    public void connect(InetAddress host, int port,
-                        InetAddress localAddr, int localPort)
+    public void connect(final InetAddress host, final int port,
+                        final InetAddress localAddr, final int localPort)
     throws SocketException, IOException, IllegalArgumentException
     {
         if (localPort < MIN_CLIENT_PORT || localPort > MAX_CLIENT_PORT) {
@@ -334,8 +334,8 @@ public class RCommandClient extends RExecClient
      *            is specified.
      ***/
     @Override
-    public void connect(String hostname, int port,
-                        InetAddress localAddr, int localPort)
+    public void connect(final String hostname, final int port,
+                        final InetAddress localAddr, final int localPort)
     throws SocketException, IOException, IllegalArgumentException, UnknownHostException
     {
         if (localPort < MIN_CLIENT_PORT || localPort > MAX_CLIENT_PORT) {
@@ -381,8 +381,8 @@ public class RCommandClient extends RExecClient
      * @throws IOException If the rcommand() attempt fails.  The exception
      *            will contain a message indicating the nature of the failure.
      ***/
-    public void rcommand(String localUsername, String remoteUsername,
-                         String command, boolean separateErrorStream)
+    public void rcommand(final String localUsername, final String remoteUsername,
+                         final String command, final boolean separateErrorStream)
     throws IOException
     {
         rexec(localUsername, remoteUsername, command, separateErrorStream);
@@ -397,8 +397,8 @@ public class RCommandClient extends RExecClient
      * @param command the command
      * @throws IOException on error
      ***/
-    public void rcommand(String localUsername, String remoteUsername,
-                         String command)
+    public void rcommand(final String localUsername, final String remoteUsername,
+                         final String command)
     throws IOException
     {
         rcommand(localUsername, remoteUsername, command, false);
diff --git a/src/main/java/org/apache/commons/net/bsd/RExecClient.java b/src/main/java/org/apache/commons/net/bsd/RExecClient.java
index 37f9fbd..7bc5a1a 100644
--- a/src/main/java/org/apache/commons/net/bsd/RExecClient.java
+++ b/src/main/java/org/apache/commons/net/bsd/RExecClient.java
@@ -199,8 +199,8 @@ public class RExecClient extends SocketClient
      * @throws IOException If the rexec() attempt fails.  The exception
      *            will contain a message indicating the nature of the failure.
      ***/
-    public void rexec(String username, String password,
-                      String command, boolean separateErrorStream)
+    public void rexec(final String username, final String password,
+                      final String command, final boolean separateErrorStream)
     throws IOException
     {
         int ch;
@@ -224,7 +224,7 @@ public class RExecClient extends SocketClient
 
         ch = _input_.read();
         if (ch > 0) {
-            StringBuilder buffer = new StringBuilder();
+            final StringBuilder buffer = new StringBuilder();
 
             while ((ch = _input_.read()) != -1 && ch != '\n') {
                 buffer.append((char)ch);
@@ -244,8 +244,8 @@ public class RExecClient extends SocketClient
      * @param command the command to run
      * @throws IOException if an error occurs
      ***/
-    public void rexec(String username, String password,
-                      String command)
+    public void rexec(final String username, final String password,
+                      final String command)
     throws IOException
     {
         rexec(username, password, command, false);
@@ -277,7 +277,7 @@ public class RExecClient extends SocketClient
      *
      * @param enable True to enable verification, false to disable verification.
      ***/
-    public final void setRemoteVerificationEnabled(boolean enable)
+    public final void setRemoteVerificationEnabled(final boolean enable)
     {
         __remoteVerificationEnabled = enable;
     }
diff --git a/src/main/java/org/apache/commons/net/bsd/RLoginClient.java b/src/main/java/org/apache/commons/net/bsd/RLoginClient.java
index 9e60903..6599e48 100644
--- a/src/main/java/org/apache/commons/net/bsd/RLoginClient.java
+++ b/src/main/java/org/apache/commons/net/bsd/RLoginClient.java
@@ -108,8 +108,8 @@ public class RLoginClient extends RCommandClient
      * @throws IOException If the rlogin() attempt fails.  The exception
      *            will contain a message indicating the nature of the failure.
      ***/
-    public void rlogin(String localUsername, String remoteUsername,
-                       String terminalType, int terminalSpeed)
+    public void rlogin(final String localUsername, final String remoteUsername,
+                       final String terminalType, final int terminalSpeed)
     throws IOException
     {
         rexec(localUsername, remoteUsername, terminalType + "/" + terminalSpeed,
@@ -123,8 +123,8 @@ public class RLoginClient extends RCommandClient
      * @param terminalType the terminal type
      * @throws IOException on error
      ***/
-    public void rlogin(String localUsername, String remoteUsername,
-                       String terminalType)
+    public void rlogin(final String localUsername, final String remoteUsername,
+                       final String terminalType)
     throws IOException
     {
         rexec(localUsername, remoteUsername, terminalType, false);
diff --git a/src/main/java/org/apache/commons/net/chargen/CharGenUDPClient.java b/src/main/java/org/apache/commons/net/chargen/CharGenUDPClient.java
index 5b51965..a503eb7 100644
--- a/src/main/java/org/apache/commons/net/chargen/CharGenUDPClient.java
+++ b/src/main/java/org/apache/commons/net/chargen/CharGenUDPClient.java
@@ -89,7 +89,7 @@ public final class CharGenUDPClient extends DatagramSocketClient
      * @param port The port of the service.
      * @throws IOException If an error occurs while sending the datagram.
      ***/
-    public void send(InetAddress host, int port) throws IOException
+    public void send(final InetAddress host, final int port) throws IOException
     {
         __sendPacket.setAddress(host);
         __sendPacket.setPort(port);
@@ -100,7 +100,7 @@ public final class CharGenUDPClient extends DatagramSocketClient
      * @param host the destination host
      * @throws IOException on error
      ***/
-    public void send(InetAddress host) throws IOException
+    public void send(final InetAddress host) throws IOException
     {
         send(host, DEFAULT_PORT);
     }
diff --git a/src/main/java/org/apache/commons/net/daytime/DaytimeTCPClient.java b/src/main/java/org/apache/commons/net/daytime/DaytimeTCPClient.java
index 033a776..6dfc195 100644
--- a/src/main/java/org/apache/commons/net/daytime/DaytimeTCPClient.java
+++ b/src/main/java/org/apache/commons/net/daytime/DaytimeTCPClient.java
@@ -68,7 +68,7 @@ public final class DaytimeTCPClient extends SocketClient
     public String getTime() throws IOException
     {
         int read;
-        StringBuilder result = new StringBuilder(__buffer.length);
+        final StringBuilder result = new StringBuilder(__buffer.length);
         BufferedReader reader;
 
         reader = new BufferedReader(new InputStreamReader(_input_, getCharset()));
diff --git a/src/main/java/org/apache/commons/net/daytime/DaytimeUDPClient.java b/src/main/java/org/apache/commons/net/daytime/DaytimeUDPClient.java
index 2dc8618..3f2d941 100644
--- a/src/main/java/org/apache/commons/net/daytime/DaytimeUDPClient.java
+++ b/src/main/java/org/apache/commons/net/daytime/DaytimeUDPClient.java
@@ -56,7 +56,7 @@ public final class DaytimeUDPClient extends DatagramSocketClient
      * @return The time string.
      * @throws IOException If an error occurs while retrieving the time.
      */
-    public String getTime(InetAddress host, int port) throws IOException
+    public String getTime(final InetAddress host, final int port) throws IOException
     {
         DatagramPacket sendPacket, receivePacket;
 
@@ -75,7 +75,7 @@ public final class DaytimeUDPClient extends DatagramSocketClient
      * @return  the time
      * @throws IOException on error
      */
-    public String getTime(InetAddress host) throws IOException
+    public String getTime(final InetAddress host) throws IOException
     {
         return getTime(host, DEFAULT_PORT);
     }
diff --git a/src/main/java/org/apache/commons/net/discard/DiscardUDPClient.java b/src/main/java/org/apache/commons/net/discard/DiscardUDPClient.java
index e7c092d..65fd497 100644
--- a/src/main/java/org/apache/commons/net/discard/DiscardUDPClient.java
+++ b/src/main/java/org/apache/commons/net/discard/DiscardUDPClient.java
@@ -60,7 +60,7 @@ public class DiscardUDPClient extends DatagramSocketClient
      * @throws IOException If an error occurs during the datagram send
      *            operation.
      ***/
-    public void send(byte[] data, int length, InetAddress host, int port)
+    public void send(final byte[] data, final int length, final InetAddress host, final int port)
     throws IOException
     {
         _sendPacket.setData(data);
@@ -80,7 +80,7 @@ public class DiscardUDPClient extends DatagramSocketClient
      * @see #send(byte[], int, InetAddress, int)
      * @throws IOException if an error occurs
      ***/
-    public void send(byte[] data, int length, InetAddress host)
+    public void send(final byte[] data, final int length, final InetAddress host)
     throws IOException
     {
         send(data, length, host, DEFAULT_PORT);
@@ -95,7 +95,7 @@ public class DiscardUDPClient extends DatagramSocketClient
      * @see #send(byte[], int, InetAddress, int)
      * @throws IOException if an error occurs
      ***/
-    public void send(byte[] data, InetAddress host) throws IOException
+    public void send(final byte[] data, final InetAddress host) throws IOException
     {
         send(data, data.length, host, DEFAULT_PORT);
     }
diff --git a/src/main/java/org/apache/commons/net/echo/EchoUDPClient.java b/src/main/java/org/apache/commons/net/echo/EchoUDPClient.java
index 96ab7df..723c514 100644
--- a/src/main/java/org/apache/commons/net/echo/EchoUDPClient.java
+++ b/src/main/java/org/apache/commons/net/echo/EchoUDPClient.java
@@ -57,7 +57,7 @@ public final class EchoUDPClient extends DiscardUDPClient
      *     operation.
      ***/
     @Override
-    public void send(byte[] data, int length, InetAddress host)
+    public void send(final byte[] data, final int length, final InetAddress host)
     throws IOException
     {
         send(data, length, host, DEFAULT_PORT);
@@ -66,7 +66,7 @@ public final class EchoUDPClient extends DiscardUDPClient
 
     /*** Same as <code> send(data, data.length, host) </code> ***/
     @Override
-    public void send(byte[] data, InetAddress host) throws IOException
+    public void send(final byte[] data, final InetAddress host) throws IOException
     {
         send(data, data.length, host, DEFAULT_PORT);
     }
@@ -83,7 +83,7 @@ public final class EchoUDPClient extends DiscardUDPClient
      * @return  Length of actual data received.
      * @throws IOException If an error occurs while receiving the data.
      ***/
-    public int receive(byte[] data, int length) throws IOException
+    public int receive(final byte[] data, final int length) throws IOException
     {
         __receivePacket.setData(data);
         __receivePacket.setLength(length);
@@ -96,7 +96,7 @@ public final class EchoUDPClient extends DiscardUDPClient
      * @return the number of bytes
      * @throws IOException on error
      ***/
-    public int receive(byte[] data) throws IOException
+    public int receive(final byte[] data) throws IOException
     {
         return receive(data, data.length);
     }
diff --git a/src/main/java/org/apache/commons/net/examples/Main.java b/src/main/java/org/apache/commons/net/examples/Main.java
index c6e1d6c..6c07163 100644
--- a/src/main/java/org/apache/commons/net/examples/Main.java
+++ b/src/main/java/org/apache/commons/net/examples/Main.java
@@ -41,7 +41,7 @@ public class Main {
      * are passed to the target class.
      * @throws Throwable if an error occurs
      */
-    public static void main(String[] args) throws Throwable  {
+    public static void main(final String[] args) throws Throwable  {
         final Properties fp = new Properties();
         final InputStream ras = Main.class.getResourceAsStream("examples.properties");
         if (ras != null) {
@@ -65,40 +65,41 @@ public class Main {
                 }
             }
             @SuppressWarnings("unchecked") // property names are Strings
+            final
             List<String> l = (List<String>) Collections.list(fp.propertyNames());
             if (l.isEmpty()) {
                 return;
             }
             Collections.sort(l);
             System.out.println("\nAliases and their classes:");
-            for(String s : l) {
+            for(final String s : l) {
                 System.out.printf("%-25s %s%n",s,fp.getProperty(s));
             }
             return;
         }
 
-        String shortName = args[0];
+        final String shortName = args[0];
         String fullName = fp.getProperty(shortName);
         if (fullName == null) {
             fullName = shortName;
         }
         fullName = fullName.replace('/', '.');
         try {
-            Class<?> clazz = Class.forName(fullName);
-            Method m = clazz.getDeclaredMethod("main", args.getClass());
-            String[] args2 = new String[args.length-1];
+            final Class<?> clazz = Class.forName(fullName);
+            final Method m = clazz.getDeclaredMethod("main", args.getClass());
+            final String[] args2 = new String[args.length-1];
             System.arraycopy(args, 1, args2, 0, args2.length);
             try {
                 m.invoke(null, (Object)args2);
-            } catch (InvocationTargetException ite) {
-                Throwable cause = ite.getCause();
+            } catch (final InvocationTargetException ite) {
+                final Throwable cause = ite.getCause();
                 if (cause != null) {
                     throw cause;
                 } else {
                     throw ite;
                 }
             }
-        } catch (ClassNotFoundException e) {
+        } catch (final ClassNotFoundException e) {
             System.out.println(e);
         }
     }
diff --git a/src/main/java/org/apache/commons/net/examples/cidr/SubnetUtilsExample.java b/src/main/java/org/apache/commons/net/examples/cidr/SubnetUtilsExample.java
index c12b649..57cb1b8 100644
--- a/src/main/java/org/apache/commons/net/examples/cidr/SubnetUtilsExample.java
+++ b/src/main/java/org/apache/commons/net/examples/cidr/SubnetUtilsExample.java
@@ -28,10 +28,10 @@ import org.apache.commons.net.util.SubnetUtils.SubnetInfo;
  */
 public class SubnetUtilsExample {
 
-    public static void main(String[] args) {
-        String subnet = "192.168.0.3/31";
-        SubnetUtils utils = new SubnetUtils(subnet);
-        SubnetInfo info = utils.getInfo();
+    public static void main(final String[] args) {
+        final String subnet = "192.168.0.3/31";
+        final SubnetUtils utils = new SubnetUtils(subnet);
+        final SubnetInfo info = utils.getInfo();
 
         System.out.printf("Subnet Information for %s:%n", subnet);
         System.out.println("--------------------------------------");
@@ -57,9 +57,9 @@ public class SubnetUtilsExample {
 
         final String prompt ="Enter an IP address (e.g. 192.168.0.10):";
         System.out.println(prompt);
-        Scanner scanner = new Scanner(System.in);
+        final Scanner scanner = new Scanner(System.in);
         while (scanner.hasNextLine()) {
-            String address = scanner.nextLine();
+            final String address = scanner.nextLine();
             System.out.println("The IP address [" + address + "] is "
                     + (info.isInRange(address) ? "" : "not ")
                     + "within the subnet [" + subnet + "]");
diff --git a/src/main/java/org/apache/commons/net/examples/ftp/FTPClientExample.java b/src/main/java/org/apache/commons/net/examples/ftp/FTPClientExample.java
index 2911f17..9691ad9 100644
--- a/src/main/java/org/apache/commons/net/examples/ftp/FTPClientExample.java
+++ b/src/main/java/org/apache/commons/net/examples/ftp/FTPClientExample.java
@@ -87,7 +87,7 @@ public final class FTPClientExample
         "\t-PrP password - HTTP Proxy server password\n" +
         "\t-# - add hash display during transfers\n";
 
-    public static void main(String[] args) throws UnknownHostException
+    public static void main(final String[] args) throws UnknownHostException
     {
         boolean storeFile = false, binaryTransfer = false, error = false, listFiles = false, listNames = false, hidden = false;
         boolean localActive = false, useEpsvWithIPv4 = false, feat = false, printHash = false;
@@ -206,7 +206,7 @@ public final class FTPClientExample
             }
             else if (args[base].equals("-PrH")) {
                 proxyHost = args[++base];
-                String parts[] = proxyHost.split(":");
+                final String parts[] = proxyHost.split(":");
                 if (parts.length == 2){
                     proxyHost=parts[0];
                     proxyPort=Integer.parseInt(parts[1]);
@@ -226,7 +226,7 @@ public final class FTPClientExample
             }
         }
 
-        int remain = args.length - base;
+        final int remain = args.length - base;
         if (username != null) {
             minParams -= 2;
         }
@@ -241,7 +241,7 @@ public final class FTPClientExample
 
         String server = args[base++];
         int port = 0;
-        String parts[] = server.split(":");
+        final String parts[] = server.split(":");
         if (parts.length == 2){
             server=parts[0];
             port=Integer.parseInt(parts[1]);
@@ -277,7 +277,7 @@ public final class FTPClientExample
             } else if (protocol.equals("false")) {
                 ftps = new FTPSClient(false);
             } else {
-                String prot[] = protocol.split(",");
+                final String prot[] = protocol.split(",");
                 if (prot.length == 1) { // Just protocol
                     ftps = new FTPSClient(protocol);
                 } else { // protocol,true|false
@@ -347,7 +347,7 @@ public final class FTPClientExample
                 System.exit(1);
             }
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             if (ftp.isConnected())
             {
@@ -355,7 +355,7 @@ public final class FTPClientExample
                 {
                     ftp.disconnect();
                 }
-                catch (IOException f)
+                catch (final IOException f)
                 {
                     // do nothing
                 }
@@ -413,13 +413,13 @@ __main:
             else if (listFiles || mlsd || mdtm || mlst || listNames || size)
             {
                 if (mlsd) {
-                    for (FTPFile f : ftp.mlistDir(remote)) {
+                    for (final FTPFile f : ftp.mlistDir(remote)) {
                         System.out.println(f.getRawListing());
                         System.out.println(f.toFormattedString(displayTimeZoneId));
                     }
                 }
                 if (mdtm) {
-                    FTPFile f = ftp.mdtmFile(remote);
+                    final FTPFile f = ftp.mdtmFile(remote);
                     if (f != null) {
                         System.out.println(f.getRawListing());
                         System.out.println(f.toFormattedString(displayTimeZoneId));
@@ -428,13 +428,13 @@ __main:
                     }
                 }
                 if (mlst) {
-                    FTPFile f = ftp.mlistFile(remote);
+                    final FTPFile f = ftp.mlistFile(remote);
                     if (f != null){
                         System.out.println(f.toFormattedString(displayTimeZoneId));
                     }
                 }
                 if (listNames) {
-                    for (String s : ftp.listNames(remote)) {
+                    for (final String s : ftp.listNames(remote)) {
                         System.out.println(s);
                     }
                 }
@@ -451,7 +451,7 @@ __main:
                         ftp.configure(config );
                     }
 
-                    for (FTPFile f : ftp.listFiles(remote)) {
+                    for (final FTPFile f : ftp.listFiles(remote)) {
                         System.out.println(f.getRawListing());
                         System.out.println(f.toFormattedString(displayTimeZoneId));
                     }
@@ -472,9 +472,9 @@ __main:
                     }
 
                     // Strings feature check
-                    String []features = ftp.featureValues(remote);
+                    final String []features = ftp.featureValues(remote);
                     if (features != null) {
-                        for(String f : features) {
+                        for(final String f : features) {
                             System.out.println("FEAT "+remote+"="+f+".");
                         }
                     } else {
@@ -522,13 +522,13 @@ __main:
 
             ftp.logout();
         }
-        catch (FTPConnectionClosedException e)
+        catch (final FTPConnectionClosedException e)
         {
             error = true;
             System.err.println("Server closed connection.");
             e.printStackTrace();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             error = true;
             e.printStackTrace();
@@ -541,7 +541,7 @@ __main:
                 {
                     ftp.disconnect();
                 }
-                catch (IOException f)
+                catch (final IOException f)
                 {
                     // do nothing
                 }
@@ -551,8 +551,9 @@ __main:
         System.exit(error ? 1 : 0);
     } // end main
 
-    private static void showCslStats(FTPClient ftp) {
+    private static void showCslStats(final FTPClient ftp) {
         @SuppressWarnings("deprecation") // debug code
+        final
         int []stats = ftp.getCslDebug();
         System.out.println("CslDebug="+Arrays.toString(stats));
 
@@ -563,14 +564,14 @@ __main:
             private long megsTotal = 0;
 
             @Override
-            public void bytesTransferred(CopyStreamEvent event) {
+            public void bytesTransferred(final CopyStreamEvent event) {
                 bytesTransferred(event.getTotalBytesTransferred(), event.getBytesTransferred(), event.getStreamSize());
             }
 
             @Override
-            public void bytesTransferred(long totalBytesTransferred,
-                    int bytesTransferred, long streamSize) {
-                long megs = totalBytesTransferred / 1000000;
+            public void bytesTransferred(final long totalBytesTransferred,
+                    final int bytesTransferred, final long streamSize) {
+                final long megs = totalBytesTransferred / 1000000;
                 for (long l = megsTotal; l < megs; l++) {
                     System.err.print("#");
                 }
diff --git a/src/main/java/org/apache/commons/net/examples/ftp/ServerToServerFTP.java b/src/main/java/org/apache/commons/net/examples/ftp/ServerToServerFTP.java
index ca0645f..f98139b 100644
--- a/src/main/java/org/apache/commons/net/examples/ftp/ServerToServerFTP.java
+++ b/src/main/java/org/apache/commons/net/examples/ftp/ServerToServerFTP.java
@@ -39,7 +39,7 @@ import org.apache.commons.net.ftp.FTPReply;
 public final class ServerToServerFTP
 {
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         String server1, username1, password1, file1;
         String server2, username2, password2, file2;
@@ -100,7 +100,7 @@ public final class ServerToServerFTP
                 System.exit(1);
             }
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             if (ftp1.isConnected())
             {
@@ -108,7 +108,7 @@ public final class ServerToServerFTP
                 {
                     ftp1.disconnect();
                 }
-                catch (IOException f)
+                catch (final IOException f)
                 {
                     // do nothing
                 }
@@ -137,7 +137,7 @@ public final class ServerToServerFTP
                 System.exit(1);
             }
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             if (ftp2.isConnected())
             {
@@ -145,7 +145,7 @@ public final class ServerToServerFTP
                 {
                     ftp2.disconnect();
                 }
-                catch (IOException f)
+                catch (final IOException f)
                 {
                     // do nothing
                 }
@@ -198,7 +198,7 @@ __main:
             }
 
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             System.exit(1);
@@ -213,7 +213,7 @@ __main:
                     ftp1.disconnect();
                 }
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 // do nothing
             }
@@ -226,7 +226,7 @@ __main:
                     ftp2.disconnect();
                 }
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 // do nothing
             }
diff --git a/src/main/java/org/apache/commons/net/examples/ftp/TFTPExample.java b/src/main/java/org/apache/commons/net/examples/ftp/TFTPExample.java
index a69b59f..aee4b74 100644
--- a/src/main/java/org/apache/commons/net/examples/ftp/TFTPExample.java
+++ b/src/main/java/org/apache/commons/net/examples/ftp/TFTPExample.java
@@ -63,7 +63,7 @@ public final class TFTPExample
         "\t-v Verbose (trace packets)\n"
         ;
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         boolean receiveFile = true, closed;
         int transferMode = TFTP.BINARY_MODE, argc;
@@ -117,7 +117,7 @@ public final class TFTPExample
         if (verbose) {
             tftp = new TFTPClient() {
                 @Override
-                protected void trace(String direction, TFTPPacket packet) {
+                protected void trace(final String direction, final TFTPPacket packet) {
                     System.out.println(direction + " " + packet);
                 }
             };
@@ -150,8 +150,8 @@ public final class TFTPExample
         System.out.println("OK");
     }
 
-    private static boolean send(int transferMode, String hostname, String localFilename, String remoteFilename,
-            TFTPClient tftp) {
+    private static boolean send(final int transferMode, final String hostname, final String localFilename, final String remoteFilename,
+            final TFTPClient tftp) {
         boolean closed;
         FileInputStream input = null;
 
@@ -160,7 +160,7 @@ public final class TFTPExample
         {
             input = new FileInputStream(localFilename);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             tftp.close();
             throw new RuntimeException("Error: could not open local file for reading.", e);
@@ -171,20 +171,20 @@ public final class TFTPExample
         // Try to send local file via TFTP
         try
         {
-            String [] parts = hostname.split(":");
+            final String [] parts = hostname.split(":");
             if (parts.length == 2) {
                 tftp.sendFile(remoteFilename, transferMode, input, parts[0], Integer.parseInt(parts[1]));
             } else {
                 tftp.sendFile(remoteFilename, transferMode, input, hostname);
             }
         }
-        catch (UnknownHostException e)
+        catch (final UnknownHostException e)
         {
             System.err.println("Error: could not resolve hostname.");
             System.err.println(e.getMessage());
             System.exit(1);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println("Error: I/O exception occurred while sending file.");
             System.err.println(e.getMessage());
@@ -199,8 +199,8 @@ public final class TFTPExample
         return closed;
     }
 
-    private static boolean receive(int transferMode, String hostname, String localFilename, String remoteFilename,
-            TFTPClient tftp) {
+    private static boolean receive(final int transferMode, final String hostname, final String localFilename, final String remoteFilename,
+            final TFTPClient tftp) {
         boolean closed;
         FileOutputStream output = null;
         File file;
@@ -219,7 +219,7 @@ public final class TFTPExample
         {
             output = new FileOutputStream(file);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             tftp.close();
             throw new RuntimeException("Error: could not open local file for writing.", e);
@@ -230,20 +230,20 @@ public final class TFTPExample
         // Try to receive remote file via TFTP
         try
         {
-            String [] parts = hostname.split(":");
+            final String [] parts = hostname.split(":");
             if (parts.length == 2) {
                 tftp.receiveFile(remoteFilename, transferMode, output, parts[0], Integer.parseInt(parts[1]));
             } else {
                 tftp.receiveFile(remoteFilename, transferMode, output, hostname);
             }
         }
-        catch (UnknownHostException e)
+        catch (final UnknownHostException e)
         {
             System.err.println("Error: could not resolve hostname.");
             System.err.println(e.getMessage());
             System.exit(1);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println(
                 "Error: I/O exception occurred while receiving file.");
@@ -259,7 +259,7 @@ public final class TFTPExample
         return closed;
     }
 
-    private static boolean close(TFTPClient tftp, Closeable output) {
+    private static boolean close(final TFTPClient tftp, final Closeable output) {
         boolean closed;
         tftp.close();
         try
@@ -269,7 +269,7 @@ public final class TFTPExample
             }
             closed = true;
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             closed = false;
             System.err.println("Error: error closing file.");
@@ -278,12 +278,12 @@ public final class TFTPExample
         return closed;
     }
 
-    private static void open(TFTPClient tftp) {
+    private static void open(final TFTPClient tftp) {
         try
         {
             tftp.open();
         }
-        catch (SocketException e)
+        catch (final SocketException e)
         {
             throw new RuntimeException("Error: could not open local UDP socket.", e);
         }
diff --git a/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java b/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java
index 7b13f08..035271a 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java
@@ -102,7 +102,7 @@ public final class IMAPExportMbox
     private static final int CONNECT_TIMEOUT = 10; // Seconds
     private static final int READ_TIMEOUT = 10;
 
-    public static void main(String[] args) throws IOException, URISyntaxException
+    public static void main(final String[] args) throws IOException, URISyntaxException
     {
         int connect_timeout = CONNECT_TIMEOUT;
         int read_timeout = READ_TIMEOUT;
@@ -157,8 +157,8 @@ public final class IMAPExportMbox
         URI uri;
         try {
             uri      = URI.create(uriString);
-        } catch(IllegalArgumentException e) { // cannot parse the path as is; let's pull it apart and try again
-            Matcher m = Pattern.compile("(imaps?://[^/]+)(/.*)").matcher(uriString);
+        } catch(final IllegalArgumentException e) { // cannot parse the path as is; let's pull it apart and try again
+            final Matcher m = Pattern.compile("(imaps?://[^/]+)(/.*)").matcher(uriString);
             if (m.matches()) {
                 uri = URI.create(m.group(1)); // Just the scheme and auth parts
                 uri = new URI(uri.getScheme(), uri.getAuthority(), m.group(2), null, null);
@@ -172,7 +172,7 @@ public final class IMAPExportMbox
         // Handle 0, 1 or multiple item names
         if (argCount > 3) {
             if (argCount > 4) {
-                StringBuilder sb = new StringBuilder();
+                final StringBuilder sb = new StringBuilder();
                 sb.append("(");
                 for(int i=4; i <= argCount; i++) {
                     if (i>4) {
@@ -212,16 +212,16 @@ public final class IMAPExportMbox
             chunkListener = new MboxListener(new BufferedWriter(new FileWriter(mbox)), eol, printHash, printMarker, checkSequence);
         }
 
-        String path = uri.getPath();
+        final String path = uri.getPath();
         if (path == null || path.length() < 1) {
             throw new IllegalArgumentException("Invalid folderPath: '" + path + "'");
         }
-        String folder = path.substring(1); // skip the leading /
+        final String folder = path.substring(1); // skip the leading /
 
         // suppress login details
         final PrintCommandListener listener = new PrintCommandListener(System.out, true) {
             @Override
-            public void protocolReplyReceived(ProtocolCommandEvent event) {
+            public void protocolReplyReceived(final ProtocolCommandEvent event) {
                 if (event.getReplyCode() != IMAPReply.PARTIAL){ // This is dealt with by the chunk listener
                     super.protocolReplyReceived(event);
                 }
@@ -241,7 +241,7 @@ public final class IMAPExportMbox
                 throw new IOException("Could not select folder: " + folder);
             }
 
-            for(String line : imap.getReplyStrings()) {
+            for(final String line : imap.getReplyStrings()) {
                 maxIndexInFolder = matches(line, PATEXISTS, 1);
                 if (maxIndexInFolder != null) {
                     break;
@@ -254,7 +254,7 @@ public final class IMAPExportMbox
 
 
             while(true) {
-                boolean ok = imap.fetch(sequenceSet, itemNames);
+                final boolean ok = imap.fetch(sequenceSet, itemNames);
                 // If the fetch failed, can we retry?
                 if (!ok && retryWaitSecs > 0 && chunkListener != null && checkSequence) {
                     final String replyString = imap.getReplyString(); //includes EOL
@@ -263,7 +263,7 @@ public final class IMAPExportMbox
                         sequenceSet = (chunkListener.lastSeq+1)+":*";
                         try {
                             Thread.sleep(retryWaitSecs * 1000);
-                        } catch (InterruptedException e) {
+                        } catch (final InterruptedException e) {
                             // ignored
                         }
                     } else {
@@ -274,8 +274,8 @@ public final class IMAPExportMbox
                 }
             }
 
-        } catch (IOException ioe) {
-            String count = chunkListener == null ? "?" : Integer.toString(chunkListener.total);
+        } catch (final IOException ioe) {
+            final String count = chunkListener == null ? "?" : Integer.toString(chunkListener.total);
             System.err.println(
                     "FETCH " + sequenceSet + " " + itemNames + " failed after processing " + count + " complete messages ");
             if (chunkListener != null) {
@@ -292,7 +292,7 @@ public final class IMAPExportMbox
                 chunkListener.close();
                 final Iterator<String> missingIds = chunkListener.missingIds.iterator();
                 if (missingIds.hasNext()) {
-                    StringBuilder sb = new StringBuilder();
+                    final StringBuilder sb = new StringBuilder();
                     for(;;) {
                         sb.append(missingIds.next());
                         if (!missingIds.hasNext()) {
@@ -314,13 +314,13 @@ public final class IMAPExportMbox
         }
     }
 
-    private static boolean startsWith(String input, Pattern pat) {
-        Matcher m = pat.matcher(input);
+    private static boolean startsWith(final String input, final Pattern pat) {
+        final Matcher m = pat.matcher(input);
         return m.lookingAt();
     }
 
-    private static String matches(String input, Pattern pat, int index) {
-        Matcher m = pat.matcher(input);
+    private static String matches(final String input, final Pattern pat, final int index) {
+        final Matcher m = pat.matcher(input);
         if (m.lookingAt()) {
             return m.group(index);
         }
@@ -345,7 +345,7 @@ public final class IMAPExportMbox
         private final boolean printMarker;
         private final boolean checkSequence;
 
-        MboxListener(BufferedWriter bw, String eol, boolean printHash, boolean printMarker, boolean checkSequence)
+        MboxListener(final BufferedWriter bw, final String eol, final boolean printHash, final boolean printMarker, final boolean checkSequence)
                 throws IOException {
           this.eol = eol;
           this.printHash = printHash;
@@ -356,16 +356,16 @@ public final class IMAPExportMbox
         }
 
         @Override
-        public boolean chunkReceived(IMAP imap) {
+        public boolean chunkReceived(final IMAP imap) {
             final String[] replyStrings = imap.getReplyStrings();
             Date received = new Date();
             final String firstLine = replyStrings[0];
             Matcher m = PATID.matcher(firstLine);
             if (m.lookingAt()) { // found a match
-                String date = m.group(PATID_DATE_GROUP);
+                final String date = m.group(PATID_DATE_GROUP);
                 try {
                     received=IDPARSE.parse(date);
-                } catch (ParseException e) {
+                } catch (final ParseException e) {
                     System.err.println(e);
                 }
             } else {
@@ -375,7 +375,7 @@ public final class IMAPExportMbox
             for(int i=1; i< replyStrings.length - 1; i++) {
                 final String line = replyStrings[i];
                 if (line.startsWith("Return-Path: ")) {
-                    String[] parts = line.split(" ", 2);
+                    final String[] parts = line.split(" ", 2);
                     if (!parts[1].equals("<>")) {// Don't replace default with blank
                         replyTo = parts[1];
                         if (replyTo.startsWith("<")) {
@@ -411,14 +411,14 @@ public final class IMAPExportMbox
                         bw.append(eol);
                 }
                 // The last line ends with the trailing closing ")" which needs to be stripped
-                String lastLine = replyStrings[replyStrings.length-1];
+                final String lastLine = replyStrings[replyStrings.length-1];
                 final int lastLength = lastLine.length();
                 if (lastLength > 1) { // there's some content, we need to save it
                     bw.append(lastLine, 0, lastLength-1);
                     bw.append(eol);
                 }
                 bw.append(eol); // blank line between entries
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 e.printStackTrace();
                 throw new RuntimeException(e); // chunkReceived cannot throw a checked Exception
             }
@@ -429,7 +429,7 @@ public final class IMAPExportMbox
                 if (m.lookingAt()) { // found a match
                     final long msgSeq = Long.parseLong(m.group(PATSEQ_SEQUENCE_GROUP)); // Cannot fail to parse
                     if (lastSeq != -1) {
-                        long missing = msgSeq - lastSeq - 1;
+                        final long missing = msgSeq - lastSeq - 1;
                         if (missing != 0) {
                             for(long j = lastSeq + 1; j < msgSeq; j++) {
                                 missingIds.add(String.valueOf(j));
diff --git a/src/main/java/org/apache/commons/net/examples/mail/IMAPImportMbox.java b/src/main/java/org/apache/commons/net/examples/mail/IMAPImportMbox.java
index d075cdb..373a990 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/IMAPImportMbox.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/IMAPImportMbox.java
@@ -51,7 +51,7 @@ public final class IMAPImportMbox
     private static final String CRLF = "\r\n";
     private static final Pattern PATFROM = Pattern.compile(">+From "); // escaped From
 
-    public static void main(String[] args) throws IOException
+    public static void main(final String[] args) throws IOException
     {
         if (args.length < 2)
         {
@@ -69,23 +69,23 @@ public final class IMAPImportMbox
             throw new IOException("Cannot read mailbox file: " + mbox);
         }
 
-        String path = uri.getPath();
+        final String path = uri.getPath();
         if (path == null || path.length() < 1) {
             throw new IllegalArgumentException("Invalid folderPath: '" + path + "'");
         }
-        String folder = path.substring(1); // skip the leading /
+        final String folder = path.substring(1); // skip the leading /
 
-        List<String> contains = new ArrayList<>(); // list of strings to find
-        BitSet msgNums = new BitSet(); // list of message numbers
+        final List<String> contains = new ArrayList<>(); // list of strings to find
+        final BitSet msgNums = new BitSet(); // list of message numbers
 
         for(int i = 2; i < args.length; i++) {
-            String arg = args[i];
+            final String arg = args[i];
             if (arg.matches("\\d+(-\\d+)?(,\\d+(-\\d+)?)*")) { // number,m-n
-                for(String entry : arg.split(",")) {
-                    String []parts = entry.split("-");
+                for(final String entry : arg.split(",")) {
+                    final String []parts = entry.split("-");
                     if (parts.length == 2) { // m-n
-                        int low = Integer.parseInt(parts[0]);
-                        int high = Integer.parseInt(parts[1]);
+                        final int low = Integer.parseInt(parts[0]);
+                        final int high = Integer.parseInt(parts[1]);
                         for(int j=low; j <= high; j++) {
                             msgNums.set(j);
                         }
@@ -111,7 +111,7 @@ public final class IMAPImportMbox
             final BufferedReader br = new BufferedReader(new FileReader(file)); // TODO charset?
 
             String line;
-            StringBuilder sb = new StringBuilder();
+            final StringBuilder sb = new StringBuilder();
             boolean wanted = false; // Skip any leading rubbish
             while((line=br.readLine())!=null) {
                 if (line.startsWith("From ")) { // start of message; i.e. end of previous (if any)
@@ -134,7 +134,7 @@ public final class IMAPImportMbox
             if (wanted && process(sb, imap, folder, total)) { // last message (if any)
                 loaded++;
             }
-        } catch (IOException e) {
+        } catch (final IOException e) {
             System.out.println("Error processing msg: " + total + " " + imap.getReplyString());
             e.printStackTrace();
             System.exit(10);
@@ -146,18 +146,18 @@ public final class IMAPImportMbox
         System.out.println("Processed " + total + " messages, loaded " + loaded);
     }
 
-    private static boolean startsWith(String input, Pattern pat) {
-        Matcher m = pat.matcher(input);
+    private static boolean startsWith(final String input, final Pattern pat) {
+        final Matcher m = pat.matcher(input);
         return m.lookingAt();
     }
 
-    private static String getDate(String msg) {
+    private static String getDate(final String msg) {
                                               // From SENDER Fri Sep 13 17:04:01 2019
         final Pattern FROM_RE = Pattern.compile("From \\S+ +\\S+ (\\S+)  ?(\\S+) (\\S+) (\\S+)");
         //                                                 [Fri]   Sep      13     HMS   2019
         // output date: 13-Sep-2019 17:04:01 +0000
         String date = null;
-        Matcher m = FROM_RE.matcher(msg);
+        final Matcher m = FROM_RE.matcher(msg);
         if (m.lookingAt()) {
             date = m.group(2)+"-"+m.group(1)+"-"+m.group(4)+" "+m.group(3)+" +0000";
         }
@@ -167,11 +167,11 @@ public final class IMAPImportMbox
     private static boolean process(final StringBuilder sb, final IMAPClient imap, final String folder
             ,final int msgNum) throws IOException {
         final int length = sb.length();
-        boolean haveMessage = length > 2;
+        final boolean haveMessage = length > 2;
         if (haveMessage) {
             System.out.println("MsgNum: " + msgNum +" Length " + length);
             sb.setLength(length-2); // drop trailing CRLF (mbox format has trailing blank line)
-            String msg = sb.toString();
+            final String msg = sb.toString();
             if (!imap.append(folder, null, getDate(msg), msg)) {
                 throw new IOException("Failed to import message: " + msgNum + " " + imap.getReplyString());
             }
@@ -188,7 +188,7 @@ public final class IMAPImportMbox
      * @param contains the list of strings to be contained
      * @return true if the message is wanted
      */
-    private static boolean wanted(int msgNum, String line, BitSet msgNums, List<String> contains) {
+    private static boolean wanted(final int msgNum, final String line, final BitSet msgNums, final List<String> contains) {
         return (msgNums.isEmpty() && contains.isEmpty()) // no selectors
              || msgNums.get(msgNum) // matches message number
              || listContains(contains, line); // contains string
@@ -200,8 +200,8 @@ public final class IMAPImportMbox
      * @param string the String to check against
      * @return true if at least one entry in the contains list is contained in the string
      */
-    private static boolean listContains(List<String> contains, String string) {
-        for(String entry : contains) {
+    private static boolean listContains(final List<String> contains, final String string) {
+        for(final String entry : contains) {
             if (string.contains(entry)) {
                 return true;
             }
diff --git a/src/main/java/org/apache/commons/net/examples/mail/IMAPMail.java b/src/main/java/org/apache/commons/net/examples/mail/IMAPMail.java
index 8929905..17935f5 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/IMAPMail.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/IMAPMail.java
@@ -38,7 +38,7 @@ import org.apache.commons.net.imap.IMAPClient;
 public final class IMAPMail
 {
 
-    public static void main(String[] args) throws IOException {
+    public static void main(final String[] args) throws IOException {
         if (args.length != 1)
         {
             System.err.println(
@@ -47,7 +47,7 @@ public final class IMAPMail
             System.exit(1);
         }
 
-        URI uri = URI.create(args[0]);
+        final URI uri = URI.create(args[0]);
 
         // Connect and login
         final IMAPClient imap = IMAPUtils.imapLogin(uri, 10000, null);
@@ -68,7 +68,7 @@ public final class IMAPMail
 
             imap.list("", "*"); // Show the folders
 
-        } catch (IOException e) {
+        } catch (final IOException e) {
             System.out.println(imap.getReplyString());
             e.printStackTrace();
             System.exit(10);
diff --git a/src/main/java/org/apache/commons/net/examples/mail/IMAPUtils.java b/src/main/java/org/apache/commons/net/examples/mail/IMAPUtils.java
index 8c06dff..b0c26ff 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/IMAPUtils.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/IMAPUtils.java
@@ -40,18 +40,18 @@ class IMAPUtils {
      * @return the IMAP client - connected and logged in
      * @throws IOException if any problems occur
      */
-    static IMAPClient imapLogin(URI uri, int defaultTimeout, ProtocolCommandListener listener) throws IOException {
+    static IMAPClient imapLogin(final URI uri, final int defaultTimeout, final ProtocolCommandListener listener) throws IOException {
         final String userInfo = uri.getUserInfo();
         if (userInfo == null) {
             throw new IllegalArgumentException("Missing userInfo details");
         }
 
-        String []userpass = userInfo.split(":");
+        final String []userpass = userInfo.split(":");
         if (userpass.length != 2) {
             throw new IllegalArgumentException("Invalid userInfo details: '" + userInfo + "'");
         }
 
-        String username = userpass[0];
+        final String username = userpass[0];
         String password = userpass[1];
         // prompt for the password if necessary
         password = Utils.getPassword(username, password);
@@ -84,7 +84,7 @@ class IMAPUtils {
         try {
             imap.connect(server);
             System.out.println("Successfully connected");
-        } catch (IOException e) {
+        } catch (final IOException e) {
             throw new RuntimeException("Could not connect to server.", e);
         }
 
diff --git a/src/main/java/org/apache/commons/net/examples/mail/POP3ExportMbox.java b/src/main/java/org/apache/commons/net/examples/mail/POP3ExportMbox.java
index 59a103e..cb28027 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/POP3ExportMbox.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/POP3ExportMbox.java
@@ -49,7 +49,7 @@ public final class POP3ExportMbox
 
     private static final Pattern PATFROM = Pattern.compile(">*From "); // unescaped From_
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         int argIdx;
         String file = null;
@@ -69,20 +69,20 @@ public final class POP3ExportMbox
             System.exit(1);
         }
 
-        String arg0[] = args[argIdx++].split(":");
-        String server=arg0[0];
-        String username = args[argIdx++];
+        final String arg0[] = args[argIdx++].split(":");
+        final String server=arg0[0];
+        final String username = args[argIdx++];
         String password = args[argIdx++];
         // prompt for the password if necessary
         try {
             password = Utils.getPassword(username, password);
-        } catch (IOException e1) {
+        } catch (final IOException e1) {
             System.err.println("Could not retrieve password: " + e1.getMessage());
             return;
         }
 
-        String proto = argCount > 3 ? args[argIdx++] : null;
-        boolean implicit = argCount > 4 ? Boolean.parseBoolean(args[argIdx++]) : false;
+        final String proto = argCount > 3 ? args[argIdx++] : null;
+        final boolean implicit = argCount > 4 ? Boolean.parseBoolean(args[argIdx++]) : false;
 
         POP3Client pop3;
 
@@ -108,7 +108,7 @@ public final class POP3ExportMbox
         {
             pop3.connect(server);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println("Could not connect to server.");
             e.printStackTrace();
@@ -124,7 +124,7 @@ public final class POP3ExportMbox
                 return;
             }
 
-            POP3MessageInfo status = pop3.status();
+            final POP3MessageInfo status = pop3.status();
             if (status == null) {
                 System.err.println("Could not retrieve status.");
                 pop3.logout();
@@ -133,15 +133,15 @@ public final class POP3ExportMbox
             }
 
             System.out.println("Status: " + status);
-            int count = status.number;
+            final int count = status.number;
             if (file != null) {
                 System.out.println("Getting messages: " + count);
-                File mbox = new File(file);
+                final File mbox = new File(file);
                 if (mbox.isDirectory()) {
                     System.out.println("Writing dir: " + mbox);
                     // Currently POP3Client uses iso-8859-1
                     for (int i = 1; i <= count; i++) {
-                        OutputStreamWriter fw = new OutputStreamWriter(
+                        final OutputStreamWriter fw = new OutputStreamWriter(
                             new FileOutputStream(new File(mbox,i+".eml")),StandardCharsets.ISO_8859_1);
                         writeFile(pop3, fw, i);
                         fw.close();
@@ -149,7 +149,7 @@ public final class POP3ExportMbox
                 } else {
                     System.out.println("Writing file: " + mbox);
                     // Currently POP3Client uses iso-8859-1
-                    OutputStreamWriter fw = new OutputStreamWriter(new FileOutputStream(mbox),StandardCharsets.ISO_8859_1);
+                    final OutputStreamWriter fw = new OutputStreamWriter(new FileOutputStream(mbox),StandardCharsets.ISO_8859_1);
                     for (int i = 1; i <= count; i++) {
                         writeMbox(pop3, fw, i);
                     }
@@ -160,15 +160,15 @@ public final class POP3ExportMbox
             pop3.logout();
             pop3.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             return;
         }
     }
 
-    private static void writeFile(POP3Client pop3, OutputStreamWriter fw, int i) throws IOException {
-        BufferedReader r = (BufferedReader) pop3.retrieveMessage(i);
+    private static void writeFile(final POP3Client pop3, final OutputStreamWriter fw, final int i) throws IOException {
+        final BufferedReader r = (BufferedReader) pop3.retrieveMessage(i);
         String line;
         while ((line = r.readLine()) != null)
         {
@@ -178,12 +178,12 @@ public final class POP3ExportMbox
         r.close();
     }
 
-    private static void writeMbox(POP3Client pop3, OutputStreamWriter fw, int i) throws IOException {
+    private static void writeMbox(final POP3Client pop3, final OutputStreamWriter fw, final int i) throws IOException {
         final SimpleDateFormat DATE_FORMAT // for mbox From_ lines
         = new SimpleDateFormat("EEE MMM dd HH:mm:ss YYYY");
-        String replyTo = "MAILER-DAEMON"; // default
-        Date received = new Date();
-        BufferedReader r = (BufferedReader) pop3.retrieveMessage(i);
+        final String replyTo = "MAILER-DAEMON"; // default
+        final Date received = new Date();
+        final BufferedReader r = (BufferedReader) pop3.retrieveMessage(i);
         fw.append("From ");
         fw.append(replyTo);
         fw.append(' ');
@@ -202,8 +202,8 @@ public final class POP3ExportMbox
         r.close();
     }
 
-    private static boolean startsWith(String input, Pattern pat) {
-        Matcher m = pat.matcher(input);
+    private static boolean startsWith(final String input, final Pattern pat) {
+        final Matcher m = pat.matcher(input);
         return m.lookingAt();
     }
 }
diff --git a/src/main/java/org/apache/commons/net/examples/mail/POP3Mail.java b/src/main/java/org/apache/commons/net/examples/mail/POP3Mail.java
index 27f8448..5a6a892 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/POP3Mail.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/POP3Mail.java
@@ -38,13 +38,13 @@ import org.apache.commons.net.pop3.POP3SClient;
 public final class POP3Mail
 {
 
-    public static final void printMessageInfo(BufferedReader reader, int id) throws IOException  {
+    public static final void printMessageInfo(final BufferedReader reader, final int id) throws IOException  {
         String from = "";
         String subject = "";
         String line;
         while ((line = reader.readLine()) != null)
         {
-            String lower = line.toLowerCase(Locale.ENGLISH);
+            final String lower = line.toLowerCase(Locale.ENGLISH);
             if (lower.startsWith("from: ")) {
                 from = line.substring(6).trim();
             }  else if (lower.startsWith("subject: ")) {
@@ -55,7 +55,7 @@ public final class POP3Mail
         System.out.println(Integer.toString(id) + " From: " + from + "  Subject: " + subject);
     }
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         if (args.length < 3)
         {
@@ -64,20 +64,20 @@ public final class POP3Mail
             System.exit(1);
         }
 
-        String arg0[] = args[0].split(":");
-        String server=arg0[0];
-        String username = args[1];
+        final String arg0[] = args[0].split(":");
+        final String server=arg0[0];
+        final String username = args[1];
         String password = args[2];
         // prompt for the password if necessary
         try {
             password = Utils.getPassword(username, password);
-        } catch (IOException e1) {
+        } catch (final IOException e1) {
             System.err.println("Could not retrieve password: " + e1.getMessage());
             return;
         }
 
-        String proto = args.length > 3 ? args[3] : null;
-        boolean implicit = args.length > 4 ? Boolean.parseBoolean(args[4]) : false;
+        final String proto = args.length > 3 ? args[3] : null;
+        final boolean implicit = args.length > 4 ? Boolean.parseBoolean(args[4]) : false;
 
         POP3Client pop3;
 
@@ -106,7 +106,7 @@ public final class POP3Mail
         {
             pop3.connect(server);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println("Could not connect to server.");
             e.printStackTrace();
@@ -122,7 +122,7 @@ public final class POP3Mail
                 return;
             }
 
-            POP3MessageInfo status = pop3.status();
+            final POP3MessageInfo status = pop3.status();
             if (status == null) {
                 System.err.println("Could not retrieve status.");
                 pop3.logout();
@@ -132,7 +132,7 @@ public final class POP3Mail
 
             System.out.println("Status: " + status);
 
-            POP3MessageInfo[] messages = pop3.listMessages();
+            final POP3MessageInfo[] messages = pop3.listMessages();
 
             if (messages == null)
             {
@@ -151,8 +151,8 @@ public final class POP3Mail
 
             System.out.println("Message count: " + messages.length);
 
-            for (POP3MessageInfo msginfo : messages) {
-                BufferedReader reader = (BufferedReader) pop3.retrieveMessageTop(msginfo.number, 0);
+            for (final POP3MessageInfo msginfo : messages) {
+                final BufferedReader reader = (BufferedReader) pop3.retrieveMessageTop(msginfo.number, 0);
 
                 if (reader == null) {
                     System.err.println("Could not retrieve message header.");
@@ -166,7 +166,7 @@ public final class POP3Mail
             pop3.logout();
             pop3.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             return;
diff --git a/src/main/java/org/apache/commons/net/examples/mail/SMTPMail.java b/src/main/java/org/apache/commons/net/examples/mail/SMTPMail.java
index eac3dbc..ecdba33 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/SMTPMail.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/SMTPMail.java
@@ -42,10 +42,10 @@ import org.apache.commons.net.smtp.SimpleSMTPHeader;
 public final class SMTPMail
 {
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         String sender, recipient, subject, fileName, server, cc;
-        List<String> ccList = new ArrayList<>();
+        final List<String> ccList = new ArrayList<>();
         BufferedReader stdin;
         FileReader fileReader = null;
         Writer writer;
@@ -106,7 +106,7 @@ public final class SMTPMail
             {
                 fileReader = new FileReader(fileName);
             }
-            catch (FileNotFoundException e)
+            catch (final FileNotFoundException e)
             {
                 System.err.println("File not found. " + e.getMessage());
             }
@@ -131,7 +131,7 @@ public final class SMTPMail
 
 
 
-            for (String recpt : ccList) {
+            for (final String recpt : ccList) {
                 client.addRecipient(recpt);
             }
 
@@ -153,7 +153,7 @@ public final class SMTPMail
 
             client.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/mail/Utils.java b/src/main/java/org/apache/commons/net/examples/mail/Utils.java
index d4c6bca..996c319 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/Utils.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/Utils.java
@@ -46,14 +46,14 @@ class Utils {
      * STDIN may require creating a temporary file which could be read by others
      * Environment variables may be visible by using PS
      */
-    static String getPassword(String username, String password) throws IOException {
+    static String getPassword(final String username, String password) throws IOException {
         if ("-".equals(password)) { // stdin
-            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
+            final BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
             password = in.readLine();
         } else if ("*".equals(password)) { // console
-            Console con = System.console(); // Java 1.6
+            final Console con = System.console(); // Java 1.6
             if (con != null) {
-                char[] pwd = con.readPassword("Password for " + username + ": ");
+                final char[] pwd = con.readPassword("Password for " + username + ": ");
                 password = new String(pwd);
             } else {
                 throw new IOException("Cannot access Console");
diff --git a/src/main/java/org/apache/commons/net/examples/nntp/ArticleReader.java b/src/main/java/org/apache/commons/net/examples/nntp/ArticleReader.java
index 7145877..185c161 100644
--- a/src/main/java/org/apache/commons/net/examples/nntp/ArticleReader.java
+++ b/src/main/java/org/apache/commons/net/examples/nntp/ArticleReader.java
@@ -31,32 +31,32 @@ import org.apache.commons.net.nntp.NewsgroupInfo;
  */
 public class ArticleReader {
 
-    public static void main(String[] args) throws SocketException, IOException {
+    public static void main(final String[] args) throws SocketException, IOException {
 
         if (args.length != 2 && args.length != 3 && args.length != 5) {
             System.out.println("Usage: MessageThreading <hostname> <groupname> [<article specifier> [<user> <password>]]");
             return;
         }
 
-        String hostname = args[0];
-        String newsgroup = args[1];
+        final String hostname = args[0];
+        final String newsgroup = args[1];
         // Article specifier can be numeric or Id in form <m....@host>
-        String articleSpec = args.length >= 3 ? args[2] : null;
+        final String articleSpec = args.length >= 3 ? args[2] : null;
 
-        NNTPClient client = new NNTPClient();
+        final NNTPClient client = new NNTPClient();
         client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));
         client.connect(hostname);
 
         if (args.length == 5) { // Optional auth
-            String user = args[3];
-            String password = args[4];
+            final String user = args[3];
+            final String password = args[4];
             if(!client.authenticate(user, password)) {
                 System.out.println("Authentication failed for user " + user + "!");
                 System.exit(1);
             }
         }
 
-        NewsgroupInfo group = new NewsgroupInfo();
+        final NewsgroupInfo group = new NewsgroupInfo();
         client.selectNewsgroup(newsgroup, group);
 
         BufferedReader brHdr;
@@ -64,7 +64,7 @@ public class ArticleReader {
         if (articleSpec != null) {
             brHdr = (BufferedReader) client.retrieveArticleHeader(articleSpec);
         } else {
-            long articleNum = group.getLastArticleLong();
+            final long articleNum = group.getLastArticleLong();
             brHdr = client.retrieveArticleHeader(articleNum);
         }
         if (brHdr != null) {
@@ -77,7 +77,7 @@ public class ArticleReader {
         if (articleSpec != null) {
             brBody = (BufferedReader) client.retrieveArticleBody(articleSpec);
         } else {
-            long articleNum = group.getLastArticleLong();
+            final long articleNum = group.getLastArticleLong();
             brBody = client.retrieveArticleBody(articleNum);
         }
         if (brBody != null) {
diff --git a/src/main/java/org/apache/commons/net/examples/nntp/ExtendedNNTPOps.java b/src/main/java/org/apache/commons/net/examples/nntp/ExtendedNNTPOps.java
index 0835f83..d0aa919 100644
--- a/src/main/java/org/apache/commons/net/examples/nntp/ExtendedNNTPOps.java
+++ b/src/main/java/org/apache/commons/net/examples/nntp/ExtendedNNTPOps.java
@@ -40,13 +40,13 @@ public class ExtendedNNTPOps {
     }
 
 
-    private void demo(String host, String user, String password) {
+    private void demo(final String host, final String user, final String password) {
         try {
             client.connect(host);
 
             // AUTHINFO USER/AUTHINFO PASS
             if (user != null && password != null) {
-                boolean success = client.authenticate(user, password);
+                final boolean success = client.authenticate(user, password);
                 if (success) {
                     System.out.println("Authentication succeeded");
                 } else {
@@ -55,13 +55,13 @@ public class ExtendedNNTPOps {
             }
 
             // XOVER
-            NewsgroupInfo testGroup = new NewsgroupInfo();
+            final NewsgroupInfo testGroup = new NewsgroupInfo();
             client.selectNewsgroup("alt.test", testGroup);
-            long lowArticleNumber = testGroup.getFirstArticleLong();
-            long  highArticleNumber = lowArticleNumber + 100;
-            Iterable<Article> articles = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);
+            final long lowArticleNumber = testGroup.getFirstArticleLong();
+            final long  highArticleNumber = lowArticleNumber + 100;
+            final Iterable<Article> articles = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);
 
-            for (Article article : articles) {
+            for (final Article article : articles) {
                 if (article.isDummy()) { // Subject will contain raw response
                     System.out.println("Could not parse: "+article.getSubject());
                 } else {
@@ -70,21 +70,21 @@ public class ExtendedNNTPOps {
             }
 
             // LIST ACTIVE
-            NewsgroupInfo[] fanGroups = client.listNewsgroups("alt.fan.*");
-            for (NewsgroupInfo fanGroup : fanGroups)
+            final NewsgroupInfo[] fanGroups = client.listNewsgroups("alt.fan.*");
+            for (final NewsgroupInfo fanGroup : fanGroups)
             {
                 System.out.println(fanGroup.getNewsgroup());
             }
 
-        } catch (IOException e) {
+        } catch (final IOException e) {
             e.printStackTrace();
         }
     }
 
-    public static void main(String[] args) {
+    public static void main(final String[] args) {
         ExtendedNNTPOps ops;
 
-        int argc = args.length;
+        final int argc = args.length;
         if (argc < 1) {
             System.err.println("usage: ExtendedNNTPOps nntpserver [username password]");
             System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/nntp/ListNewsgroups.java b/src/main/java/org/apache/commons/net/examples/nntp/ListNewsgroups.java
index 2c0cc22..fe9b167 100644
--- a/src/main/java/org/apache/commons/net/examples/nntp/ListNewsgroups.java
+++ b/src/main/java/org/apache/commons/net/examples/nntp/ListNewsgroups.java
@@ -32,7 +32,7 @@ import org.apache.commons.net.nntp.NewsgroupInfo;
 public final class ListNewsgroups
 {
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         if (args.length < 1)
         {
@@ -40,8 +40,8 @@ public final class ListNewsgroups
             return;
         }
 
-        NNTPClient client = new NNTPClient();
-        String pattern = args.length >= 2 ? args[1] : "";
+        final NNTPClient client = new NNTPClient();
+        final String pattern = args.length >= 2 ? args[1] : "";
 
         try
         {
@@ -49,23 +49,23 @@ public final class ListNewsgroups
 
             int j = 0;
             try {
-                for(String s : client.iterateNewsgroupListing(pattern)) {
+                for(final String s : client.iterateNewsgroupListing(pattern)) {
                     j++;
                     System.out.println(s);
                 }
-            } catch (IOException e1) {
+            } catch (final IOException e1) {
                 e1.printStackTrace();
             }
             System.out.println(j);
 
             j = 0;
-            for(NewsgroupInfo n : client.iterateNewsgroups(pattern)) {
+            for(final NewsgroupInfo n : client.iterateNewsgroups(pattern)) {
                 j++;
                 System.out.println(n.getNewsgroup());
             }
             System.out.println(j);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
         }
@@ -77,7 +77,7 @@ public final class ListNewsgroups
                     client.disconnect();
                 }
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 System.err.println("Error disconnecting from server.");
                 e.printStackTrace();
diff --git a/src/main/java/org/apache/commons/net/examples/nntp/MessageThreading.java b/src/main/java/org/apache/commons/net/examples/nntp/MessageThreading.java
index e8aae1f..7772c64 100644
--- a/src/main/java/org/apache/commons/net/examples/nntp/MessageThreading.java
+++ b/src/main/java/org/apache/commons/net/examples/nntp/MessageThreading.java
@@ -34,50 +34,50 @@ public class MessageThreading {
     public MessageThreading() {
     }
 
-    public static void main(String[] args) throws SocketException, IOException {
+    public static void main(final String[] args) throws SocketException, IOException {
 
         if (args.length != 2 && args.length != 4) {
             System.out.println("Usage: MessageThreading <hostname> <groupname> [<user> <password>]");
             return;
         }
 
-        String hostname = args[0];
-        String newsgroup = args[1];
+        final String hostname = args[0];
+        final String newsgroup = args[1];
 
-        NNTPClient client = new NNTPClient();
+        final NNTPClient client = new NNTPClient();
         client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));
         client.connect(hostname);
 
         if (args.length == 4) { // Optional auth
-            String user = args[2];
-            String password = args[3];
+            final String user = args[2];
+            final String password = args[3];
             if(!client.authenticate(user, password)) {
                 System.out.println("Authentication failed for user " + user + "!");
                 System.exit(1);
             }
         }
 
-        String fmt[] = client.listOverviewFmt();
+        final String fmt[] = client.listOverviewFmt();
         if (fmt != null) {
             System.out.println("LIST OVERVIEW.FMT:");
-            for(String s : fmt) {
+            for(final String s : fmt) {
                 System.out.println(s);
             }
         } else {
             System.out.println("Failed to get OVERVIEW.FMT");
         }
-        NewsgroupInfo group = new NewsgroupInfo();
+        final NewsgroupInfo group = new NewsgroupInfo();
         client.selectNewsgroup(newsgroup, group);
 
-        long lowArticleNumber = group.getFirstArticleLong();
-        long highArticleNumber = lowArticleNumber + 5000;
+        final long lowArticleNumber = group.getFirstArticleLong();
+        final long highArticleNumber = lowArticleNumber + 5000;
 
         System.out.println("Retrieving articles between [" + lowArticleNumber + "] and [" + highArticleNumber + "]");
-        Iterable<Article> articles = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);
+        final Iterable<Article> articles = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);
 
         System.out.println("Building message thread tree...");
-        Threader threader = new Threader();
-        Article root = (Article)threader.thread(articles);
+        final Threader threader = new Threader();
+        final Article root = (Article)threader.thread(articles);
 
         Article.printThread(root, 0);
     }
diff --git a/src/main/java/org/apache/commons/net/examples/nntp/NNTPUtils.java b/src/main/java/org/apache/commons/net/examples/nntp/NNTPUtils.java
index 2db46c4..66599a9 100644
--- a/src/main/java/org/apache/commons/net/examples/nntp/NNTPUtils.java
+++ b/src/main/java/org/apache/commons/net/examples/nntp/NNTPUtils.java
@@ -36,11 +36,11 @@ public class NNTPUtils {
      * @return Article[] An array of Article
      * @throws IOException on error
      */
-    public  static List<Article> getArticleInfo(NNTPClient client, long lowArticleNumber, long highArticleNumber)
+    public  static List<Article> getArticleInfo(final NNTPClient client, final long lowArticleNumber, final long highArticleNumber)
     throws IOException {
-        List<Article> articles = new ArrayList<>();
-        Iterable<Article> arts = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);
-        for(Article article : arts){
+        final List<Article> articles = new ArrayList<>();
+        final Iterable<Article> arts = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);
+        for(final Article article : arts){
             articles.add(article);
         }
         return articles;
diff --git a/src/main/java/org/apache/commons/net/examples/nntp/PostMessage.java b/src/main/java/org/apache/commons/net/examples/nntp/PostMessage.java
index 0e0061b..632ccf5 100644
--- a/src/main/java/org/apache/commons/net/examples/nntp/PostMessage.java
+++ b/src/main/java/org/apache/commons/net/examples/nntp/PostMessage.java
@@ -41,7 +41,7 @@ import org.apache.commons.net.nntp.SimpleNNTPHeader;
 public final class PostMessage
 {
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         String from, subject, newsgroup, fileName, server, organization;
         String references;
@@ -128,7 +128,7 @@ public final class PostMessage
             {
                 fileReader = new FileReader(fileName);
             }
-            catch (FileNotFoundException e)
+            catch (final FileNotFoundException e)
             {
                 System.err.println("File not found. " + e.getMessage());
                 System.exit(1);
@@ -149,7 +149,7 @@ public final class PostMessage
 
             if (client.isAllowedToPost())
             {
-                Writer writer = client.postArticle();
+                final Writer writer = client.postArticle();
 
                 if (writer != null)
                 {
@@ -168,7 +168,7 @@ public final class PostMessage
 
             client.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/ntp/NTPClient.java b/src/main/java/org/apache/commons/net/examples/ntp/NTPClient.java
index 4ff4a38..4f7446f 100644
--- a/src/main/java/org/apache/commons/net/examples/ntp/NTPClient.java
+++ b/src/main/java/org/apache/commons/net/examples/ntp/NTPClient.java
@@ -53,10 +53,10 @@ public final class NTPClient
      * Process <code>TimeInfo</code> object and print its details.
      * @param info <code>TimeInfo</code> object.
      */
-    public static void processResponse(TimeInfo info)
+    public static void processResponse(final TimeInfo info)
     {
-        NtpV3Packet message = info.getMessage();
-        int stratum = message.getStratum();
+        final NtpV3Packet message = info.getMessage();
+        final int stratum = message.getStratum();
         String refType;
         if (stratum <= 0) {
             refType = "(Unspecified or Unavailable)";
@@ -67,21 +67,21 @@ public final class NTPClient
         }
         // stratum should be 0..15...
         System.out.println(" Stratum: " + stratum + " " + refType);
-        int version = message.getVersion();
-        int li = message.getLeapIndicator();
+        final int version = message.getVersion();
+        final int li = message.getLeapIndicator();
         System.out.println(" leap=" + li + ", version="
                 + version + ", precision=" + message.getPrecision());
 
         System.out.println(" mode: " + message.getModeName() + " (" + message.getMode() + ")");
-        int poll = message.getPoll();
+        final int poll = message.getPoll();
         // poll value typically btwn MINPOLL (4) and MAXPOLL (14)
         System.out.println(" poll: " + (poll <= 0 ? 1 : (int) Math.pow(2, poll))
                 + " seconds" + " (2 ** " + poll + ")");
-        double disp = message.getRootDispersionInMillisDouble();
+        final double disp = message.getRootDispersionInMillisDouble();
         System.out.println(" rootdelay=" + numberFormat.format(message.getRootDelayInMillisDouble())
                 + ", rootdispersion(ms): " + numberFormat.format(disp));
 
-        int refId = message.getReferenceId();
+        final int refId = message.getReferenceId();
         String refAddr = NtpUtils.getHostAddress(refId);
         String refName = null;
         if (refId != 0) {
@@ -93,12 +93,12 @@ public final class NTPClient
                 // for GENERIC DCF77 AM; see refclock.htm from the NTP software distribution.
                 if (!refAddr.startsWith("127.127")) {
                     try {
-                        InetAddress addr = InetAddress.getByName(refAddr);
-                        String name = addr.getHostName();
+                        final InetAddress addr = InetAddress.getByName(refAddr);
+                        final String name = addr.getHostName();
                         if (name != null && !name.equals(refAddr)) {
                             refName = name;
                         }
-                    } catch (UnknownHostException e) {
+                    } catch (final UnknownHostException e) {
                         // some stratum-2 servers sync to ref clock device but fudge stratum level higher... (e.g. 2)
                         // ref not valid host maybe it's a reference clock name?
                         // otherwise just show the ref IP address.
@@ -116,61 +116,61 @@ public final class NTPClient
         }
         System.out.println(" Reference Identifier:\t" + refAddr);
 
-        TimeStamp refNtpTime = message.getReferenceTimeStamp();
+        final TimeStamp refNtpTime = message.getReferenceTimeStamp();
         System.out.println(" Reference Timestamp:\t" + refNtpTime + "  " + refNtpTime.toDateString());
 
         // Originate Time is time request sent by client (t1)
-        TimeStamp origNtpTime = message.getOriginateTimeStamp();
+        final TimeStamp origNtpTime = message.getOriginateTimeStamp();
         System.out.println(" Originate Timestamp:\t" + origNtpTime + "  " + origNtpTime.toDateString());
 
-        long destTime = info.getReturnTime();
+        final long destTime = info.getReturnTime();
         // Receive Time is time request received by server (t2)
-        TimeStamp rcvNtpTime = message.getReceiveTimeStamp();
+        final TimeStamp rcvNtpTime = message.getReceiveTimeStamp();
         System.out.println(" Receive Timestamp:\t" + rcvNtpTime + "  " + rcvNtpTime.toDateString());
 
         // Transmit time is time reply sent by server (t3)
-        TimeStamp xmitNtpTime = message.getTransmitTimeStamp();
+        final TimeStamp xmitNtpTime = message.getTransmitTimeStamp();
         System.out.println(" Transmit Timestamp:\t" + xmitNtpTime + "  " + xmitNtpTime.toDateString());
 
         // Destination time is time reply received by client (t4)
-        TimeStamp destNtpTime = TimeStamp.getNtpTime(destTime);
+        final TimeStamp destNtpTime = TimeStamp.getNtpTime(destTime);
         System.out.println(" Destination Timestamp:\t" + destNtpTime + "  " + destNtpTime.toDateString());
 
         info.computeDetails(); // compute offset/delay if not already done
-        Long offsetValue = info.getOffset();
-        Long delayValue = info.getDelay();
-        String delay = (delayValue == null) ? "N/A" : delayValue.toString();
-        String offset = (offsetValue == null) ? "N/A" : offsetValue.toString();
+        final Long offsetValue = info.getOffset();
+        final Long delayValue = info.getDelay();
+        final String delay = (delayValue == null) ? "N/A" : delayValue.toString();
+        final String offset = (offsetValue == null) ? "N/A" : offsetValue.toString();
 
         System.out.println(" Roundtrip delay(ms)=" + delay
                 + ", clock offset(ms)=" + offset); // offset in ms
     }
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         if (args.length == 0) {
             System.err.println("Usage: NTPClient <hostname-or-address-list>");
             System.exit(1);
         }
 
-        NTPUDPClient client = new NTPUDPClient();
+        final NTPUDPClient client = new NTPUDPClient();
         // We want to timeout if a response takes longer than 10 seconds
         client.setDefaultTimeout(10000);
         try {
             client.open();
-            for (String arg : args)
+            for (final String arg : args)
             {
                 System.out.println();
                 try {
-                    InetAddress hostAddr = InetAddress.getByName(arg);
+                    final InetAddress hostAddr = InetAddress.getByName(arg);
                     System.out.println("> " + hostAddr.getHostName() + "/" + hostAddr.getHostAddress());
-                    TimeInfo info = client.getTime(hostAddr);
+                    final TimeInfo info = client.getTime(hostAddr);
                     processResponse(info);
-                } catch (IOException ioe) {
+                } catch (final IOException ioe) {
                     ioe.printStackTrace();
                 }
             }
-        } catch (SocketException e) {
+        } catch (final SocketException e) {
             e.printStackTrace();
         }
 
diff --git a/src/main/java/org/apache/commons/net/examples/ntp/SimpleNTPServer.java b/src/main/java/org/apache/commons/net/examples/ntp/SimpleNTPServer.java
index 561b212..07a0601 100644
--- a/src/main/java/org/apache/commons/net/examples/ntp/SimpleNTPServer.java
+++ b/src/main/java/org/apache/commons/net/examples/ntp/SimpleNTPServer.java
@@ -60,7 +60,7 @@ public class SimpleNTPServer implements Runnable {
      *             <code>zero</code> for a system selected free port.
      * @throws IllegalArgumentException if port number less than 0
      */
-    public SimpleNTPServer(int port)
+    public SimpleNTPServer(final int port)
     {
         if (port < 0) {
             throw new IllegalArgumentException();
@@ -136,14 +136,14 @@ public class SimpleNTPServer implements Runnable {
     public void run()
     {
         running = true;
-        byte buffer[] = new byte[48];
+        final byte buffer[] = new byte[48];
         final DatagramPacket request = new DatagramPacket(buffer, buffer.length);
         do {
             try {
                 socket.receive(request);
                 final long rcvTime = System.currentTimeMillis();
                 handlePacket(request, rcvTime);
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 if (running)
                 {
                     e.printStackTrace();
@@ -162,14 +162,14 @@ public class SimpleNTPServer implements Runnable {
      *
      * @throws IOException  if an I/O error occurs.
      */
-    protected void handlePacket(DatagramPacket request, long rcvTime) throws IOException
+    protected void handlePacket(final DatagramPacket request, final long rcvTime) throws IOException
     {
-        NtpV3Packet message = new NtpV3Impl();
+        final NtpV3Packet message = new NtpV3Impl();
         message.setDatagramPacket(request);
         System.out.printf("NTP packet from %s mode=%s%n", request.getAddress().getHostAddress(),
                 NtpUtils.getModeName(message.getMode()));
         if (message.getMode() == NtpV3Packet.MODE_CLIENT) {
-            NtpV3Packet response = new NtpV3Impl();
+            final NtpV3Packet response = new NtpV3Impl();
 
             response.setStratum(1);
             response.setMode(NtpV3Packet.MODE_SERVER);
@@ -189,7 +189,7 @@ public class SimpleNTPServer implements Runnable {
             // Transmit time is time reply sent by server (t3)
             response.setTransmitTime(TimeStamp.getNtpTime(System.currentTimeMillis()));
 
-            DatagramPacket dp = response.getDatagramPacket();
+            final DatagramPacket dp = response.getDatagramPacket();
             dp.setPort(request.getPort());
             dp.setAddress(request.getAddress());
             socket.send(dp);
@@ -211,21 +211,21 @@ public class SimpleNTPServer implements Runnable {
         started = false;
     }
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         int port = NtpV3Packet.NTP_PORT;
         if (args.length != 0)
         {
             try {
                 port = Integer.parseInt(args[0]);
-            } catch (NumberFormatException nfe) {
+            } catch (final NumberFormatException nfe) {
                 nfe.printStackTrace();
             }
         }
-        SimpleNTPServer timeServer = new SimpleNTPServer(port);
+        final SimpleNTPServer timeServer = new SimpleNTPServer(port);
         try {
             timeServer.start();
-        } catch (IOException e) {
+        } catch (final IOException e) {
             e.printStackTrace();
         }
     }
diff --git a/src/main/java/org/apache/commons/net/examples/ntp/TimeClient.java b/src/main/java/org/apache/commons/net/examples/ntp/TimeClient.java
index df079a9..e88000d 100644
--- a/src/main/java/org/apache/commons/net/examples/ntp/TimeClient.java
+++ b/src/main/java/org/apache/commons/net/examples/ntp/TimeClient.java
@@ -38,9 +38,9 @@ import org.apache.commons.net.time.TimeUDPClient;
 public final class TimeClient
 {
 
-    public static final void timeTCP(String host) throws IOException
+    public static final void timeTCP(final String host) throws IOException
     {
-        TimeTCPClient client = new TimeTCPClient();
+        final TimeTCPClient client = new TimeTCPClient();
     try {
           // We want to timeout if a response takes longer than 60 seconds
           client.setDefaultTimeout(60000);
@@ -51,9 +51,9 @@ public final class TimeClient
     }
     }
 
-    public static final void timeUDP(String host) throws IOException
+    public static final void timeUDP(final String host) throws IOException
     {
-        TimeUDPClient client = new TimeUDPClient();
+        final TimeUDPClient client = new TimeUDPClient();
 
         // We want to timeout if a response takes longer than 60 seconds
         client.setDefaultTimeout(60000);
@@ -62,7 +62,7 @@ public final class TimeClient
         client.close();
     }
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
 
         if (args.length == 1)
@@ -71,7 +71,7 @@ public final class TimeClient
             {
                 timeTCP(args[0]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
@@ -83,7 +83,7 @@ public final class TimeClient
             {
                 timeUDP(args[1]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/telnet/TelnetClientExample.java b/src/main/java/org/apache/commons/net/examples/telnet/TelnetClientExample.java
index 420592c..6d1caba 100644
--- a/src/main/java/org/apache/commons/net/examples/telnet/TelnetClientExample.java
+++ b/src/main/java/org/apache/commons/net/examples/telnet/TelnetClientExample.java
@@ -54,7 +54,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
      * @param args input params
      * @throws Exception on error
      ***/
-    public static void main(String[] args) throws Exception
+    public static void main(final String[] args) throws Exception
     {
         FileOutputStream fout = null;
 
@@ -64,7 +64,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
             System.exit(1);
         }
 
-        String remoteip = args[0];
+        final String remoteip = args[0];
 
         int remoteport;
 
@@ -81,7 +81,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
         {
             fout = new FileOutputStream ("spy.log", true);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println(
                 "Exception while opening the spy file: "
@@ -90,9 +90,9 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
 
         tc = new TelnetClient();
 
-        TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler("VT100", false, false, true, false);
-        EchoOptionHandler echoopt = new EchoOptionHandler(true, false, true, false);
-        SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(true, true, true, true);
+        final TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler("VT100", false, false, true, false);
+        final EchoOptionHandler echoopt = new EchoOptionHandler(true, false, true, false);
+        final SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(true, true, true, true);
 
         try
         {
@@ -100,7 +100,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
             tc.addOptionHandler(echoopt);
             tc.addOptionHandler(gaopt);
         }
-        catch (InvalidTelnetOptionException e)
+        catch (final InvalidTelnetOptionException e)
         {
             System.err.println("Error registering option handlers: " + e.getMessage());
         }
@@ -113,7 +113,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
                 tc.connect(remoteip, remoteport);
 
 
-                Thread reader = new Thread (new TelnetClientExample());
+                final Thread reader = new Thread (new TelnetClientExample());
                 tc.registerNotifHandler(new TelnetClientExample());
                 System.out.println("TelnetClientExample");
                 System.out.println("Type AYT to send an AYT telnet command");
@@ -125,9 +125,9 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
                 System.out.println("Type ^[A-Z] to send the control character; use ^^ to send ^");
 
                 reader.start();
-                OutputStream outstr = tc.getOutputStream();
+                final OutputStream outstr = tc.getOutputStream();
 
-                byte[] buff = new byte[1024];
+                final byte[] buff = new byte[1024];
                 int ret_read = 0;
 
                 do
@@ -146,7 +146,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
 
                                     System.out.println("AYT response:" + tc.sendAYT(5000));
                                 }
-                                catch (IOException e)
+                                catch (final IOException e)
                                 {
                                     System.err.println("Exception waiting AYT response: " + e.getMessage());
                                 }
@@ -161,20 +161,20 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
                             }
                             else if(line.startsWith("REGISTER"))
                             {
-                                StringTokenizer st = new StringTokenizer(new String(buff));
+                                final StringTokenizer st = new StringTokenizer(new String(buff));
                                 try
                                 {
                                     st.nextToken();
-                                    int opcode = Integer.parseInt(st.nextToken());
-                                    boolean initlocal = Boolean.parseBoolean(st.nextToken());
-                                    boolean initremote = Boolean.parseBoolean(st.nextToken());
-                                    boolean acceptlocal = Boolean.parseBoolean(st.nextToken());
-                                    boolean acceptremote = Boolean.parseBoolean(st.nextToken());
-                                    SimpleOptionHandler opthand = new SimpleOptionHandler(opcode, initlocal, initremote,
+                                    final int opcode = Integer.parseInt(st.nextToken());
+                                    final boolean initlocal = Boolean.parseBoolean(st.nextToken());
+                                    final boolean initremote = Boolean.parseBoolean(st.nextToken());
+                                    final boolean acceptlocal = Boolean.parseBoolean(st.nextToken());
+                                    final boolean acceptremote = Boolean.parseBoolean(st.nextToken());
+                                    final SimpleOptionHandler opthand = new SimpleOptionHandler(opcode, initlocal, initremote,
                                                                     acceptlocal, acceptremote);
                                     tc.addOptionHandler(opthand);
                                 }
-                                catch (Exception e)
+                                catch (final Exception e)
                                 {
                                     if(e instanceof InvalidTelnetOptionException)
                                     {
@@ -191,14 +191,14 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
                             }
                             else if(line.startsWith("UNREGISTER"))
                             {
-                                StringTokenizer st = new StringTokenizer(new String(buff));
+                                final StringTokenizer st = new StringTokenizer(new String(buff));
                                 try
                                 {
                                     st.nextToken();
-                                    int opcode = (new Integer(st.nextToken())).intValue();
+                                    final int opcode = (new Integer(st.nextToken())).intValue();
                                     tc.deleteOptionHandler(opcode);
                                 }
-                                catch (Exception e)
+                                catch (final Exception e)
                                 {
                                     if(e instanceof InvalidTelnetOptionException)
                                     {
@@ -222,7 +222,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
                             }
                             else if(line.matches("^\\^[A-Z^]\\r?\\n?$"))
                             {
-                                byte toSend = buff[1];
+                                final byte toSend = buff[1];
                                 if (toSend == '^') {
                                     outstr.write(toSend);
                                 } else {
@@ -237,14 +237,14 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
                                         outstr.write(buff, 0 , ret_read);
                                         outstr.flush();
                                 }
-                                catch (IOException e)
+                                catch (final IOException e)
                                 {
                                         end_loop = true;
                                 }
                             }
                         }
                     }
-                    catch (IOException e)
+                    catch (final IOException e)
                     {
                         System.err.println("Exception while reading keyboard:" + e.getMessage());
                         end_loop = true;
@@ -256,12 +256,12 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
                 {
                     tc.disconnect();
                 }
-                catch (IOException e)
+                catch (final IOException e)
                 {
                           System.err.println("Exception while connecting:" + e.getMessage());
                 }
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                     System.err.println("Exception while connecting:" + e.getMessage());
                     System.exit(1);
@@ -279,7 +279,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
      * @param option_code - code of the option negotiated
      ***/
     @Override
-    public void receivedNegotiation(int negotiation_code, int option_code)
+    public void receivedNegotiation(final int negotiation_code, final int option_code)
     {
         String command = null;
         switch (negotiation_code) {
@@ -313,11 +313,11 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
     @Override
     public void run()
     {
-        InputStream instr = tc.getInputStream();
+        final InputStream instr = tc.getInputStream();
 
         try
         {
-            byte[] buff = new byte[1024];
+            final byte[] buff = new byte[1024];
             int ret_read = 0;
 
             do
@@ -330,7 +330,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
             }
             while (ret_read >= 0);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println("Exception while reading socket:" + e.getMessage());
         }
@@ -339,7 +339,7 @@ public class TelnetClientExample implements Runnable, TelnetNotificationHandler
         {
             tc.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println("Exception while closing telnet:" + e.getMessage());
         }
diff --git a/src/main/java/org/apache/commons/net/examples/telnet/WeatherTelnet.java b/src/main/java/org/apache/commons/net/examples/telnet/WeatherTelnet.java
index 3e4c560..a678a28 100644
--- a/src/main/java/org/apache/commons/net/examples/telnet/WeatherTelnet.java
+++ b/src/main/java/org/apache/commons/net/examples/telnet/WeatherTelnet.java
@@ -38,7 +38,7 @@ import org.apache.commons.net.examples.util.IOUtil;
 public final class WeatherTelnet
 {
 
-    public static final void main(String[] args)
+    public static final void main(final String[] args)
     {
         TelnetClient telnet;
 
@@ -48,7 +48,7 @@ public final class WeatherTelnet
         {
             telnet.connect("rainmaker.wunderground.com", 3000);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             System.exit(1);
@@ -61,7 +61,7 @@ public final class WeatherTelnet
         {
             telnet.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/unix/chargen.java b/src/main/java/org/apache/commons/net/examples/unix/chargen.java
index 6d62479..1f8d0f5 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/chargen.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/chargen.java
@@ -42,11 +42,11 @@ import org.apache.commons.net.chargen.CharGenUDPClient;
 public final class chargen
 {
 
-    public static final void chargenTCP(String host) throws IOException
+    public static final void chargenTCP(final String host) throws IOException
     {
         int lines = 100;
         String line;
-        CharGenTCPClient client = new CharGenTCPClient();
+        final CharGenTCPClient client = new CharGenTCPClient();
         BufferedReader chargenInput;
 
         // We want to timeout if a response takes longer than 60 seconds
@@ -70,7 +70,7 @@ public final class chargen
         client.disconnect();
     }
 
-    public static final void chargenUDP(String host) throws IOException
+    public static final void chargenUDP(final String host) throws IOException
     {
         int packets = 50;
         byte[] data;
@@ -97,13 +97,13 @@ public final class chargen
             // because even though the JDK 1.1 docs claim that
             // InterruptedIOException is thrown on a timeout, it seems
             // SocketException is also thrown.
-            catch (SocketException e)
+            catch (final SocketException e)
             {
                 // We timed out and assume the packet is lost.
                 System.err.println("SocketException: Timed out and dropped packet");
                 continue;
             }
-            catch (InterruptedIOException e)
+            catch (final InterruptedIOException e)
             {
                 // We timed out and assume the packet is lost.
                 System.err.println(
@@ -118,7 +118,7 @@ public final class chargen
     }
 
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
 
         if (args.length == 1)
@@ -127,7 +127,7 @@ public final class chargen
             {
                 chargenTCP(args[0]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
@@ -139,7 +139,7 @@ public final class chargen
             {
                 chargenUDP(args[1]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/unix/daytime.java b/src/main/java/org/apache/commons/net/examples/unix/daytime.java
index 6da7d7d..9fd8c4a 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/daytime.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/daytime.java
@@ -36,9 +36,9 @@ import org.apache.commons.net.daytime.DaytimeUDPClient;
 public final class daytime
 {
 
-    public static final void daytimeTCP(String host) throws IOException
+    public static final void daytimeTCP(final String host) throws IOException
     {
-        DaytimeTCPClient client = new DaytimeTCPClient();
+        final DaytimeTCPClient client = new DaytimeTCPClient();
 
         // We want to timeout if a response takes longer than 60 seconds
         client.setDefaultTimeout(60000);
@@ -47,9 +47,9 @@ public final class daytime
         client.disconnect();
     }
 
-    public static final void daytimeUDP(String host) throws IOException
+    public static final void daytimeUDP(final String host) throws IOException
     {
-        DaytimeUDPClient client = new DaytimeUDPClient();
+        final DaytimeUDPClient client = new DaytimeUDPClient();
 
         // We want to timeout if a response takes longer than 60 seconds
         client.setDefaultTimeout(60000);
@@ -60,7 +60,7 @@ public final class daytime
     }
 
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
 
         if (args.length == 1)
@@ -69,7 +69,7 @@ public final class daytime
             {
                 daytimeTCP(args[0]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
@@ -81,7 +81,7 @@ public final class daytime
             {
                 daytimeUDP(args[1]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/unix/echo.java b/src/main/java/org/apache/commons/net/examples/unix/echo.java
index c514932..c25844e 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/echo.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/echo.java
@@ -42,9 +42,9 @@ import org.apache.commons.net.echo.EchoUDPClient;
 public final class echo
 {
 
-    public static final void echoTCP(String host) throws IOException
+    public static final void echoTCP(final String host) throws IOException
     {
-        EchoTCPClient client = new EchoTCPClient();
+        final EchoTCPClient client = new EchoTCPClient();
         BufferedReader input, echoInput;
         PrintWriter echoOutput;
         String line;
@@ -70,7 +70,7 @@ public final class echo
         client.disconnect();
     }
 
-    public static final void echoUDP(String host) throws IOException
+    public static final void echoUDP(final String host) throws IOException
     {
         int length, count;
         byte[] data;
@@ -105,14 +105,14 @@ public final class echo
                 // because even though the JDK 1.1 docs claim that
                 // InterruptedIOException is thrown on a timeout, it seems
                 // SocketException is also thrown.
-                catch (SocketException e)
+                catch (final SocketException e)
                 {
                     // We timed out and assume the packet is lost.
                     System.err.println(
                         "SocketException: Timed out and dropped packet");
                     break;
                 }
-                catch (InterruptedIOException e)
+                catch (final InterruptedIOException e)
                 {
                     // We timed out and assume the packet is lost.
                     System.err.println(
@@ -131,7 +131,7 @@ public final class echo
     }
 
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
 
         if (args.length == 1)
@@ -140,7 +140,7 @@ public final class echo
             {
                 echoTCP(args[0]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
@@ -152,7 +152,7 @@ public final class echo
             {
                 echoUDP(args[1]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/unix/finger.java b/src/main/java/org/apache/commons/net/examples/unix/finger.java
index b7dc2c8..bb0ad68 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/finger.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/finger.java
@@ -35,7 +35,7 @@ import org.apache.commons.net.finger.FingerClient;
 public final class finger
 {
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         boolean longOutput = false;
         int arg = 0, index;
@@ -68,7 +68,7 @@ public final class finger
             {
                 address = InetAddress.getLocalHost();
             }
-            catch (UnknownHostException e)
+            catch (final UnknownHostException e)
             {
                 System.err.println("Error unknown host: " + e.getMessage());
                 System.exit(1);
@@ -80,7 +80,7 @@ public final class finger
                 System.out.print(finger.query(longOutput));
                 finger.disconnect();
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 System.err.println("Error I/O exception: " + e.getMessage());
                 System.exit(1);
@@ -102,7 +102,7 @@ public final class finger
                 {
                     address = InetAddress.getLocalHost();
                 }
-                catch (UnknownHostException e)
+                catch (final UnknownHostException e)
                 {
                     System.err.println("Error unknown host: " + e.getMessage());
                     System.exit(1);
@@ -118,7 +118,7 @@ public final class finger
                     address = InetAddress.getByName(host);
                     System.out.println("[" + address.getHostName() + "]");
                 }
-                catch (UnknownHostException e)
+                catch (final UnknownHostException e)
                 {
                     System.err.println("Error unknown host: " + e.getMessage());
                     System.exit(1);
@@ -131,7 +131,7 @@ public final class finger
                 System.out.print(finger.query(longOutput, handle));
                 finger.disconnect();
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 System.err.println("Error I/O exception: " + e.getMessage());
                 System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/unix/fwhois.java b/src/main/java/org/apache/commons/net/examples/unix/fwhois.java
index 4b6d1e1..8455849 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/fwhois.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/fwhois.java
@@ -30,7 +30,7 @@ import org.apache.commons.net.whois.WhoisClient;
 public final class fwhois
 {
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         int index;
         String handle, host;
@@ -65,7 +65,7 @@ public final class fwhois
             address = InetAddress.getByName(host);
             System.out.println("[" + address.getHostName() + "]");
         }
-        catch (UnknownHostException e)
+        catch (final UnknownHostException e)
         {
             System.err.println("Error unknown host: " + e.getMessage());
             System.exit(1);
@@ -77,7 +77,7 @@ public final class fwhois
             System.out.print(whois.query(handle));
             whois.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println("Error I/O exception: " + e.getMessage());
             System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/unix/rdate.java b/src/main/java/org/apache/commons/net/examples/unix/rdate.java
index ab6e708..a9debab 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/rdate.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/rdate.java
@@ -37,9 +37,9 @@ import org.apache.commons.net.time.TimeUDPClient;
 public final class rdate
 {
 
-    public static final void timeTCP(String host) throws IOException
+    public static final void timeTCP(final String host) throws IOException
     {
-        TimeTCPClient client = new TimeTCPClient();
+        final TimeTCPClient client = new TimeTCPClient();
 
         // We want to timeout if a response takes longer than 60 seconds
         client.setDefaultTimeout(60000);
@@ -48,9 +48,9 @@ public final class rdate
         client.disconnect();
     }
 
-    public static final void timeUDP(String host) throws IOException
+    public static final void timeUDP(final String host) throws IOException
     {
-        TimeUDPClient client = new TimeUDPClient();
+        final TimeUDPClient client = new TimeUDPClient();
 
         // We want to timeout if a response takes longer than 60 seconds
         client.setDefaultTimeout(60000);
@@ -60,7 +60,7 @@ public final class rdate
     }
 
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
 
         if (args.length == 1)
@@ -69,7 +69,7 @@ public final class rdate
             {
                 timeTCP(args[0]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
@@ -81,7 +81,7 @@ public final class rdate
             {
                 timeUDP(args[1]);
             }
-            catch (IOException e)
+            catch (final IOException e)
             {
                 e.printStackTrace();
                 System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/unix/rexec.java b/src/main/java/org/apache/commons/net/examples/unix/rexec.java
index 5b32465..60e789d 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/rexec.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/rexec.java
@@ -39,7 +39,7 @@ import org.apache.commons.net.examples.util.IOUtil;
 public final class rexec
 {
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         String server, username, password, command;
         RExecClient client;
@@ -63,7 +63,7 @@ public final class rexec
         {
             client.connect(server);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println("Could not connect to server.");
             e.printStackTrace();
@@ -74,13 +74,13 @@ public final class rexec
         {
             client.rexec(username, password, command);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             try
             {
                 client.disconnect();
             }
-            catch (IOException f)
+            catch (final IOException f)
             {/* ignored */}
             e.printStackTrace();
             System.err.println("Could not execute command.");
@@ -95,7 +95,7 @@ public final class rexec
         {
             client.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/unix/rlogin.java b/src/main/java/org/apache/commons/net/examples/unix/rlogin.java
index 4247d4a..f999889 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/rlogin.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/rlogin.java
@@ -50,7 +50,7 @@ import org.apache.commons.net.examples.util.IOUtil;
 public final class rlogin
 {
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         String server, localuser, remoteuser, terminal;
         RLoginClient client;
@@ -74,7 +74,7 @@ public final class rlogin
         {
             client.connect(server);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println("Could not connect to server.");
             e.printStackTrace();
@@ -85,13 +85,13 @@ public final class rlogin
         {
             client.rlogin(localuser, remoteuser, terminal);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             try
             {
                 client.disconnect();
             }
-            catch (IOException f)
+            catch (final IOException f)
             {/* ignored */}
             e.printStackTrace();
             System.err.println("rlogin authentication failed.");
@@ -106,7 +106,7 @@ public final class rlogin
         {
             client.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/unix/rshell.java b/src/main/java/org/apache/commons/net/examples/unix/rshell.java
index 862a9ea..d0946d6 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/rshell.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/rshell.java
@@ -43,7 +43,7 @@ import org.apache.commons.net.examples.util.IOUtil;
 public final class rshell
 {
 
-    public static void main(String[] args)
+    public static void main(final String[] args)
     {
         String server, localuser, remoteuser, command;
         RCommandClient client;
@@ -67,7 +67,7 @@ public final class rshell
         {
             client.connect(server);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             System.err.println("Could not connect to server.");
             e.printStackTrace();
@@ -78,13 +78,13 @@ public final class rshell
         {
             client.rcommand(localuser, remoteuser, command);
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             try
             {
                 client.disconnect();
             }
-            catch (IOException f)
+            catch (final IOException f)
             {/* ignored */}
             e.printStackTrace();
             System.err.println("Could not execute command.");
@@ -99,7 +99,7 @@ public final class rshell
         {
             client.disconnect();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             e.printStackTrace();
             System.exit(1);
diff --git a/src/main/java/org/apache/commons/net/examples/util/IOUtil.java b/src/main/java/org/apache/commons/net/examples/util/IOUtil.java
index cedbb95..cd8738c 100644
--- a/src/main/java/org/apache/commons/net/examples/util/IOUtil.java
+++ b/src/main/java/org/apache/commons/net/examples/util/IOUtil.java
@@ -58,7 +58,7 @@ public final class IOUtil
                                  remoteOutput.flush();
                              }
                          }
-                         catch (IOException e)
+                         catch (final IOException e)
                          {
                              //e.printStackTrace();
                          }
@@ -76,7 +76,7 @@ public final class IOUtil
                          {
                              Util.copyStream(remoteInput, localOutput);
                          }
-                         catch (IOException e)
+                         catch (final IOException e)
                          {
                              e.printStackTrace();
                              System.exit(1);
@@ -96,7 +96,7 @@ public final class IOUtil
             writer.join();
             reader.interrupt();
         }
-        catch (InterruptedException e)
+        catch (final InterruptedException e)
         {
             // Ignored
         }
diff --git a/src/main/java/org/apache/commons/net/finger/FingerClient.java b/src/main/java/org/apache/commons/net/finger/FingerClient.java
index 7655917..11c7654 100644
--- a/src/main/java/org/apache/commons/net/finger/FingerClient.java
+++ b/src/main/java/org/apache/commons/net/finger/FingerClient.java
@@ -81,10 +81,10 @@ public class FingerClient extends SocketClient
      * @return The result of the finger query.
      * @throws IOException If an I/O error occurs while reading the socket.
      ***/
-    public String query(boolean longOutput, String username) throws IOException
+    public String query(final boolean longOutput, final String username) throws IOException
     {
         int read;
-        StringBuilder result = new StringBuilder(__buffer.length);
+        final StringBuilder result = new StringBuilder(__buffer.length);
         BufferedReader input;
 
         input =
@@ -118,7 +118,7 @@ public class FingerClient extends SocketClient
      * @return The result of the finger query.
      * @throws IOException If an I/O error occurs while reading the socket.
      ***/
-    public String query(boolean longOutput) throws IOException
+    public String query(final boolean longOutput) throws IOException
     {
         return query(longOutput, "");
     }
@@ -136,7 +136,7 @@ public class FingerClient extends SocketClient
      *         Can be read to obtain finger results.
      * @throws IOException If an I/O error during the operation.
      ***/
-    public InputStream getInputStream(boolean longOutput, String username)
+    public InputStream getInputStream(final boolean longOutput, final String username)
     throws IOException
     {
         return getInputStream(longOutput, username, null);
@@ -156,11 +156,11 @@ public class FingerClient extends SocketClient
      *         Can be read to obtain finger results.
      * @throws IOException If an I/O error during the operation.
      ***/
-    public InputStream getInputStream(boolean longOutput, String username, String encoding)
+    public InputStream getInputStream(final boolean longOutput, final String username, final String encoding)
     throws IOException
     {
         DataOutputStream output;
-        StringBuilder buffer = new StringBuilder(64);
+        final StringBuilder buffer = new StringBuilder(64);
         if (longOutput) {
             buffer.append(__LONG_FLAG);
         }
@@ -168,7 +168,7 @@ public class FingerClient extends SocketClient
         buffer.append(SocketClient.NETASCII_EOL);
 
         // Note: Charsets.toCharset() returns the platform default for null input
-        byte[] encodedQuery = buffer.toString().getBytes(Charsets.toCharset(encoding).name()); // Java 1.6 can use charset directly
+        final byte[] encodedQuery = buffer.toString().getBytes(Charsets.toCharset(encoding).name()); // Java 1.6 can use charset directly
 
         output = new DataOutputStream(new BufferedOutputStream(_output_, 1024));
         output.write(encodedQuery, 0, encodedQuery.length);
@@ -190,7 +190,7 @@ public class FingerClient extends SocketClient
      *         Can be read to obtain finger results.
      * @throws IOException If an I/O error during the operation.
      ***/
-    public InputStream getInputStream(boolean longOutput) throws IOException
+    public InputStream getInputStream(final boolean longOutput) throws IOException
     {
         return getInputStream(longOutput, "");
     }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTP.java b/src/main/java/org/apache/commons/net/ftp/FTP.java
index 8745692..21c2ee7 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTP.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTP.java
@@ -277,7 +277,7 @@ public class FTP extends SocketClient
     }
 
     // The RFC-compliant multiline termination check
-    private boolean __strictCheck(String line, String code) {
+    private boolean __strictCheck(final String line, final String code) {
         return (!(line.startsWith(code) && line.charAt(REPLY_CODE_LEN) == ' '));
     }
 
@@ -286,7 +286,7 @@ public class FTP extends SocketClient
     // 426 multi-line reply in response to ls /.  We relax the condition to
     // test that the line starts with a digit rather than starting with
     // the code.
-    private boolean __lenientCheck(String line) {
+    private boolean __lenientCheck(final String line) {
         return (!(line.length() > REPLY_CODE_LEN&& line.charAt(REPLY_CODE_LEN) != '-' &&
                 Character.isDigit(line.charAt(0))));
     }
@@ -310,7 +310,7 @@ public class FTP extends SocketClient
         __getReply(false);
     }
 
-    private void __getReply(boolean reportReply) throws IOException
+    private void __getReply(final boolean reportReply) throws IOException
     {
         int length;
 
@@ -338,7 +338,7 @@ public class FTP extends SocketClient
             code = line.substring(0, REPLY_CODE_LEN);
             _replyCode = Integer.parseInt(code);
         }
-        catch (NumberFormatException e)
+        catch (final NumberFormatException e)
         {
             throw new MalformedServerReplyException(
                 "Could not parse response code.\nServer Reply: " + line);
@@ -348,7 +348,7 @@ public class FTP extends SocketClient
 
         // Check the server reply type
         if (length > REPLY_CODE_LEN) {
-            char sep = line.charAt(REPLY_CODE_LEN);
+            final char sep = line.charAt(REPLY_CODE_LEN);
             // Get extra lines if message continues.
             if (sep == '-') {
                 do
@@ -407,7 +407,7 @@ public class FTP extends SocketClient
      * @throws IOException on error
      * @since 3.4
      */
-    protected void _connectAction_(Reader socketIsReader) throws IOException {
+    protected void _connectAction_(final Reader socketIsReader) throws IOException {
         super._connectAction_(); // sets up _input_ and _output_
         if(socketIsReader == null) {
             _controlInput_ =
@@ -418,7 +418,7 @@ public class FTP extends SocketClient
         _controlOutput_ =
             new BufferedWriter(new OutputStreamWriter(_output_, getControlEncoding()));
         if (connectTimeout > 0) { // NET-385
-            int original = _socket_.getSoTimeout();
+            final int original = _socket_.getSoTimeout();
             _socket_.setSoTimeout(connectTimeout);
             try {
                 __getReply();
@@ -426,8 +426,8 @@ public class FTP extends SocketClient
                 if (FTPReply.isPositivePreliminary(_replyCode)) {
                     __getReply();
                 }
-            } catch (SocketTimeoutException e) {
-                IOException ioe = new IOException("Timed out waiting for initial connect reply");
+            } catch (final SocketTimeoutException e) {
+                final IOException ioe = new IOException("Timed out waiting for initial connect reply");
                 ioe.initCause(e);
                 throw ioe;
             } finally {
@@ -453,7 +453,7 @@ public class FTP extends SocketClient
      *
      * @param encoding The new character encoding for the control connection.
      */
-    public void setControlEncoding(String encoding) {
+    public void setControlEncoding(final String encoding) {
         _controlEncoding = encoding;
     }
 
@@ -507,7 +507,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int sendCommand(String command, String args) throws IOException
+    public int sendCommand(final String command, final String args) throws IOException
     {
         if (_controlOutput_ == null) {
             throw new IOException("Connection is not open");
@@ -523,7 +523,7 @@ public class FTP extends SocketClient
         return _replyCode;
     }
 
-    private String __buildMessage(String command, String args) {
+    private String __buildMessage(final String command, final String args) {
         final StringBuilder __commandBuffer = new StringBuilder();
 
         __commandBuffer.append(command);
@@ -537,13 +537,13 @@ public class FTP extends SocketClient
         return __commandBuffer.toString();
     }
 
-    private void __send(String message) throws IOException,
+    private void __send(final String message) throws IOException,
             FTPConnectionClosedException, SocketException {
         try{
             _controlOutput_.write(message);
             _controlOutput_.flush();
         }
-        catch (SocketException e)
+        catch (final SocketException e)
         {
             if (!isConnected())
             {
@@ -564,7 +564,7 @@ public class FTP extends SocketClient
      * @since 3.0
      */
     protected void __noop() throws IOException {
-        String msg = __buildMessage(FTPCmd.NOOP.getCommand(), null);
+        final String msg = __buildMessage(FTPCmd.NOOP.getCommand(), null);
         __send(msg);
         __getReplyNoReport(); // This may timeout
     }
@@ -592,7 +592,7 @@ public class FTP extends SocketClient
      * @deprecated (3.3) Use {@link #sendCommand(FTPCmd, String)} instead
      ***/
     @Deprecated
-    public int sendCommand(int command, String args) throws IOException
+    public int sendCommand(final int command, final String args) throws IOException
     {
         return sendCommand(FTPCommand.getCommand(command), args);
     }
@@ -617,7 +617,7 @@ public class FTP extends SocketClient
      *      command or receiving the server reply.
      * @since 3.3
      */
-    public int sendCommand(FTPCmd command)  throws IOException{
+    public int sendCommand(final FTPCmd command)  throws IOException{
         return sendCommand(command, null);
     }
 
@@ -643,7 +643,7 @@ public class FTP extends SocketClient
      *      command or receiving the server reply.
      * @since 3.3
      */
-    public int sendCommand(FTPCmd command, String args)  throws IOException{
+    public int sendCommand(final FTPCmd command, final String args)  throws IOException{
         return sendCommand(command.getCommand(), args);
     }
 
@@ -665,7 +665,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int sendCommand(String command) throws IOException
+    public int sendCommand(final String command) throws IOException
     {
         return sendCommand(command, null);
     }
@@ -690,7 +690,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int sendCommand(int command) throws IOException
+    public int sendCommand(final int command) throws IOException
     {
         return sendCommand(command, null);
     }
@@ -762,7 +762,7 @@ public class FTP extends SocketClient
 
         buffer = new StringBuilder(256);
 
-        for (String line : _replyLines) {
+        for (final String line : _replyLines) {
                 buffer.append(line);
                 buffer.append(SocketClient.NETASCII_EOL);
         }
@@ -787,7 +787,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int user(String username) throws IOException
+    public int user(final String username) throws IOException
     {
         return sendCommand(FTPCmd.USER, username);
     }
@@ -805,7 +805,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      */
-    public int pass(String password) throws IOException
+    public int pass(final String password) throws IOException
     {
         return sendCommand(FTPCmd.PASS, password);
     }
@@ -824,7 +824,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int acct(String account) throws IOException
+    public int acct(final String account) throws IOException
     {
         return sendCommand(FTPCmd.ACCT, account);
     }
@@ -862,7 +862,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int cwd(String directory) throws IOException
+    public int cwd(final String directory) throws IOException
     {
         return sendCommand(FTPCmd.CWD, directory);
     }
@@ -935,7 +935,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int smnt(String dir) throws IOException
+    public int smnt(final String dir) throws IOException
     {
         return sendCommand(FTPCmd.SMNT, dir);
     }
@@ -955,10 +955,10 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int port(InetAddress host, int port) throws IOException
+    public int port(final InetAddress host, final int port) throws IOException
     {
         int num;
-        StringBuilder info = new StringBuilder(24);
+        final StringBuilder info = new StringBuilder(24);
 
         info.append(host.getHostAddress().replace('.', ','));
         num = port >>> 8;
@@ -995,10 +995,10 @@ public class FTP extends SocketClient
      *      command or receiving the server reply.
      * @since 2.2
      ***/
-    public int eprt(InetAddress host, int port) throws IOException
+    public int eprt(final InetAddress host, final int port) throws IOException
     {
         int num;
-        StringBuilder info = new StringBuilder();
+        final StringBuilder info = new StringBuilder();
         String h;
 
         // If IPv6, trim the zone index
@@ -1082,9 +1082,9 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      */
-    public int type(int fileType, int formatOrByteSize) throws IOException
+    public int type(final int fileType, final int formatOrByteSize) throws IOException
     {
-        StringBuilder arg = new StringBuilder();
+        final StringBuilder arg = new StringBuilder();
 
         arg.append(__modes.charAt(fileType));
         arg.append(' ');
@@ -1113,7 +1113,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      */
-    public int type(int fileType) throws IOException
+    public int type(final int fileType) throws IOException
     {
         return sendCommand(FTPCmd.TYPE,
                            __modes.substring(fileType, fileType + 1));
@@ -1134,7 +1134,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int stru(int structure) throws IOException
+    public int stru(final int structure) throws IOException
     {
         return sendCommand(FTPCmd.STRU,
                            __modes.substring(structure, structure + 1));
@@ -1155,7 +1155,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int mode(int mode) throws IOException
+    public int mode(final int mode) throws IOException
     {
         return sendCommand(FTPCmd.MODE,
                            __modes.substring(mode, mode + 1));
@@ -1178,7 +1178,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int retr(String pathname) throws IOException
+    public int retr(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.RETR, pathname);
     }
@@ -1201,7 +1201,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int stor(String pathname) throws IOException
+    public int stor(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.STOR, pathname);
     }
@@ -1245,7 +1245,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      */
-    public int stou(String pathname) throws IOException
+    public int stou(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.STOU, pathname);
     }
@@ -1268,7 +1268,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int appe(String pathname) throws IOException
+    public int appe(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.APPE, pathname);
     }
@@ -1287,7 +1287,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int allo(int bytes) throws IOException
+    public int allo(final int bytes) throws IOException
     {
         return sendCommand(FTPCmd.ALLO, Integer.toString(bytes));
     }
@@ -1306,7 +1306,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int allo(long bytes) throws IOException
+    public int allo(final long bytes) throws IOException
     {
         return sendCommand(FTPCmd.ALLO, Long.toString(bytes));
     }
@@ -1339,7 +1339,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int allo(int bytes, int recordSize) throws IOException
+    public int allo(final int bytes, final int recordSize) throws IOException
     {
         return sendCommand(FTPCmd.ALLO, Integer.toString(bytes) + " R " +
                            Integer.toString(recordSize));
@@ -1360,7 +1360,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int allo(long bytes, int recordSize) throws IOException
+    public int allo(final long bytes, final int recordSize) throws IOException
     {
         return sendCommand(FTPCmd.ALLO, Long.toString(bytes) + " R " +
                            Integer.toString(recordSize));
@@ -1380,7 +1380,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int rest(String marker) throws IOException
+    public int rest(final String marker) throws IOException
     {
         return sendCommand(FTPCmd.REST, marker);
     }
@@ -1392,7 +1392,7 @@ public class FTP extends SocketClient
      * @throws IOException on error
      * @since 2.0
      **/
-    public int mdtm(String file) throws IOException
+    public int mdtm(final String file) throws IOException
     {
         return sendCommand(FTPCmd.MDTM, file);
     }
@@ -1415,7 +1415,7 @@ public class FTP extends SocketClient
      * @since 2.2
      * @see <a href="http://tools.ietf.org/html/draft-somers-ftp-mfxx-04">http://tools.ietf.org/html/draft-somers-ftp-mfxx-04</a>
      **/
-    public int mfmt(String pathname, String timeval) throws IOException
+    public int mfmt(final String pathname, final String timeval) throws IOException
     {
         return sendCommand(FTPCmd.MFMT, timeval + " " + pathname);
     }
@@ -1435,7 +1435,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int rnfr(String pathname) throws IOException
+    public int rnfr(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.RNFR, pathname);
     }
@@ -1454,7 +1454,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int rnto(String pathname) throws IOException
+    public int rnto(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.RNTO, pathname);
     }
@@ -1473,7 +1473,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int dele(String pathname) throws IOException
+    public int dele(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.DELE, pathname);
     }
@@ -1492,7 +1492,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int rmd(String pathname) throws IOException
+    public int rmd(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.RMD, pathname);
     }
@@ -1511,7 +1511,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int mkd(String pathname) throws IOException
+    public int mkd(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.MKD, pathname);
     }
@@ -1573,7 +1573,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int list(String pathname) throws IOException
+    public int list(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.LIST, pathname);
     }
@@ -1619,7 +1619,7 @@ public class FTP extends SocketClient
      *      command or receiving the server reply.
      * @since 3.0
      */
-    public int mlsd(String path) throws IOException
+    public int mlsd(final String path) throws IOException
     {
         return sendCommand(FTPCmd.MLSD, path);
     }
@@ -1665,7 +1665,7 @@ public class FTP extends SocketClient
      *      command or receiving the server reply.
      * @since 3.0
      */
-    public int mlst(String path) throws IOException
+    public int mlst(final String path) throws IOException
     {
         return sendCommand(FTPCmd.MLST, path);
     }
@@ -1709,7 +1709,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int nlst(String pathname) throws IOException
+    public int nlst(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.NLST, pathname);
     }
@@ -1728,7 +1728,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int site(String parameters) throws IOException
+    public int site(final String parameters) throws IOException
     {
         return sendCommand(FTPCmd.SITE, parameters);
     }
@@ -1748,7 +1748,7 @@ public class FTP extends SocketClient
      *      command or receiving the server reply.
      * @since 3.7
      ***/
-    public int size(String parameters) throws IOException
+    public int size(final String parameters) throws IOException
     {
         return sendCommand(FTPCmd.SIZE, parameters);
     }
@@ -1803,7 +1803,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int stat(String pathname) throws IOException
+    public int stat(final String pathname) throws IOException
     {
         return sendCommand(FTPCmd.STAT, pathname);
     }
@@ -1840,7 +1840,7 @@ public class FTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int help(String command) throws IOException
+    public int help(final String command) throws IOException
     {
         return sendCommand(FTPCmd.HELP, command);
     }
@@ -1877,7 +1877,7 @@ public class FTP extends SocketClient
      * @param strictMultilineParsing the setting
      * @since 2.0
      */
-    public void setStrictMultilineParsing(boolean strictMultilineParsing) {
+    public void setStrictMultilineParsing(final boolean strictMultilineParsing) {
         this.strictMultilineParsing = strictMultilineParsing;
     }
 
@@ -1907,7 +1907,7 @@ public class FTP extends SocketClient
      * @param strictReplyParsing the setting
      * @since 3.6
      */
-    public void setStrictReplyParsing(boolean strictReplyParsing) {
+    public void setStrictReplyParsing(final boolean strictReplyParsing) {
         this.strictReplyParsing = strictReplyParsing;
     }
 
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPClient.java b/src/main/java/org/apache/commons/net/ftp/FTPClient.java
index 4555e62..19d4e2b 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPClient.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPClient.java
@@ -435,18 +435,18 @@ implements Configurable
         static final Properties PROPERTIES;
 
         static {
-            InputStream resourceAsStream = FTPClient.class.getResourceAsStream(SYSTEM_TYPE_PROPERTIES);
+            final InputStream resourceAsStream = FTPClient.class.getResourceAsStream(SYSTEM_TYPE_PROPERTIES);
             Properties p = null;
             if (resourceAsStream != null) {
                 p = new Properties();
                 try {
                     p.load(resourceAsStream);
-                } catch (IOException e) {
+                } catch (final IOException e) {
                     // Ignored
                 } finally {
                     try {
                         resourceAsStream.close();
-                    } catch (IOException e) {
+                    } catch (final IOException e) {
                         // Ignored
                     }
                 }
@@ -528,15 +528,15 @@ implements Configurable
      * (i.e. enclosing quotes are missing or embedded quotes are not doubled)
      */
     // package protected for access by test cases
-    static String __parsePathname(String reply)
+    static String __parsePathname(final String reply)
     {
-        String param = reply.substring(REPLY_CODE_LEN + 1);
+        final String param = reply.substring(REPLY_CODE_LEN + 1);
         if (param.startsWith("\"")) {
-            StringBuilder sb = new StringBuilder();
+            final StringBuilder sb = new StringBuilder();
             boolean quoteSeen = false;
             // start after initial quote
             for(int i=1; i < param.length(); i++) {
-                char ch = param.charAt(i);
+                final char ch = param.charAt(i);
                 if (ch=='"') {
                     if (quoteSeen) {
                         sb.append(ch);
@@ -565,10 +565,10 @@ implements Configurable
      * @param reply the reply to parse
      * @throws MalformedServerReplyException if the server reply does not match  (n,n,n,n),(n),(n)
      */
-    protected void _parsePassiveModeReply(String reply)
+    protected void _parsePassiveModeReply(final String reply)
     throws MalformedServerReplyException
     {
-        java.util.regex.Matcher m = __PARMS_PAT.matcher(reply);
+        final java.util.regex.Matcher m = __PARMS_PAT.matcher(reply);
         if (!m.find()) {
             throw new MalformedServerReplyException(
                     "Could not parse passive host information.\nServer Reply: " + reply);
@@ -579,11 +579,11 @@ implements Configurable
 
         try
         {
-            int oct1 = Integer.parseInt(m.group(2));
-            int oct2 = Integer.parseInt(m.group(3));
+            final int oct1 = Integer.parseInt(m.group(2));
+            final int oct2 = Integer.parseInt(m.group(3));
             __passivePort = (oct1 << 8) | oct2;
         }
-        catch (NumberFormatException e)
+        catch (final NumberFormatException e)
         {
             throw new MalformedServerReplyException(
                     "Could not parse passive port information.\nServer Reply: " + reply);
@@ -591,13 +591,13 @@ implements Configurable
 
         if (__passiveNatWorkaroundStrategy != null) {
             try {
-                String passiveHost = __passiveNatWorkaroundStrategy.resolve(__passiveHost);
+                final String passiveHost = __passiveNatWorkaroundStrategy.resolve(__passiveHost);
                 if (!__passiveHost.equals(passiveHost)) {
                     fireReplyReceived(0,
                             "[Replacing PASV mode reply address "+__passiveHost+" with "+passiveHost+"]\n");
                     __passiveHost = passiveHost;
                 }
-            } catch (UnknownHostException e) { // Should not happen as we are passing in an IP address
+            } catch (final UnknownHostException e) { // Should not happen as we are passing in an IP address
                 throw new MalformedServerReplyException(
                         "Could not parse passive host information.\nServer Reply: " + reply);
             }
@@ -627,7 +627,7 @@ implements Configurable
         {
             port = Integer.parseInt(reply.substring(3, reply.length()-1));
         }
-        catch (NumberFormatException e)
+        catch (final NumberFormatException e)
         {
             throw new MalformedServerReplyException(
                     "Could not parse extended passive host information.\nServer Reply: " + reply);
@@ -639,7 +639,7 @@ implements Configurable
         __passivePort = port;
     }
 
-    private boolean __storeFile(FTPCmd command, String remote, InputStream local)
+    private boolean __storeFile(final FTPCmd command, final String remote, final InputStream local)
     throws IOException
     {
         return _storeFile(command.getCommand(), remote, local);
@@ -654,10 +654,10 @@ implements Configurable
      * @return true if successful
      * @throws IOException on error
      */
-    protected boolean _storeFile(String command, String remote, InputStream local)
+    protected boolean _storeFile(final String command, final String remote, final InputStream local)
     throws IOException
     {
-        Socket socket = _openDataConnection_(command, remote);
+        final Socket socket = _openDataConnection_(command, remote);
 
         if (socket == null) {
             return false;
@@ -688,7 +688,7 @@ implements Configurable
             // Get the transfer response
             return completePendingCommand();
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             Util.closeQuietly(output); // ignore close errors here
             Util.closeQuietly(socket); // ignore close errors here
@@ -700,7 +700,7 @@ implements Configurable
         }
     }
 
-    private OutputStream __storeFileStream(FTPCmd command, String remote)
+    private OutputStream __storeFileStream(final FTPCmd command, final String remote)
     throws IOException
     {
         return _storeFileStream(command.getCommand(), remote);
@@ -713,10 +713,10 @@ implements Configurable
      * @throws IOException on error
      * @since 3.1
      */
-    protected OutputStream _storeFileStream(String command, String remote)
+    protected OutputStream _storeFileStream(final String command, final String remote)
     throws IOException
     {
-        Socket socket = _openDataConnection_(command, remote);
+        final Socket socket = _openDataConnection_(command, remote);
 
         if (socket == null) {
             return null;
@@ -759,7 +759,7 @@ implements Configurable
      * @deprecated (3.3) Use {@link #_openDataConnection_(FTPCmd, String)} instead
      */
     @Deprecated
-    protected Socket _openDataConnection_(int command, String arg)
+    protected Socket _openDataConnection_(final int command, final String arg)
     throws IOException
     {
         return _openDataConnection_(FTPCommand.getCommand(command), arg);
@@ -784,7 +784,7 @@ implements Configurable
      *      command to the server or receiving a reply from the server.
      * @since 3.3
      */
-    protected Socket _openDataConnection_(FTPCmd command, String arg)
+    protected Socket _openDataConnection_(final FTPCmd command, final String arg)
     throws IOException
     {
         return _openDataConnection_(command.getCommand(), arg);
@@ -809,7 +809,7 @@ implements Configurable
      *      command to the server or receiving a reply from the server.
      * @since 3.1
      */
-    protected Socket _openDataConnection_(String command, String arg)
+    protected Socket _openDataConnection_(final String command, final String arg)
     throws IOException
     {
         if (__dataConnectionMode != ACTIVE_LOCAL_DATA_CONNECTION_MODE &&
@@ -825,7 +825,7 @@ implements Configurable
         {
             // if no activePortRange was set (correctly) -> getActivePort() = 0
             // -> new ServerSocket(0) -> bind to any free local port
-            ServerSocket server = _serverSocketFactory_.createServerSocket(getActivePort(), 1, getHostAddress());
+            final ServerSocket server = _serverSocketFactory_.createServerSocket(getActivePort(), 1, getHostAddress());
 
             try {
                 // Try EPRT only if remote server is over IPv6, if not use PORT,
@@ -886,7 +886,7 @@ implements Configurable
             // and the client is coming from another internal network.
             // In that case the data connection after PASV command would fail,
             // while EPSV would make the client succeed by taking just the port.
-            boolean attemptEPSV = isUseEPSVwithIPv4() || isInet6Address;
+            final boolean attemptEPSV = isUseEPSVwithIPv4() || isInet6Address;
             if (attemptEPSV && epsv() == FTPReply.ENTERING_EPSV_MODE)
             {
                 _parseExtendedPassiveModeReply(_replyLines.get(0));
@@ -939,7 +939,7 @@ implements Configurable
         if (__remoteVerificationEnabled && !verifyRemote(socket))
         {
             // Grab the host before we close the socket to avoid NET-663
-            InetAddress socketHost = socket.getInetAddress();
+            final InetAddress socketHost = socket.getInetAddress();
 
             socket.close();
 
@@ -965,7 +965,7 @@ implements Configurable
      * @since 3.4
      */
     @Override
-    protected void _connectAction_(Reader socketIsReader) throws IOException
+    protected void _connectAction_(final Reader socketIsReader) throws IOException
     {
         super._connectAction_(socketIsReader); // sets up _input_ and _output_
         __initDefaults();
@@ -973,8 +973,8 @@ implements Configurable
         // Exception claiming we're not connected
         if ( __autodetectEncoding )
         {
-            ArrayList<String> oldReplyLines = new ArrayList<> (_replyLines);
-            int oldReplyCode = _replyCode;
+            final ArrayList<String> oldReplyLines = new ArrayList<> (_replyLines);
+            final int oldReplyCode = _replyCode;
             if ( hasFeature("UTF8") || hasFeature("UTF-8")) // UTF8 appears to be the default
             {
                  setControlEncoding("UTF-8");
@@ -1002,7 +1002,7 @@ implements Configurable
      * @param  timeout The default timeout in milliseconds that is used when
      *        opening a data connection socket. The value 0 means an infinite timeout.
      */
-    public void setDataTimeout(int timeout)
+    public void setDataTimeout(final int timeout)
     {
         __dataTimeout = timeout;
     }
@@ -1016,7 +1016,7 @@ implements Configurable
      * @see org.apache.commons.net.ftp.parser.FTPFileEntryParserFactory
      * @see org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory
      */
-    public void setParserFactory(FTPFileEntryParserFactory parserFactory) {
+    public void setParserFactory(final FTPFileEntryParserFactory parserFactory) {
         __parserFactory = parserFactory;
     }
 
@@ -1044,7 +1044,7 @@ implements Configurable
      *
      * @param enable True to enable verification, false to disable verification.
      */
-    public void setRemoteVerificationEnabled(boolean enable)
+    public void setRemoteVerificationEnabled(final boolean enable)
     {
         __remoteVerificationEnabled = enable;
     }
@@ -1075,7 +1075,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean login(String username, String password) throws IOException
+    public boolean login(final String username, final String password) throws IOException
     {
 
         user(username);
@@ -1111,7 +1111,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean login(String username, String password, String account)
+    public boolean login(final String username, final String password, final String account)
     throws IOException
     {
         user(username);
@@ -1170,7 +1170,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean changeWorkingDirectory(String pathname) throws IOException
+    public boolean changeWorkingDirectory(final String pathname) throws IOException
     {
         return FTPReply.isPositiveCompletion(cwd(pathname));
     }
@@ -1207,7 +1207,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean structureMount(String pathname) throws IOException
+    public boolean structureMount(final String pathname) throws IOException
     {
         return FTPReply.isPositiveCompletion(smnt(pathname));
     }
@@ -1310,7 +1310,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean enterRemoteActiveMode(InetAddress host, int port)
+    public boolean enterRemoteActiveMode(final InetAddress host, final int port)
     throws IOException
     {
         if (FTPReply.isPositiveCompletion(port(host, port)))
@@ -1468,7 +1468,7 @@ implements Configurable
      * @param maxPort The highest available port (inclusive).
      * @since 2.2
      */
-    public void setActivePortRange(int minPort, int maxPort)
+    public void setActivePortRange(final int minPort, final int maxPort)
     {
         this.__activeMinPort = minPort;
         this.__activeMaxPort = maxPort;
@@ -1482,7 +1482,7 @@ implements Configurable
      * @throws UnknownHostException if the ipAddress cannot be resolved
      * @since 2.2
      */
-    public void setActiveExternalIPAddress(String ipAddress) throws UnknownHostException
+    public void setActiveExternalIPAddress(final String ipAddress) throws UnknownHostException
     {
         this.__activeExternalHost = InetAddress.getByName(ipAddress);
     }
@@ -1494,7 +1494,7 @@ implements Configurable
      * @param ipAddress The local IP address of this machine.
      * @throws UnknownHostException if the ipAddress cannot be resolved
      */
-    public void setPassiveLocalIPAddress(String ipAddress) throws UnknownHostException
+    public void setPassiveLocalIPAddress(final String ipAddress) throws UnknownHostException
     {
         this.__passiveLocalHost = InetAddress.getByName(ipAddress);
     }
@@ -1505,7 +1505,7 @@ implements Configurable
      *
      * @param inetAddress The local IP address of this machine.
      */
-    public void setPassiveLocalIPAddress(InetAddress inetAddress)
+    public void setPassiveLocalIPAddress(final InetAddress inetAddress)
     {
         this.__passiveLocalHost = inetAddress;
     }
@@ -1530,7 +1530,7 @@ implements Configurable
      * @since 3.1
      * @see #getReportHostAddress()
      */
-    public void setReportActiveExternalIPAddress(String ipAddress) throws UnknownHostException
+    public void setReportActiveExternalIPAddress(final String ipAddress) throws UnknownHostException
     {
         this.__reportActiveExternalHost = InetAddress.getByName(ipAddress);
     }
@@ -1562,7 +1562,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean setFileType(int fileType) throws IOException
+    public boolean setFileType(final int fileType) throws IOException
     {
         if (FTPReply.isPositiveCompletion(type(fileType)))
         {
@@ -1610,7 +1610,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean setFileType(int fileType, int formatOrByteSize)
+    public boolean setFileType(final int fileType, final int formatOrByteSize)
     throws IOException
     {
         if (FTPReply.isPositiveCompletion(type(fileType, formatOrByteSize)))
@@ -1639,7 +1639,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean setFileStructure(int structure) throws IOException
+    public boolean setFileStructure(final int structure) throws IOException
     {
         if (FTPReply.isPositiveCompletion(stru(structure)))
         {
@@ -1666,7 +1666,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean setFileTransferMode(int mode) throws IOException
+    public boolean setFileTransferMode(final int mode) throws IOException
     {
         if (FTPReply.isPositiveCompletion(mode(mode)))
         {
@@ -1692,7 +1692,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean remoteRetrieve(String fileName) throws IOException
+    public boolean remoteRetrieve(final String fileName) throws IOException
     {
         if (__dataConnectionMode == ACTIVE_REMOTE_DATA_CONNECTION_MODE ||
                 __dataConnectionMode == PASSIVE_REMOTE_DATA_CONNECTION_MODE) {
@@ -1719,7 +1719,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean remoteStore(String fileName) throws IOException
+    public boolean remoteStore(final String fileName) throws IOException
     {
         if (__dataConnectionMode == ACTIVE_REMOTE_DATA_CONNECTION_MODE ||
                 __dataConnectionMode == PASSIVE_REMOTE_DATA_CONNECTION_MODE) {
@@ -1747,7 +1747,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean remoteStoreUnique(String fileName) throws IOException
+    public boolean remoteStoreUnique(final String fileName) throws IOException
     {
         if (__dataConnectionMode == ACTIVE_REMOTE_DATA_CONNECTION_MODE ||
                 __dataConnectionMode == PASSIVE_REMOTE_DATA_CONNECTION_MODE) {
@@ -1803,7 +1803,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean remoteAppend(String fileName) throws IOException
+    public boolean remoteAppend(final String fileName) throws IOException
     {
         if (__dataConnectionMode == ACTIVE_REMOTE_DATA_CONNECTION_MODE ||
                 __dataConnectionMode == PASSIVE_REMOTE_DATA_CONNECTION_MODE) {
@@ -1887,7 +1887,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean retrieveFile(String remote, OutputStream local)
+    public boolean retrieveFile(final String remote, final OutputStream local)
     throws IOException
     {
         return _retrieveFile(FTPCmd.RETR.getCommand(), remote, local);
@@ -1901,10 +1901,10 @@ implements Configurable
      * @throws IOException on error
      * @since 3.1
      */
-    protected boolean _retrieveFile(String command, String remote, OutputStream local)
+    protected boolean _retrieveFile(final String command, final String remote, final OutputStream local)
     throws IOException
     {
-        Socket socket = _openDataConnection_(command, remote);
+        final Socket socket = _openDataConnection_(command, remote);
 
         if (socket == null) {
             return false;
@@ -1969,7 +1969,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public InputStream retrieveFileStream(String remote) throws IOException
+    public InputStream retrieveFileStream(final String remote) throws IOException
     {
         return _retrieveFileStream(FTPCmd.RETR.getCommand(), remote);
     }
@@ -1981,10 +1981,10 @@ implements Configurable
      * @throws IOException on error
      * @since 3.1
      */
-    protected InputStream _retrieveFileStream(String command, String remote)
+    protected InputStream _retrieveFileStream(final String command, final String remote)
     throws IOException
     {
-        Socket socket = _openDataConnection_(command, remote);
+        final Socket socket = _openDataConnection_(command, remote);
 
         if (socket == null) {
             return null;
@@ -2031,7 +2031,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean storeFile(String remote, InputStream local)
+    public boolean storeFile(final String remote, final InputStream local)
     throws IOException
     {
         return __storeFile(FTPCmd.STOR, remote, local);
@@ -2066,7 +2066,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public OutputStream storeFileStream(String remote) throws IOException
+    public OutputStream storeFileStream(final String remote) throws IOException
     {
         return __storeFileStream(FTPCmd.STOR, remote);
     }
@@ -2096,7 +2096,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean appendFile(String remote, InputStream local)
+    public boolean appendFile(final String remote, final InputStream local)
     throws IOException
     {
         return __storeFile(FTPCmd.APPE, remote, local);
@@ -2130,7 +2130,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public OutputStream appendFileStream(String remote) throws IOException
+    public OutputStream appendFileStream(final String remote) throws IOException
     {
         return __storeFileStream(FTPCmd.APPE, remote);
     }
@@ -2161,7 +2161,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean storeUniqueFile(String remote, InputStream local)
+    public boolean storeUniqueFile(final String remote, final InputStream local)
     throws IOException
     {
         return __storeFile(FTPCmd.STOU, remote, local);
@@ -2198,7 +2198,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public OutputStream storeUniqueFileStream(String remote) throws IOException
+    public OutputStream storeUniqueFileStream(final String remote) throws IOException
     {
         return __storeFileStream(FTPCmd.STOU, remote);
     }
@@ -2227,7 +2227,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean storeUniqueFile(InputStream local) throws IOException
+    public boolean storeUniqueFile(final InputStream local) throws IOException
     {
         return __storeFile(FTPCmd.STOU, null, local);
     }
@@ -2278,7 +2278,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean allocate(int bytes) throws IOException
+    public boolean allocate(final int bytes) throws IOException
     {
         return FTPReply.isPositiveCompletion(allo(bytes));
     }
@@ -2296,7 +2296,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean allocate(long bytes) throws IOException
+    public boolean allocate(final long bytes) throws IOException
     {
         return FTPReply.isPositiveCompletion(allo(bytes));
     }
@@ -2333,11 +2333,11 @@ implements Configurable
      * @throws IOException on error
      * @since 3.0
      */
-    public String[] featureValues(String feature) throws IOException {
+    public String[] featureValues(final String feature) throws IOException {
         if (!initFeatureMap()) {
             return null;
         }
-        Set<String> entries = __featuresMap.get(feature.toUpperCase(Locale.ENGLISH));
+        final Set<String> entries = __featuresMap.get(feature.toUpperCase(Locale.ENGLISH));
         if (entries != null) {
             return entries.toArray(new String[entries.size()]);
         }
@@ -2356,8 +2356,8 @@ implements Configurable
      * @throws IOException on error
      * @since 3.0
      */
-    public String featureValue(String feature) throws IOException {
-        String [] values = featureValues(feature);
+    public String featureValue(final String feature) throws IOException {
+        final String [] values = featureValues(feature);
         if (values != null) {
             return values[0];
         }
@@ -2376,7 +2376,7 @@ implements Configurable
      * @throws IOException on error
      * @since 3.0
      */
-    public boolean hasFeature(String feature) throws IOException {
+    public boolean hasFeature(final String feature) throws IOException {
         if (!initFeatureMap()) {
             return false;
         }
@@ -2398,11 +2398,11 @@ implements Configurable
      * @throws IOException on error
      * @since 3.0
      */
-    public boolean hasFeature(String feature, String value) throws IOException {
+    public boolean hasFeature(final String feature, final String value) throws IOException {
         if (!initFeatureMap()) {
             return false;
         }
-        Set<String> entries = __featuresMap.get(feature.toUpperCase(Locale.ENGLISH));
+        final Set<String> entries = __featuresMap.get(feature.toUpperCase(Locale.ENGLISH));
         if (entries != null) {
             return entries.contains(value);
         }
@@ -2419,17 +2419,17 @@ implements Configurable
             if (replyCode == FTPReply.NOT_LOGGED_IN) { // 503
                 return false; // NET-518; don't create empy map
             }
-            boolean success = FTPReply.isPositiveCompletion(replyCode);
+            final boolean success = FTPReply.isPositiveCompletion(replyCode);
             // we init the map here, so we don't keep trying if we know the command will fail
             __featuresMap = new HashMap<>();
             if (!success) {
                 return false;
             }
-            for (String l : getReplyStrings()) {
+            for (final String l : getReplyStrings()) {
                 if (l.startsWith(" ")) { // it's a FEAT entry
                     String key;
                     String value="";
-                    int varsep = l.indexOf(' ', 1);
+                    final int varsep = l.indexOf(' ', 1);
                     if (varsep > 0) {
                         key = l.substring(1, varsep);
                         value = l.substring(varsep+1);
@@ -2463,7 +2463,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean allocate(int bytes, int recordSize) throws IOException
+    public boolean allocate(final int bytes, final int recordSize) throws IOException
     {
         return FTPReply.isPositiveCompletion(allo(bytes, recordSize));
     }
@@ -2482,7 +2482,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean allocate(long bytes, int recordSize) throws IOException
+    public boolean allocate(final long bytes, final int recordSize) throws IOException
     {
         return FTPReply.isPositiveCompletion(allo(bytes, recordSize));
     }
@@ -2504,7 +2504,7 @@ implements Configurable
      *      command to the server or receiving a reply from the server.
      * @since 3.0
      */
-    public boolean doCommand(String command, String params) throws IOException
+    public boolean doCommand(final String command, final String params) throws IOException
     {
         return FTPReply.isPositiveCompletion(sendCommand(command, params));
     }
@@ -2525,9 +2525,9 @@ implements Configurable
      *      command to the server or receiving a reply from the server.
      * @since 3.0
      */
-    public String[] doCommandAsStrings(String command, String params) throws IOException
+    public String[] doCommandAsStrings(final String command, final String params) throws IOException
     {
-        boolean success = FTPReply.isPositiveCompletion(sendCommand(command, params));
+        final boolean success = FTPReply.isPositiveCompletion(sendCommand(command, params));
         if (success){
             return getReplyStrings();
         } else {
@@ -2543,9 +2543,9 @@ implements Configurable
      * @throws IOException on error
      * @since 3.0
      */
-    public FTPFile mlistFile(String pathname) throws IOException
+    public FTPFile mlistFile(final String pathname) throws IOException
     {
-        boolean success = FTPReply.isPositiveCompletion(sendCommand(FTPCmd.MLST, pathname));
+        final boolean success = FTPReply.isPositiveCompletion(sendCommand(FTPCmd.MLST, pathname));
         if (success){
             String reply = getReplyStrings()[1];
             // some FTP server reply not contains space before fact(s)
@@ -2558,7 +2558,7 @@ implements Configurable
                 throw new MalformedServerReplyException("Invalid server reply (MLST): '" + reply + "'");
             }
             // some FTP server reply contains more than one space before fact(s)
-            String entry = reply.replaceAll("^\\s+", ""); // skip leading space for parser
+            final String entry = reply.replaceAll("^\\s+", ""); // skip leading space for parser
             return MLSxEntryParser.parseEntry(entry);
         } else {
             return null;
@@ -2585,9 +2585,9 @@ implements Configurable
      * @throws IOException on error
      * @since 3.0
      */
-    public FTPFile[] mlistDir(String pathname) throws IOException
+    public FTPFile[] mlistDir(final String pathname) throws IOException
     {
-        FTPListParseEngine engine = initiateMListParsing( pathname);
+        final FTPListParseEngine engine = initiateMListParsing( pathname);
         return engine.getFiles();
     }
 
@@ -2600,9 +2600,9 @@ implements Configurable
      * @throws IOException on error
      * @since 3.0
      */
-    public FTPFile[] mlistDir(String pathname, FTPFileFilter filter) throws IOException
+    public FTPFile[] mlistDir(final String pathname, final FTPFileFilter filter) throws IOException
     {
-        FTPListParseEngine engine = initiateMListParsing( pathname);
+        final FTPListParseEngine engine = initiateMListParsing( pathname);
         return engine.getFiles(filter);
     }
 
@@ -2625,7 +2625,7 @@ implements Configurable
      *      command to the server or receiving a reply from the server.
      * @since 3.1 (changed from private to protected)
      */
-    protected boolean restart(long offset) throws IOException
+    protected boolean restart(final long offset) throws IOException
     {
         __restartOffset = 0;
         return FTPReply.isPositiveIntermediate(rest(Long.toString(offset)));
@@ -2647,7 +2647,7 @@ implements Configurable
      *           next file transfer.  This must be a value greater than or
      *           equal to zero.
      */
-    public void setRestartOffset(long offset)
+    public void setRestartOffset(final long offset)
     {
         if (offset >= 0) {
             __restartOffset = offset;
@@ -2681,7 +2681,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean rename(String from, String to) throws IOException
+    public boolean rename(final String from, final String to) throws IOException
     {
         if (!FTPReply.isPositiveIntermediate(rnfr(from))) {
             return false;
@@ -2721,7 +2721,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean deleteFile(String pathname) throws IOException
+    public boolean deleteFile(final String pathname) throws IOException
     {
         return FTPReply.isPositiveCompletion(dele(pathname));
     }
@@ -2740,7 +2740,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean removeDirectory(String pathname) throws IOException
+    public boolean removeDirectory(final String pathname) throws IOException
     {
         return FTPReply.isPositiveCompletion(rmd(pathname));
     }
@@ -2761,7 +2761,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean makeDirectory(String pathname) throws IOException
+    public boolean makeDirectory(final String pathname) throws IOException
     {
         return FTPReply.isPositiveCompletion(mkd(pathname));
     }
@@ -2802,7 +2802,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public boolean sendSiteCommand(String arguments) throws IOException
+    public boolean sendSiteCommand(final String arguments) throws IOException
     {
         return FTPReply.isPositiveCompletion(site(arguments));
     }
@@ -2841,7 +2841,7 @@ implements Configurable
                 __systemName = _replyLines.get(_replyLines.size() - 1).substring(4);
             } else {
                 // Check if the user has provided a default for when the SYST command fails
-                String systDefault = System.getProperty(FTP_SYSTEM_TYPE_DEFAULT);
+                final String systDefault = System.getProperty(FTP_SYSTEM_TYPE_DEFAULT);
                 if (systDefault != null) {
                     __systemName = systDefault;
                 } else {
@@ -2890,7 +2890,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *  command to the server or receiving a reply from the server.
      */
-    public String listHelp(String command) throws IOException
+    public String listHelp(final String command) throws IOException
     {
         if (FTPReply.isPositiveCompletion(help(command))) {
             return getReplyString();
@@ -2947,18 +2947,18 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public String[] listNames(String pathname) throws IOException
+    public String[] listNames(final String pathname) throws IOException
     {
-        Socket socket = _openDataConnection_(FTPCmd.NLST, getListArguments(pathname));
+        final Socket socket = _openDataConnection_(FTPCmd.NLST, getListArguments(pathname));
 
         if (socket == null) {
             return null;
         }
 
-        BufferedReader reader =
+        final BufferedReader reader =
             new BufferedReader(new InputStreamReader(socket.getInputStream(), getControlEncoding()));
 
-        ArrayList<String> results = new ArrayList<>();
+        final ArrayList<String> results = new ArrayList<>();
         String line;
         while ((line = reader.readLine()) != null) {
             results.add(line);
@@ -2969,7 +2969,7 @@ implements Configurable
 
         if (completePendingCommand())
         {
-            String[] names = new String[ results.size() ];
+            final String[] names = new String[ results.size() ];
             return results.toArray(names);
         }
 
@@ -3057,10 +3057,10 @@ implements Configurable
      * @see org.apache.commons.net.ftp.parser.FTPFileEntryParserFactory
      * @see org.apache.commons.net.ftp.FTPFileEntryParser
      */
-    public FTPFile[] listFiles(String pathname)
+    public FTPFile[] listFiles(final String pathname)
     throws IOException
     {
-        FTPListParseEngine engine = initiateListParsing((String) null, pathname);
+        final FTPListParseEngine engine = initiateListParsing((String) null, pathname);
         return engine.getFiles();
 
     }
@@ -3125,10 +3125,10 @@ implements Configurable
      * @throws IOException on error
      * @since 2.2
      */
-    public FTPFile[] listFiles(String pathname, FTPFileFilter filter)
+    public FTPFile[] listFiles(final String pathname, final FTPFileFilter filter)
     throws IOException
     {
-        FTPListParseEngine engine = initiateListParsing((String) null, pathname);
+        final FTPListParseEngine engine = initiateListParsing((String) null, pathname);
         return engine.getFiles(filter);
 
     }
@@ -3224,7 +3224,7 @@ implements Configurable
      * @see org.apache.commons.net.ftp.FTPFileEntryParser
      * @since 3.0
      */
-    public FTPFile[] listDirectories(String parent) throws IOException {
+    public FTPFile[] listDirectories(final String parent) throws IOException {
         return listFiles(parent, FTPFileFilters.DIRECTORIES);
     }
 
@@ -3317,7 +3317,7 @@ implements Configurable
      *                   resolve the type of system we are connected with.
      * @see FTPListParseEngine
      */
-    public FTPListParseEngine initiateListParsing(String pathname)
+    public FTPListParseEngine initiateListParsing(final String pathname)
     throws IOException
     {
         return initiateListParsing((String) null, pathname);
@@ -3379,7 +3379,7 @@ implements Configurable
      * @see FTPListParseEngine
      */
     public FTPListParseEngine initiateListParsing(
-            String parserKey, String pathname)
+            final String parserKey, final String pathname)
     throws IOException
     {
         __createParser(parserKey); // create and cache parser
@@ -3387,7 +3387,7 @@ implements Configurable
     }
 
     // package access for test purposes
-    void __createParser(String parserKey) throws IOException {
+    void __createParser(final String parserKey) throws IOException {
         // We cache the value to avoid creation of a new object every
         // time a file listing is generated.
         // Note: we don't check against a null parserKey (NET-544)
@@ -3414,9 +3414,9 @@ implements Configurable
                     String systemType = System.getProperty(FTP_SYSTEM_TYPE);
                     if (systemType == null) {
                         systemType = getSystemType(); // cannot be null
-                        Properties override = getOverrideProperties();
+                        final Properties override = getOverrideProperties();
                         if (override != null) {
-                            String newType = override.getProperty(systemType);
+                            final String newType = override.getProperty(systemType);
                             if (newType != null) {
                                 systemType = newType;
                             }
@@ -3450,12 +3450,12 @@ implements Configurable
      * @see FTPListParseEngine
      */
     private FTPListParseEngine initiateListParsing(
-            FTPFileEntryParser parser, String pathname)
+            final FTPFileEntryParser parser, final String pathname)
     throws IOException
     {
-        Socket socket = _openDataConnection_(FTPCmd.LIST, getListArguments(pathname));
+        final Socket socket = _openDataConnection_(FTPCmd.LIST, getListArguments(pathname));
 
-        FTPListParseEngine engine = new FTPListParseEngine(parser, __configuration);
+        final FTPListParseEngine engine = new FTPListParseEngine(parser, __configuration);
         if (socket == null)
         {
             return engine;
@@ -3490,10 +3490,10 @@ implements Configurable
      * @return the engine.
      * @throws IOException on error
      */
-    public FTPListParseEngine initiateMListParsing(String pathname) throws IOException
+    public FTPListParseEngine initiateMListParsing(final String pathname) throws IOException
     {
-        Socket socket = _openDataConnection_(FTPCmd.MLSD, pathname);
-        FTPListParseEngine engine = new FTPListParseEngine(MLSxEntryParser.getInstance(), __configuration);
+        final Socket socket = _openDataConnection_(FTPCmd.MLSD, pathname);
+        final FTPListParseEngine engine = new FTPListParseEngine(MLSxEntryParser.getInstance(), __configuration);
         if (socket == null)
         {
             return engine;
@@ -3514,12 +3514,12 @@ implements Configurable
      * @return the adjusted string with "-a" added if necessary
      * @since 2.0
      */
-    protected String getListArguments(String pathname) {
+    protected String getListArguments(final String pathname) {
         if (getListHiddenFiles())
         {
             if (pathname != null)
             {
-                StringBuilder sb = new StringBuilder(pathname.length() + 3);
+                final StringBuilder sb = new StringBuilder(pathname.length() + 3);
                 sb.append("-a ");
                 sb.append(pathname);
                 return sb.toString();
@@ -3569,7 +3569,7 @@ implements Configurable
      * @throws IOException  If an I/O error occurs while either sending a
      *      command to the server or receiving a reply from the server.
      */
-    public String getStatus(String pathname) throws IOException
+    public String getStatus(final String pathname) throws IOException
     {
         if (FTPReply.isPositiveCompletion(stat(pathname))) {
             return getReplyString();
@@ -3594,7 +3594,7 @@ implements Configurable
      *      command to the server or receiving a reply from the server.
      * @since 3.7
      */
-    public String getSize(String pathname) throws IOException
+    public String getSize(final String pathname) throws IOException
     {
         if (FTPReply.isPositiveCompletion(size(pathname))) {
             return getReplyStrings()[0].substring(4); // skip the return code (e.g. 213) and the space
@@ -3614,7 +3614,7 @@ implements Configurable
      * @throws IOException if an I/O error occurs.
      * @since 2.0
      */
-    public String getModificationTime(String pathname) throws IOException {
+    public String getModificationTime(final String pathname) throws IOException {
         if (FTPReply.isPositiveCompletion(mdtm(pathname))) {
             return getReplyStrings()[0].substring(4); // skip the return code (e.g. 213) and the space
         }
@@ -3634,10 +3634,10 @@ implements Configurable
      * @throws IOException if an I/O error occurs.
      * @since 3.4
      */
-    public FTPFile mdtmFile(String pathname) throws IOException {
+    public FTPFile mdtmFile(final String pathname) throws IOException {
         if (FTPReply.isPositiveCompletion(mdtm(pathname))) {
-            String reply = getReplyStrings()[0].substring(4); // skip the return code (e.g. 213) and the space
-            FTPFile file = new FTPFile();
+            final String reply = getReplyStrings()[0].substring(4); // skip the return code (e.g. 213) and the space
+            final FTPFile file = new FTPFile();
             file.setName(pathname);
             file.setRawListing(reply);
             file.setTimestamp(MLSxEntryParser.parseGMTdateTime(reply));
@@ -3664,7 +3664,7 @@ implements Configurable
      * @since 2.2
      * @see <a href="http://tools.ietf.org/html/draft-somers-ftp-mfxx-04">http://tools.ietf.org/html/draft-somers-ftp-mfxx-04</a>
      */
-    public boolean setModificationTime(String pathname, String timeval) throws IOException {
+    public boolean setModificationTime(final String pathname, final String timeval) throws IOException {
         return (FTPReply.isPositiveCompletion(mfmt(pathname, timeval)));
     }
 
@@ -3674,7 +3674,7 @@ implements Configurable
      *
      * @param bufSize The size of the buffer. Use a non-positive value to use the default.
      */
-    public void setBufferSize(int bufSize) {
+    public void setBufferSize(final int bufSize) {
         __bufferSize = bufSize;
     }
 
@@ -3693,7 +3693,7 @@ implements Configurable
      * @param bufSize The size of the buffer, zero or negative means the value is ignored.
       * @since 3.3
     */
-    public void setSendDataSocketBufferSize(int bufSize) {
+    public void setSendDataSocketBufferSize(final int bufSize) {
         __sendDataSocketBufferSize = bufSize;
     }
 
@@ -3713,7 +3713,7 @@ implements Configurable
      * @param bufSize The size of the buffer, zero or negative means the value is ignored.
      * @since 3.3
      */
-    public void setReceieveDataSocketBufferSize(int bufSize) {
+    public void setReceieveDataSocketBufferSize(final int bufSize) {
         __receiveDataSocketBufferSize = bufSize;
     }
 
@@ -3735,7 +3735,7 @@ implements Configurable
      * @since 1.4
      */
     @Override
-    public void configure(FTPClientConfig config) {
+    public void configure(final FTPClientConfig config) {
         this.__configuration = config;
     }
 
@@ -3748,7 +3748,7 @@ implements Configurable
      * @param listHiddenFiles true if hidden files should be listed
      * @since 2.0
      */
-    public void setListHiddenFiles(boolean listHiddenFiles) {
+    public void setListHiddenFiles(final boolean listHiddenFiles) {
         this.__listHiddenFiles = listHiddenFiles;
     }
 
@@ -3786,7 +3786,7 @@ implements Configurable
      * @param selected value to set.
      * @since 2.2
      */
-    public void setUseEPSVwithIPv4(boolean selected) {
+    public void setUseEPSVwithIPv4(final boolean selected) {
         this.__useEPSVwithIPv4 = selected;
     }
 
@@ -3797,7 +3797,7 @@ implements Configurable
      * @param listener to be used, may be {@code null} to disable
      * @since 3.0
      */
-    public void setCopyStreamListener(CopyStreamListener listener){
+    public void setCopyStreamListener(final CopyStreamListener listener){
         __copyStreamListener = listener;
     }
 
@@ -3821,7 +3821,7 @@ implements Configurable
      * @since 3.0
      * @see #setControlKeepAliveReplyTimeout(int)
      */
-    public void setControlKeepAliveTimeout(long controlIdle){
+    public void setControlKeepAliveTimeout(final long controlIdle){
         __controlKeepAliveTimeout = controlIdle * 1000;
     }
 
@@ -3864,7 +3864,7 @@ implements Configurable
      * @since 3.0
      * @see #setControlKeepAliveTimeout(long)
      */
-    public void setControlKeepAliveReplyTimeout(int timeout) {
+    public void setControlKeepAliveReplyTimeout(final int timeout) {
         __controlKeepAliveReplyTimeout = timeout;
     }
 
@@ -3891,7 +3891,7 @@ implements Configurable
      * @deprecated (3.6) use {@link #setPassiveNatWorkaroundStrategy(HostnameResolver)} instead
      */
     @Deprecated
-    public void setPassiveNatWorkaround(boolean enabled) {
+    public void setPassiveNatWorkaround(final boolean enabled) {
         if (enabled) {
             this.__passiveNatWorkaroundStrategy = new NatServerResolverImpl(this);
         } else {
@@ -3909,7 +3909,7 @@ implements Configurable
      * or null to disable the workaround (i.e. use PASV mode reply address.)
      * @since 3.6
      */
-    public void setPassiveNatWorkaroundStrategy(HostnameResolver resolver) {
+    public void setPassiveNatWorkaroundStrategy(final HostnameResolver resolver) {
         this.__passiveNatWorkaroundStrategy = resolver;
     }
 
@@ -3929,19 +3929,19 @@ implements Configurable
      * @since 3.6
      */
     public static class NatServerResolverImpl implements HostnameResolver {
-        private FTPClient client;
+        private final FTPClient client;
 
-        public NatServerResolverImpl(FTPClient client) {
+        public NatServerResolverImpl(final FTPClient client) {
             this.client = client;
         }
 
         @Override
-        public String resolve(String hostname) throws UnknownHostException {
+        public String resolve(final String hostname) throws UnknownHostException {
             String newHostname = hostname;
-            InetAddress host = InetAddress.getByName(newHostname);
+            final InetAddress host = InetAddress.getByName(newHostname);
             // reply is a local address, but target is not - assume NAT box changed the PASV reply
             if (host.isSiteLocalAddress()) {
-                InetAddress remote = this.client.getRemoteAddress();
+                final InetAddress remote = this.client.getRemoteAddress();
                 if (!remote.isSiteLocalAddress()){
                     newHostname = remote.getHostAddress();
                 }
@@ -3950,14 +3950,14 @@ implements Configurable
         }
     }
 
-    private OutputStream getBufferedOutputStream(OutputStream outputStream) {
+    private OutputStream getBufferedOutputStream(final OutputStream outputStream) {
         if (__bufferSize > 0) {
             return new BufferedOutputStream(outputStream, __bufferSize);
         }
         return new BufferedOutputStream(outputStream);
     }
 
-    private InputStream getBufferedInputStream(InputStream inputStream) {
+    private InputStream getBufferedInputStream(final InputStream inputStream) {
         if (__bufferSize > 0) {
             return new BufferedInputStream(inputStream, __bufferSize);
         }
@@ -3976,7 +3976,7 @@ implements Configurable
         private int acksAcked;
         private int ioErrors;
 
-        CSL(FTPClient parent, long idleTime, int maxWait) throws SocketException {
+        CSL(final FTPClient parent, final long idleTime, final int maxWait) throws SocketException {
             this.idle = idleTime;
             this.parent = parent;
             this.currentSoTimeout = parent.getSoTimeout();
@@ -3984,21 +3984,21 @@ implements Configurable
         }
 
         @Override
-        public void bytesTransferred(CopyStreamEvent event) {
+        public void bytesTransferred(final CopyStreamEvent event) {
             bytesTransferred(event.getTotalBytesTransferred(), event.getBytesTransferred(), event.getStreamSize());
         }
 
         @Override
-        public void bytesTransferred(long totalBytesTransferred,
-                int bytesTransferred, long streamSize) {
-            long now = System.currentTimeMillis();
+        public void bytesTransferred(final long totalBytesTransferred,
+                final int bytesTransferred, final long streamSize) {
+            final long now = System.currentTimeMillis();
             if (now - time > idle) {
                 try {
                     parent.__noop();
                     acksAcked++;
-                } catch (SocketTimeoutException e) {
+                } catch (final SocketTimeoutException e) {
                     notAcked++;
-                } catch (IOException e) {
+                } catch (final IOException e) {
                     ioErrors++;
                     // Ignored
                 }
@@ -4007,13 +4007,13 @@ implements Configurable
         }
 
         int[] cleanUp() throws IOException {
-            int remain = notAcked;
+            final int remain = notAcked;
             try {
                 while(notAcked > 0) {
                     parent.getReply(); // we do want to see these
                     notAcked--; // only decrement if actually received
                 }
-            } catch (SocketTimeoutException e) { // NET-584
+            } catch (final SocketTimeoutException e) { // NET-584
                 // ignored
             } finally {
                 parent.setSoTimeout(currentSoTimeout);
@@ -4030,7 +4030,7 @@ implements Configurable
      * @return a merged listener or a single listener or null
      * @since 3.0
      */
-    private CopyStreamListener __mergeListeners(CopyStreamListener local) {
+    private CopyStreamListener __mergeListeners(final CopyStreamListener local) {
         if (local == null) {
             return __copyStreamListener;
         }
@@ -4038,7 +4038,7 @@ implements Configurable
             return local;
         }
         // Both are non-null
-        CopyStreamAdapter merged = new CopyStreamAdapter();
+        final CopyStreamAdapter merged = new CopyStreamAdapter();
         merged.addCopyStreamListener(local);
         merged.addCopyStreamListener(__copyStreamListener);
         return merged;
@@ -4051,7 +4051,7 @@ implements Configurable
      *
      * @param autodetect If true, automatic server encoding detection will be enabled.
      */
-    public void setAutodetectUTF8(boolean autodetect)
+    public void setAutodetectUTF8(final boolean autodetect)
     {
         __autodetectEncoding = autodetect;
     }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java b/src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java
index 10d56eb..b1b46fb 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java
@@ -237,7 +237,7 @@ public class FTPClientConfig
      * However this is not recommended for general use;
      * the correct system type should be set if it is known.
      */
-    public FTPClientConfig(String systemKey) {
+    public FTPClientConfig(final String systemKey) {
         this.serverSystemKey = systemKey;
     }
 
@@ -260,9 +260,9 @@ public class FTPClientConfig
      *  {@link  #setRecentDateFormatStr(String)  recentDateFormatStr}
      *  @since 3.6
      */
-    public FTPClientConfig(String systemKey,
-                           String defaultDateFormatStr,
-                           String recentDateFormatStr)
+    public FTPClientConfig(final String systemKey,
+                           final String defaultDateFormatStr,
+                           final String recentDateFormatStr)
     {
         this(systemKey);
         this.defaultDateFormatStr = defaultDateFormatStr;
@@ -285,12 +285,12 @@ public class FTPClientConfig
      * @param serverTimeZoneId See
      *  {@link  #setServerTimeZoneId(String)  serverTimeZoneId}
      */
-    public FTPClientConfig(String systemKey,
-                           String defaultDateFormatStr,
-                           String recentDateFormatStr,
-                           String serverLanguageCode,
-                           String shortMonthNames,
-                           String serverTimeZoneId)
+    public FTPClientConfig(final String systemKey,
+                           final String defaultDateFormatStr,
+                           final String recentDateFormatStr,
+                           final String serverLanguageCode,
+                           final String shortMonthNames,
+                           final String serverTimeZoneId)
     {
         this(systemKey);
         this.defaultDateFormatStr = defaultDateFormatStr;
@@ -320,14 +320,14 @@ public class FTPClientConfig
      * @param saveUnparseableEntries See
      * {@link  #setUnparseableEntries(boolean)  saveUnparseableEntries}
      */
-    public FTPClientConfig(String systemKey,
-                           String defaultDateFormatStr,
-                           String recentDateFormatStr,
-                           String serverLanguageCode,
-                           String shortMonthNames,
-                           String serverTimeZoneId,
-                           boolean lenientFutureDates,
-                           boolean saveUnparseableEntries)
+    public FTPClientConfig(final String systemKey,
+                           final String defaultDateFormatStr,
+                           final String recentDateFormatStr,
+                           final String serverLanguageCode,
+                           final String shortMonthNames,
+                           final String serverTimeZoneId,
+                           final boolean lenientFutureDates,
+                           final boolean saveUnparseableEntries)
     {
         this(systemKey);
         this.defaultDateFormatStr = defaultDateFormatStr;
@@ -340,7 +340,7 @@ public class FTPClientConfig
     }
 
     // Copy constructor, intended for use by FTPClient only
-    FTPClientConfig(String systemKey, FTPClientConfig config) {
+    FTPClientConfig(final String systemKey, final FTPClientConfig config) {
         this.serverSystemKey = systemKey;
         this.defaultDateFormatStr = config.defaultDateFormatStr;
         this.lenientFutureDates = config.lenientFutureDates;
@@ -356,7 +356,7 @@ public class FTPClientConfig
      * @param config source
      * @since 3.6
      */
-    public FTPClientConfig(FTPClientConfig config) {
+    public FTPClientConfig(final FTPClientConfig config) {
         this.serverSystemKey = config.serverSystemKey;
         this.defaultDateFormatStr = config.defaultDateFormatStr;
         this.lenientFutureDates = config.lenientFutureDates;
@@ -483,7 +483,7 @@ public class FTPClientConfig
      * </p>
      * @param defaultDateFormatStr The defaultDateFormatStr to set.
      */
-    public void setDefaultDateFormatStr(String defaultDateFormatStr) {
+    public void setDefaultDateFormatStr(final String defaultDateFormatStr) {
         this.defaultDateFormatStr = defaultDateFormatStr;
     }
 
@@ -504,7 +504,7 @@ public class FTPClientConfig
      * </p>
      * @param recentDateFormatStr The recentDateFormatStr to set.
      */
-    public void setRecentDateFormatStr(String recentDateFormatStr) {
+    public void setRecentDateFormatStr(final String recentDateFormatStr) {
         this.recentDateFormatStr = recentDateFormatStr;
     }
 
@@ -528,7 +528,7 @@ public class FTPClientConfig
      * @param lenientFutureDates set true to compensate for out-of-synch
      * conditions.
      */
-    public void setLenientFutureDates(boolean lenientFutureDates) {
+    public void setLenientFutureDates(final boolean lenientFutureDates) {
         this.lenientFutureDates = lenientFutureDates;
     }
     /**
@@ -545,7 +545,7 @@ public class FTPClientConfig
      * </p>
      * @param serverTimeZoneId The serverTimeZoneId to set.
      */
-    public void setServerTimeZoneId(String serverTimeZoneId) {
+    public void setServerTimeZoneId(final String serverTimeZoneId) {
         this.serverTimeZoneId = serverTimeZoneId;
     }
 
@@ -566,7 +566,7 @@ public class FTPClientConfig
      * </p>
      * @param shortMonthNames The value to set to the shortMonthNames property.
      */
-    public void setShortMonthNames(String shortMonthNames) {
+    public void setShortMonthNames(final String shortMonthNames) {
         this.shortMonthNames = shortMonthNames;
     }
 
@@ -610,7 +610,7 @@ public class FTPClientConfig
      * </p>
      * @param serverLanguageCode The value to set to the serverLanguageCode property.
      */
-    public void setServerLanguageCode(String serverLanguageCode) {
+    public void setServerLanguageCode(final String serverLanguageCode) {
         this.serverLanguageCode = serverLanguageCode;
     }
 
@@ -626,9 +626,9 @@ public class FTPClientConfig
      * <code>Locale.US</code> if there is no corresponding entry in the internal
      * table.
      */
-    public static DateFormatSymbols lookupDateFormatSymbols(String languageCode)
+    public static DateFormatSymbols lookupDateFormatSymbols(final String languageCode)
     {
-        Object lang = LANGUAGE_CODE_MAP.get(languageCode);
+        final Object lang = LANGUAGE_CODE_MAP.get(languageCode);
         if (lang != null) {
             if (lang instanceof Locale) {
                 return new DateFormatSymbols((Locale) lang);
@@ -647,22 +647,22 @@ public class FTPClientConfig
      * @return a DateFormatSymbols object configured with short month names
      * as in the supplied string
      */
-    public static DateFormatSymbols getDateFormatSymbols(String shortmonths)
+    public static DateFormatSymbols getDateFormatSymbols(final String shortmonths)
     {
-        String[] months = splitShortMonthString(shortmonths);
-        DateFormatSymbols dfs = new DateFormatSymbols(Locale.US);
+        final String[] months = splitShortMonthString(shortmonths);
+        final DateFormatSymbols dfs = new DateFormatSymbols(Locale.US);
         dfs.setShortMonths(months);
         return dfs;
     }
 
-    private static String[] splitShortMonthString(String shortmonths) {
-        StringTokenizer st = new StringTokenizer(shortmonths, "|");
-        int monthcnt = st.countTokens();
+    private static String[] splitShortMonthString(final String shortmonths) {
+        final StringTokenizer st = new StringTokenizer(shortmonths, "|");
+        final int monthcnt = st.countTokens();
         if (12 != monthcnt) {
             throw new IllegalArgumentException(
                     "expecting a pipe-delimited string containing 12 tokens");
         }
-        String[] months = new String[13];
+        final String[] months = new String[13];
         int pos = 0;
         while(st.hasMoreTokens()) {
             months[pos++] = st.nextToken();
@@ -691,7 +691,7 @@ public class FTPClientConfig
      * @param saveUnparseable if true, then create FTPFile entries if parsing fails
      * @since 3.4
      */
-    public void setUnparseableEntries(boolean saveUnparseable) {
+    public void setUnparseableEntries(final boolean saveUnparseable) {
         this.saveUnparseableEntries = saveUnparseable;
     }
 
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPCommand.java b/src/main/java/org/apache/commons/net/ftp/FTPCommand.java
index c5739d8..757044a 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPCommand.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPCommand.java
@@ -149,7 +149,7 @@ public final class FTPCommand
 
     // default access needed for Unit test
     static void checkArray(){
-        int expectedLength = LAST+1;
+        final int expectedLength = LAST+1;
         if (_commands.length != expectedLength) {
             throw new RuntimeException("Incorrect _commands array. Should have length "
                     +expectedLength+" found "+_commands.length);
@@ -164,7 +164,7 @@ public final class FTPCommand
      * @return The FTP protcol command string corresponding to a specified
      *         command code.
      */
-    public static final String getCommand(int command)
+    public static final String getCommand(final int command)
     {
         return _commands[command];
     }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPConnectionClosedException.java b/src/main/java/org/apache/commons/net/ftp/FTPConnectionClosedException.java
index 079f088..e32a903 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPConnectionClosedException.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPConnectionClosedException.java
@@ -47,7 +47,7 @@ public class FTPConnectionClosedException extends IOException
      *
      * @param message  The message explaining the reason for the exception.
      ***/
-    public FTPConnectionClosedException(String message)
+    public FTPConnectionClosedException(final String message)
     {
         super(message);
     }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPFile.java b/src/main/java/org/apache/commons/net/ftp/FTPFile.java
index b208e27..b443dcb 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPFile.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPFile.java
@@ -88,7 +88,7 @@ public class FTPFile implements Serializable
      * @param rawListing line that could not be parsed.
      * @since 3.4
      */
-    FTPFile(String rawListing)
+    FTPFile(final String rawListing)
     {
         _permissions = null; // flag that entry is invalid
         _rawListing = rawListing;
@@ -110,7 +110,7 @@ public class FTPFile implements Serializable
      *
      * @param rawListing  The raw FTP server listing.
      ***/
-    public void setRawListing(String rawListing)
+    public void setRawListing(final String rawListing)
     {
         _rawListing = rawListing;
     }
@@ -191,7 +191,7 @@ public class FTPFile implements Serializable
      *
      * @param type  The integer code representing the type of the file.
      ***/
-    public void setType(int type)
+    public void setType(final int type)
     {
         _type = type;
     }
@@ -214,7 +214,7 @@ public class FTPFile implements Serializable
      *
      * @param name  The name of the file.
      ***/
-    public void setName(String name)
+    public void setName(final String name)
     {
         _name = name;
     }
@@ -234,7 +234,7 @@ public class FTPFile implements Serializable
      * Set the file size in bytes.
      * @param size The file size in bytes.
      */
-    public void setSize(long size)
+    public void setSize(final long size)
     {
         _size = size;
     }
@@ -257,7 +257,7 @@ public class FTPFile implements Serializable
      *
      * @param links  The number of hard links to this file.
      ***/
-    public void setHardLinkCount(int links)
+    public void setHardLinkCount(final int links)
     {
         _hardLinkCount = links;
     }
@@ -281,7 +281,7 @@ public class FTPFile implements Serializable
      *
      * @param group The name of the group owning the file.
      ***/
-    public void setGroup(String group)
+    public void setGroup(final String group)
     {
         _group = group;
     }
@@ -305,7 +305,7 @@ public class FTPFile implements Serializable
      *
      * @param user The name of the user owning the file.
      ***/
-    public void setUser(String user)
+    public void setUser(final String user)
     {
         _user = user;
     }
@@ -328,7 +328,7 @@ public class FTPFile implements Serializable
      *
      * @param link  The file pointed to by the symbolic link.
      ***/
-    public void setLink(String link)
+    public void setLink(final String link)
     {
         _link = link;
     }
@@ -354,7 +354,7 @@ public class FTPFile implements Serializable
      *
      * @param date A Calendar instance representing the file timestamp.
      ***/
-    public void setTimestamp(Calendar date)
+    public void setTimestamp(final Calendar date)
     {
         _date = date;
     }
@@ -383,7 +383,7 @@ public class FTPFile implements Serializable
      * @param value  True if permission is allowed, false if not.
      * @throws ArrayIndexOutOfBoundsException if either of the parameters is out of range
      ***/
-    public void setPermission(int access, int permission, boolean value)
+    public void setPermission(final int access, final int permission, final boolean value)
     {
         _permissions[access][permission] = value;
     }
@@ -402,7 +402,7 @@ public class FTPFile implements Serializable
      * @return true if {@link #isValid()} is {@code true &&} the associated permission is set;
      * {@code false} otherwise.
      ***/
-    public boolean hasPermission(int access, int permission)
+    public boolean hasPermission(final int access, final int permission)
     {
         if (_permissions == null) {
             return false;
@@ -459,8 +459,8 @@ public class FTPFile implements Serializable
         if (!isValid()) {
             return "[Invalid: could not parse file entry]";
         }
-        StringBuilder sb = new StringBuilder();
-        Formatter fmt = new Formatter(sb);
+        final StringBuilder sb = new StringBuilder();
+        final Formatter fmt = new Formatter(sb);
         sb.append(formatType());
         sb.append(permissionToString(USER_ACCESS));
         sb.append(permissionToString(GROUP_ACCESS));
@@ -471,10 +471,10 @@ public class FTPFile implements Serializable
         Calendar timestamp = getTimestamp();
         if (timestamp != null) {
             if (timezone != null) {
-                TimeZone newZone = TimeZone.getTimeZone(timezone);
+                final TimeZone newZone = TimeZone.getTimeZone(timezone);
                 if (!newZone.equals(timestamp.getTimeZone())){
-                    Date original = timestamp.getTime();
-                    Calendar newStamp = Calendar.getInstance(newZone);
+                    final Date original = timestamp.getTime();
+                    final Calendar newStamp = Calendar.getInstance(newZone);
                     newStamp.setTime(original);
                     timestamp = newStamp;
                 }
@@ -514,8 +514,8 @@ public class FTPFile implements Serializable
         }
     }
 
-    private String permissionToString(int access ){
-        StringBuilder sb = new StringBuilder();
+    private String permissionToString(final int access ){
+        final StringBuilder sb = new StringBuilder();
         if (hasPermission(access, READ_PERMISSION)) {
             sb.append('r');
         } else {
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPFileEntryParserImpl.java b/src/main/java/org/apache/commons/net/ftp/FTPFileEntryParserImpl.java
index 7f29224..967fd5e 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPFileEntryParserImpl.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPFileEntryParserImpl.java
@@ -48,7 +48,7 @@ public abstract class FTPFileEntryParserImpl
      * @throws java.io.IOException thrown on any IO Error reading from the reader.
      */
     @Override
-    public String readNextEntry(BufferedReader reader) throws IOException
+    public String readNextEntry(final BufferedReader reader) throws IOException
     {
         return reader.readLine();
     }
@@ -65,7 +65,7 @@ public abstract class FTPFileEntryParserImpl
      * @return <code>original</code> unmodified.
      */
     @Override
-    public List<String> preParse(List<String> original) {
+    public List<String> preParse(final List<String> original) {
          return original;
      }
 }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPFileFilters.java b/src/main/java/org/apache/commons/net/ftp/FTPFileFilters.java
index 29eba60..5e650b1 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPFileFilters.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPFileFilters.java
@@ -29,7 +29,7 @@ public class FTPFileFilters {
      */
     public static final FTPFileFilter ALL = new FTPFileFilter() {
         @Override
-        public boolean accept(FTPFile file) {
+        public boolean accept(final FTPFile file) {
             return true;
         }
     };
@@ -39,7 +39,7 @@ public class FTPFileFilters {
      */
     public static final FTPFileFilter NON_NULL = new FTPFileFilter() {
         @Override
-        public boolean accept(FTPFile file) {
+        public boolean accept(final FTPFile file) {
             return file != null;
         }
     };
@@ -49,7 +49,7 @@ public class FTPFileFilters {
      */
     public static final FTPFileFilter DIRECTORIES = new FTPFileFilter() {
         @Override
-        public boolean accept(FTPFile file) {
+        public boolean accept(final FTPFile file) {
             return file != null && file.isDirectory();
         }
     };
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPHTTPClient.java b/src/main/java/org/apache/commons/net/ftp/FTPHTTPClient.java
index d5f1114..bb118f0 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPHTTPClient.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPHTTPClient.java
@@ -59,7 +59,7 @@ public class FTPHTTPClient extends FTPClient {
      * @param proxyPass the password for the proxy
      * @param encoding the encoding to use
      */
-    public FTPHTTPClient(String proxyHost, int proxyPort, String proxyUser, String proxyPass, Charset encoding) {
+    public FTPHTTPClient(final String proxyHost, final int proxyPort, final String proxyUser, final String proxyPass, final Charset encoding) {
         this.proxyHost = proxyHost;
         this.proxyPort = proxyPort;
         this.proxyUsername = proxyUser;
@@ -76,7 +76,7 @@ public class FTPHTTPClient extends FTPClient {
      * @param proxyUser the user name for the proxy
      * @param proxyPass the password for the proxy
      */
-    public FTPHTTPClient(String proxyHost, int proxyPort, String proxyUser, String proxyPass) {
+    public FTPHTTPClient(final String proxyHost, final int proxyPort, final String proxyUser, final String proxyPass) {
         this(proxyHost, proxyPort, proxyUser, proxyPass, Charset.forName("UTF-8"));
     }
 
@@ -86,7 +86,7 @@ public class FTPHTTPClient extends FTPClient {
      * @param proxyHost the hostname to use
      * @param proxyPort the port to use
      */
-    public FTPHTTPClient(String proxyHost, int proxyPort) {
+    public FTPHTTPClient(final String proxyHost, final int proxyPort) {
         this(proxyHost, proxyPort, null, null);
     }
 
@@ -98,7 +98,7 @@ public class FTPHTTPClient extends FTPClient {
      * @param proxyPort the port to use
      * @param encoding the encoding to use
      */
-    public FTPHTTPClient(String proxyHost, int proxyPort, Charset encoding) {
+    public FTPHTTPClient(final String proxyHost, final int proxyPort, final Charset encoding) {
         this(proxyHost, proxyPort, null, null, encoding);
     }
 
@@ -113,7 +113,7 @@ public class FTPHTTPClient extends FTPClient {
     // Not strictly necessary, but Clirr complains even though there is a super-impl
     @Override
     @Deprecated
-    protected Socket _openDataConnection_(int command, String arg)
+    protected Socket _openDataConnection_(final int command, final String arg)
     throws IOException {
         return super._openDataConnection_(command, arg);
     }
@@ -125,7 +125,7 @@ public class FTPHTTPClient extends FTPClient {
      * @since 3.1
      */
     @Override
-    protected Socket _openDataConnection_(String command, String arg)
+    protected Socket _openDataConnection_(final String command, final String arg)
     throws IOException {
         //Force local passive mode, active mode not supported by through proxy
         if (getDataConnectionMode() != PASSIVE_LOCAL_DATA_CONNECTION_MODE) {
@@ -135,7 +135,7 @@ public class FTPHTTPClient extends FTPClient {
         final boolean isInet6Address = getRemoteAddress() instanceof Inet6Address;
         String passiveHost = null;
 
-        boolean attemptEPSV = isUseEPSVwithIPv4() || isInet6Address;
+        final boolean attemptEPSV = isUseEPSVwithIPv4() || isInet6Address;
         if (attemptEPSV && epsv() == FTPReply.ENTERING_EPSV_MODE) {
             _parseExtendedPassiveModeReply(_replyLines.get(0));
             passiveHost = this.tunnelHost;
@@ -151,9 +151,9 @@ public class FTPHTTPClient extends FTPClient {
             passiveHost = this.getPassiveHost();
         }
 
-        Socket socket = _socketFactory_.createSocket(proxyHost, proxyPort);
-        InputStream is = socket.getInputStream();
-        OutputStream os = socket.getOutputStream();
+        final Socket socket = _socketFactory_.createSocket(proxyHost, proxyPort);
+        final InputStream is = socket.getInputStream();
+        final OutputStream os = socket.getOutputStream();
         tunnelHandshake(passiveHost, this.getPassivePort(), is, os);
         if ((getRestartOffset() > 0) && !restart(getRestartOffset())) {
             socket.close();
@@ -169,7 +169,7 @@ public class FTPHTTPClient extends FTPClient {
     }
 
     @Override
-    public void connect(String host, int port) throws SocketException, IOException {
+    public void connect(final String host, final int port) throws SocketException, IOException {
 
         _socket_ = _socketFactory_.createSocket(proxyHost, proxyPort);
         _input_ = _socket_.getInputStream();
@@ -178,15 +178,15 @@ public class FTPHTTPClient extends FTPClient {
         try {
             socketIsReader = tunnelHandshake(host, port, _input_, _output_);
         }
-        catch (Exception e) {
-            IOException ioe = new IOException("Could not connect to " + host+ " using port " + port);
+        catch (final Exception e) {
+            final IOException ioe = new IOException("Could not connect to " + host+ " using port " + port);
             ioe.initCause(e);
             throw ioe;
         }
         super._connectAction_(socketIsReader);
     }
 
-    private BufferedReader tunnelHandshake(String host, int port, InputStream input, OutputStream output) throws IOException,
+    private BufferedReader tunnelHandshake(final String host, final int port, final InputStream input, final OutputStream output) throws IOException,
     UnsupportedEncodingException {
         final String connectString = "CONNECT "  + host + ":" + port  + " HTTP/1.1";
         final String hostString = "Host: " + host + ":" + port;
@@ -205,8 +205,8 @@ public class FTPHTTPClient extends FTPClient {
         }
         output.write(CRLF);
 
-        List<String> response = new ArrayList<>();
-        BufferedReader reader = new BufferedReader(
+        final List<String> response = new ArrayList<>();
+        final BufferedReader reader = new BufferedReader(
                 new InputStreamReader(input, getCharset()));
 
         for (String line = reader.readLine(); line != null
@@ -214,13 +214,13 @@ public class FTPHTTPClient extends FTPClient {
             response.add(line);
         }
 
-        int size = response.size();
+        final int size = response.size();
         if (size == 0) {
             throw new IOException("No response from proxy");
         }
 
         String code = null;
-        String resp = response.get(0);
+        final String resp = response.get(0);
         if (resp.startsWith("HTTP/") && resp.length() >= 12) {
             code = resp.substring(9, 12);
         } else {
@@ -228,10 +228,10 @@ public class FTPHTTPClient extends FTPClient {
         }
 
         if (!"200".equals(code)) {
-            StringBuilder msg = new StringBuilder();
+            final StringBuilder msg = new StringBuilder();
             msg.append("HTTPTunnelConnector: connection failed\r\n");
             msg.append("Response received from the proxy:\r\n");
-            for (String line : response) {
+            for (final String line : response) {
                 msg.append(line);
                 msg.append("\r\n");
             }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java b/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java
index b409915..6542ea2 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java
@@ -82,7 +82,7 @@ public class FTPListParseEngine {
     // Should invalid files (parse failures) be allowed?
     private final boolean saveUnparseableEntries;
 
-    public FTPListParseEngine(FTPFileEntryParser parser) {
+    public FTPListParseEngine(final FTPFileEntryParser parser) {
         this(parser, null);
     }
 
@@ -90,7 +90,7 @@ public class FTPListParseEngine {
      * Intended for use by FTPClient only
      * @since 3.4
      */
-    FTPListParseEngine(FTPFileEntryParser parser, FTPClientConfig configuration) {
+    FTPListParseEngine(final FTPFileEntryParser parser, final FTPClientConfig configuration) {
         this.parser = parser;
         if (configuration != null) {
             this.saveUnparseableEntries = configuration.getUnparseableEntries();
@@ -111,7 +111,7 @@ public class FTPListParseEngine {
      * @throws IOException
      *                   thrown on any failure to read from the sever.
      */
-    public void readServerList(InputStream stream, String encoding)
+    public void readServerList(final InputStream stream, final String encoding)
     throws IOException
     {
         this.entries = new LinkedList<>();
@@ -134,9 +134,9 @@ public class FTPListParseEngine {
      * @throws IOException
      *                   thrown on any failure to read the stream
      */
-    private void readStream(InputStream stream, String encoding) throws IOException
+    private void readStream(final InputStream stream, final String encoding) throws IOException
     {
-        BufferedReader reader = new BufferedReader(
+        final BufferedReader reader = new BufferedReader(
                 new InputStreamReader(stream, Charsets.toCharset(encoding)));
 
         String line = this.parser.readNextEntry(reader);
@@ -172,11 +172,11 @@ public class FTPListParseEngine {
      * individual file listings failed to parse.  The caller should
      * check each entry for null before referencing it.
      */
-    public FTPFile[] getNext(int quantityRequested) {
-        List<FTPFile> tmpResults = new LinkedList<>();
+    public FTPFile[] getNext(final int quantityRequested) {
+        final List<FTPFile> tmpResults = new LinkedList<>();
         int count = quantityRequested;
         while (count > 0 && this._internalIterator.hasNext()) {
-            String entry = this._internalIterator.next();
+            final String entry = this._internalIterator.next();
             FTPFile temp = this.parser.parseFTPEntry(entry);
             if (temp == null && saveUnparseableEntries) {
                 temp = new FTPFile(entry);
@@ -214,11 +214,11 @@ public class FTPListParseEngine {
      * individual file listings failed to parse.  The caller should
      * check each entry for null before referencing it.
      */
-    public FTPFile[] getPrevious(int quantityRequested) {
-        List<FTPFile> tmpResults = new LinkedList<>();
+    public FTPFile[] getPrevious(final int quantityRequested) {
+        final List<FTPFile> tmpResults = new LinkedList<>();
         int count = quantityRequested;
         while (count > 0 && this._internalIterator.hasPrevious()) {
-            String entry = this._internalIterator.previous();
+            final String entry = this._internalIterator.previous();
             FTPFile temp = this.parser.parseFTPEntry(entry);
             if (temp == null && saveUnparseableEntries) {
                 temp = new FTPFile(entry);
@@ -262,13 +262,13 @@ public class FTPListParseEngine {
      * @since 2.2
      * @throws IOException - not ever thrown, may be removed in a later release
      */
-    public FTPFile[] getFiles(FTPFileFilter filter)
+    public FTPFile[] getFiles(final FTPFileFilter filter)
     throws IOException // TODO remove; not actually thrown
     {
-        List<FTPFile> tmpResults = new ArrayList<>();
-        Iterator<String> iter = this.entries.iterator();
+        final List<FTPFile> tmpResults = new ArrayList<>();
+        final Iterator<String> iter = this.entries.iterator();
         while (iter.hasNext()) {
-            String entry = iter.next();
+            final String entry = iter.next();
             FTPFile temp = this.parser.parseFTPEntry(entry);
             if (temp == null && saveUnparseableEntries) {
                 temp = new FTPFile(entry);
@@ -319,7 +319,7 @@ public class FTPListParseEngine {
      * @deprecated use {@link #readServerList(InputStream, String)} instead
     */
     @Deprecated
-    public void readServerList(InputStream stream)
+    public void readServerList(final InputStream stream)
     throws IOException
     {
         readServerList(stream, null);
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPReply.java b/src/main/java/org/apache/commons/net/ftp/FTPReply.java
index 37d5df5..3cd521d 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPReply.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPReply.java
@@ -115,7 +115,7 @@ public final class FTPReply
      * @return True if a reply code is a postive preliminary response, false
      *         if not.
      ***/
-    public static boolean isPositivePreliminary(int reply)
+    public static boolean isPositivePreliminary(final int reply)
     {
         return (reply >= 100 && reply < 200);
     }
@@ -130,7 +130,7 @@ public final class FTPReply
      * @return True if a reply code is a postive completion response, false
      *         if not.
      ***/
-    public static boolean isPositiveCompletion(int reply)
+    public static boolean isPositiveCompletion(final int reply)
     {
         return (reply >= 200 && reply < 300);
     }
@@ -148,7 +148,7 @@ public final class FTPReply
      * @return True if a reply code is a postive intermediate response, false
      *         if not.
      ***/
-    public static boolean isPositiveIntermediate(int reply)
+    public static boolean isPositiveIntermediate(final int reply)
     {
         return (reply >= 300 && reply < 400);
     }
@@ -163,7 +163,7 @@ public final class FTPReply
      * @return True if a reply code is a negative transient response, false
      *         if not.
      ***/
-    public static boolean isNegativeTransient(int reply)
+    public static boolean isNegativeTransient(final int reply)
     {
         return (reply >= 400 && reply < 500);
     }
@@ -178,7 +178,7 @@ public final class FTPReply
      * @return True if a reply code is a negative permanent response, false
      *         if not.
      ***/
-    public static boolean isNegativePermanent(int reply)
+    public static boolean isNegativePermanent(final int reply)
     {
         return (reply >= 500 && reply < 600);
     }
@@ -190,7 +190,7 @@ public final class FTPReply
      *         if not.
      * @since 3.0
      */
-    public static boolean isProtectedReplyCode(int reply)
+    public static boolean isProtectedReplyCode(final int reply)
     {
         // actually, only 3 protected reply codes are
         // defined in RFC 2228: 631, 632 and 633.
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPSClient.java b/src/main/java/org/apache/commons/net/ftp/FTPSClient.java
index 504915e..b50689e 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPSClient.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPSClient.java
@@ -134,7 +134,7 @@ public class FTPSClient extends FTPClient {
      * Calls {@link #FTPSClient(String, boolean)}
      * @param isImplicit The security mode (Implicit/Explicit).
      */
-    public FTPSClient(boolean isImplicit) {
+    public FTPSClient(final boolean isImplicit) {
         this(DEFAULT_PROTOCOL, isImplicit);
     }
 
@@ -143,7 +143,7 @@ public class FTPSClient extends FTPClient {
      *
      * @param protocol the protocol to use
      */
-    public FTPSClient(String protocol) {
+    public FTPSClient(final String protocol) {
         this(protocol, false);
     }
 
@@ -155,7 +155,7 @@ public class FTPSClient extends FTPClient {
      * @param protocol the protocol
      * @param isImplicit The security mode(Implicit/Explicit).
      */
-    public FTPSClient(String protocol, boolean isImplicit) {
+    public FTPSClient(final String protocol, final boolean isImplicit) {
         super();
         this.protocol = protocol;
         this.isImplicit = isImplicit;
@@ -170,7 +170,7 @@ public class FTPSClient extends FTPClient {
      * @param isImplicit The security mode(Implicit/Explicit).
      * @param context A pre-configured SSL Context
      */
-    public FTPSClient(boolean isImplicit, SSLContext context) {
+    public FTPSClient(final boolean isImplicit, final SSLContext context) {
         this(DEFAULT_PROTOCOL, isImplicit);
         this.context = context;
     }
@@ -181,7 +181,7 @@ public class FTPSClient extends FTPClient {
      * Calls {@link #FTPSClient(boolean, SSLContext)}
      * @param context A pre-configured SSL Context
      */
-    public FTPSClient(SSLContext context) {
+    public FTPSClient(final SSLContext context) {
         this(false, context);
     }
 
@@ -191,7 +191,7 @@ public class FTPSClient extends FTPClient {
      * This processing is done before connected processing.
      * @param auth AUTH command use value.
      */
-    public void setAuthValue(String auth) {
+    public void setAuthValue(final String auth) {
         this.auth = auth;
     }
 
@@ -233,7 +233,7 @@ public class FTPSClient extends FTPClient {
      * the command.
      */
     protected void execAUTH() throws SSLException, IOException {
-        int replyCode = sendCommand(CMD_AUTH, auth);
+        final int replyCode = sendCommand(CMD_AUTH, auth);
         if (FTPReply.SECURITY_MECHANISM_IS_OK == replyCode) {
             // replyCode = 334
             // I carry out an ADAT command.
@@ -260,7 +260,7 @@ public class FTPSClient extends FTPClient {
     protected void sslNegotiation() throws IOException {
         plainSocket = _socket_;
         initSslContext();
-        SSLSocket socket = (SSLSocket)createSSLSocket(_socket_);
+        final SSLSocket socket = (SSLSocket)createSSLSocket(_socket_);
         socket.setEnableSessionCreation(isCreation);
         socket.setUseClientMode(isClientMode);
 
@@ -311,7 +311,7 @@ public class FTPSClient extends FTPClient {
     * @param keyManager The KeyManager implementation to set.
     * @see org.apache.commons.net.util.KeyManagerUtils
     */
-    public void setKeyManager(KeyManager keyManager) {
+    public void setKeyManager(final KeyManager keyManager) {
         this.keyManager = keyManager;
     }
 
@@ -319,7 +319,7 @@ public class FTPSClient extends FTPClient {
      * Controls whether a new SSL session may be established by this socket.
      * @param isCreation The established socket flag.
      */
-    public void setEnabledSessionCreation(boolean isCreation) {
+    public void setEnabledSessionCreation(final boolean isCreation) {
         this.isCreation = isCreation;
     }
 
@@ -343,7 +343,7 @@ public class FTPSClient extends FTPClient {
      * Configures the socket to require client authentication.
      * @param isNeedClientAuth The need client auth flag.
      */
-    public void setNeedClientAuth(boolean isNeedClientAuth) {
+    public void setNeedClientAuth(final boolean isNeedClientAuth) {
         this.isNeedClientAuth = isNeedClientAuth;
     }
 
@@ -366,7 +366,7 @@ public class FTPSClient extends FTPClient {
      * suite negotiated.
      * @param isWantClientAuth The want client auth flag.
      */
-    public void setWantClientAuth(boolean isWantClientAuth) {
+    public void setWantClientAuth(final boolean isWantClientAuth) {
         this.isWantClientAuth = isWantClientAuth;
     }
 
@@ -388,7 +388,7 @@ public class FTPSClient extends FTPClient {
      * handshake.
      * @param isClientMode The use client mode flag.
      */
-    public void setUseClientMode(boolean isClientMode) {
+    public void setUseClientMode(final boolean isClientMode) {
         this.isClientMode = isClientMode;
     }
 
@@ -411,7 +411,7 @@ public class FTPSClient extends FTPClient {
      * connection. Called before server negotiation.
      * @param cipherSuites The cipher suites.
      */
-    public void setEnabledCipherSuites(String[] cipherSuites) {
+    public void setEnabledCipherSuites(final String[] cipherSuites) {
         suites = new String[cipherSuites.length];
         System.arraycopy(cipherSuites, 0, suites, 0, cipherSuites.length);
     }
@@ -434,7 +434,7 @@ public class FTPSClient extends FTPClient {
      * connection. I perform setting before a server negotiation.
      * @param protocolVersions The protocol versions.
      */
-    public void setEnabledProtocols(String[] protocolVersions) {
+    public void setEnabledProtocols(final String[] protocolVersions) {
         protocols = new String[protocolVersions.length];
         System.arraycopy(protocolVersions, 0, protocols, 0, protocolVersions.length);
     }
@@ -460,11 +460,11 @@ public class FTPSClient extends FTPClient {
      * the command.
      * @see #parsePBSZ(long)
      */
-    public void execPBSZ(long pbsz) throws SSLException, IOException {
+    public void execPBSZ(final long pbsz) throws SSLException, IOException {
         if (pbsz < 0 || 4294967295L < pbsz) { // 32-bit unsigned number
             throw new IllegalArgumentException();
         }
-        int status = sendCommand(CMD_PBSZ, String.valueOf(pbsz));
+        final int status = sendCommand(CMD_PBSZ, String.valueOf(pbsz));
         if (FTPReply.COMMAND_OK != status) {
             throw new SSLException(getReplyString());
         }
@@ -482,12 +482,12 @@ public class FTPSClient extends FTPClient {
      * @see #execPBSZ(long)
      * @since 3.0
      */
-    public long parsePBSZ(long pbsz) throws SSLException, IOException {
+    public long parsePBSZ(final long pbsz) throws SSLException, IOException {
         execPBSZ(pbsz);
         long minvalue = pbsz;
-        String remainder = extractPrefixedData("PBSZ=", getReplyString());
+        final String remainder = extractPrefixedData("PBSZ=", getReplyString());
         if (remainder != null) {
-            long replysz = Long.parseLong(remainder);
+            final long replysz = Long.parseLong(remainder);
             if (replysz < minvalue) {
                 minvalue = replysz;
             }
@@ -537,8 +537,8 @@ public class FTPSClient extends FTPClient {
      * @param prot Data Channel Protection Level.
      * @return True - A set point is right / False - A set point is not right
      */
-    private boolean checkPROTValue(String prot) {
-        for (String element : PROT_COMMAND_VALUE)
+    private boolean checkPROTValue(final String prot) {
+        for (final String element : PROT_COMMAND_VALUE)
         {
             if (element.equals(prot)) {
                 return true;
@@ -559,8 +559,8 @@ public class FTPSClient extends FTPClient {
      */
     // Would like to remove this method, but that will break any existing clients that are using CCC
     @Override
-    public int sendCommand(String command, String args) throws IOException {
-        int repCode = super.sendCommand(command, args);
+    public int sendCommand(final String command, final String args) throws IOException {
+        final int repCode = super.sendCommand(command, args);
         /* If CCC is issued, restore socket i/o streams to unsecured versions */
         if (CMD_CCC.equals(command)) {
             if (FTPReply.COMMAND_OK == repCode) {
@@ -597,7 +597,7 @@ public class FTPSClient extends FTPClient {
     // Strictly speaking this is not needed, but it works round a Clirr bug
     // So rather than invoke the parent code, we do it here
     @Deprecated
-    protected Socket _openDataConnection_(int command, String arg)
+    protected Socket _openDataConnection_(final int command, final String arg)
             throws IOException {
         return _openDataConnection_(FTPCommand.getCommand(command), arg);
     }
@@ -617,12 +617,12 @@ public class FTPSClient extends FTPClient {
      * @since 3.2
      */
     @Override
-    protected Socket _openDataConnection_(String command, String arg)
+    protected Socket _openDataConnection_(final String command, final String arg)
             throws IOException {
-        Socket socket = super._openDataConnection_(command, arg);
+        final Socket socket = super._openDataConnection_(command, arg);
         _prepareDataSocket_(socket);
         if (socket instanceof SSLSocket) {
-            SSLSocket sslSocket = (SSLSocket)socket;
+            final SSLSocket sslSocket = (SSLSocket)socket;
 
             sslSocket.setUseClientMode(isClientMode);
             sslSocket.setEnableSessionCreation(isCreation);
@@ -654,7 +654,7 @@ public class FTPSClient extends FTPClient {
     * @throws IOException on error
     * @since 3.1
     */
-    protected void _prepareDataSocket_(Socket socket)
+    protected void _prepareDataSocket_(final Socket socket)
             throws IOException {
     }
 
@@ -674,7 +674,7 @@ public class FTPSClient extends FTPClient {
      * @param trustManager The TrustManager implementation to set, may be {@code null}
      * @see org.apache.commons.net.util.TrustManagerUtils
      */
-    public void setTrustManager(TrustManager trustManager) {
+    public void setTrustManager(final TrustManager trustManager) {
         this.trustManager = trustManager;
     }
 
@@ -695,7 +695,7 @@ public class FTPSClient extends FTPClient {
      * @param newHostnameVerifier The HostnameVerifier implementation to set or <code>null</code> to disable.
      * @since 3.4
      */
-    public void setHostnameVerifier(HostnameVerifier newHostnameVerifier)
+    public void setHostnameVerifier(final HostnameVerifier newHostnameVerifier)
     {
         hostnameVerifier = newHostnameVerifier;
     }
@@ -723,7 +723,7 @@ public class FTPSClient extends FTPClient {
      * @param enable Enable automatic endpoint identification checking using the HTTPS algorithm on Java 1.7+.
      * @since 3.4
      */
-    public void setEndpointCheckingEnabled(boolean enable)
+    public void setEndpointCheckingEnabled(final boolean enable)
     {
         tlsEndpointChecking = enable;
     }
@@ -757,7 +757,7 @@ public class FTPSClient extends FTPClient {
      * the command.
      * @since 3.0
      */
-    public int execAUTH(String mechanism) throws IOException
+    public int execAUTH(final String mechanism) throws IOException
     {
         return sendCommand(CMD_AUTH, mechanism);
     }
@@ -770,7 +770,7 @@ public class FTPSClient extends FTPClient {
      * the command.
      * @since 3.0
      */
-    public int execADAT(byte[] data) throws IOException
+    public int execADAT(final byte[] data) throws IOException
     {
         if (data != null)
         {
@@ -793,7 +793,7 @@ public class FTPSClient extends FTPClient {
      */
     public int execCCC() throws IOException
     {
-        int repCode = sendCommand(CMD_CCC);
+        final int repCode = sendCommand(CMD_CCC);
 // This will be performed by sendCommand(String, String)
 //        if (FTPReply.isPositiveCompletion(repCode)) {
 //            _socket_.close();
@@ -816,7 +816,7 @@ public class FTPSClient extends FTPClient {
      * the command.
      * @since 3.0
      */
-    public int execMIC(byte[] data) throws IOException
+    public int execMIC(final byte[] data) throws IOException
     {
         if (data != null)
         {
@@ -836,7 +836,7 @@ public class FTPSClient extends FTPClient {
      * the command.
      * @since 3.0
      */
-    public int execCONF(byte[] data) throws IOException
+    public int execCONF(final byte[] data) throws IOException
     {
         if (data != null)
         {
@@ -856,7 +856,7 @@ public class FTPSClient extends FTPClient {
      * the command.
      * @since 3.0
      */
-    public int execENC(byte[] data) throws IOException
+    public int execENC(final byte[] data) throws IOException
     {
         if (data != null)
         {
@@ -874,7 +874,7 @@ public class FTPSClient extends FTPClient {
      * @return the data in the reply, base64-decoded.
      * @since 3.0
      */
-    public byte[] parseADATReply(String reply)
+    public byte[] parseADATReply(final String reply)
     {
         if (reply == null) {
             return null;
@@ -889,8 +889,8 @@ public class FTPSClient extends FTPClient {
      * @param reply where to find the prefix
      * @return the remainder of the string after the prefix, or null if the prefix was not present.
      */
-    private String extractPrefixedData(String prefix, String reply) {
-        int idx = reply.indexOf(prefix);
+    private String extractPrefixedData(final String prefix, final String reply) {
+        final int idx = reply.indexOf(prefix);
         if (idx == -1) {
             return null;
         }
@@ -905,9 +905,9 @@ public class FTPSClient extends FTPClient {
      * @return SSL Sockect
      * @throws IOException
      */
-    private Socket createSSLSocket(Socket socket) throws IOException {
+    private Socket createSSLSocket(final Socket socket) throws IOException {
         if (socket != null) {
-            SSLSocketFactory f = context.getSocketFactory();
+            final SSLSocketFactory f = context.getSocketFactory();
             return f.createSocket(socket, socket.getInetAddress().getHostAddress(), socket.getPort(), false);
         } else {
             return null;
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPSCommand.java b/src/main/java/org/apache/commons/net/ftp/FTPSCommand.java
index c6bade3..a3dea83 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPSCommand.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPSCommand.java
@@ -46,7 +46,7 @@ public final class FTPSCommand {
      * @return The FTPS command string corresponding to a specified
      *  command code.
      */
-    public static final String getCommand(int command) {
+    public static final String getCommand(final int command) {
         return _commands[command];
     }
 }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPSServerSocketFactory.java b/src/main/java/org/apache/commons/net/ftp/FTPSServerSocketFactory.java
index abd382d..f227ba0 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPSServerSocketFactory.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPSServerSocketFactory.java
@@ -34,7 +34,7 @@ public class FTPSServerSocketFactory extends ServerSocketFactory {
     /** Factory for secure socket factories */
     private final SSLContext context;
 
-    public FTPSServerSocketFactory(SSLContext context) {
+    public FTPSServerSocketFactory(final SSLContext context) {
         this.context = context;
     }
 
@@ -45,17 +45,17 @@ public class FTPSServerSocketFactory extends ServerSocketFactory {
     }
 
     @Override
-    public ServerSocket createServerSocket(int port) throws IOException {
+    public ServerSocket createServerSocket(final int port) throws IOException {
         return init(this.context.getServerSocketFactory().createServerSocket(port));
     }
 
     @Override
-    public ServerSocket createServerSocket(int port, int backlog) throws IOException {
+    public ServerSocket createServerSocket(final int port, final int backlog) throws IOException {
         return init(this.context.getServerSocketFactory().createServerSocket(port, backlog));
     }
 
     @Override
-    public ServerSocket createServerSocket(int port, int backlog, InetAddress ifAddress) throws IOException {
+    public ServerSocket createServerSocket(final int port, final int backlog, final InetAddress ifAddress) throws IOException {
         return init(this.context.getServerSocketFactory().createServerSocket(port, backlog, ifAddress));
     }
 
@@ -66,7 +66,7 @@ public class FTPSServerSocketFactory extends ServerSocketFactory {
      * @return the socket
      * @throws ClassCastException if socket is not an instance of SSLServerSocket
      */
-    public ServerSocket init(ServerSocket socket) {
+    public ServerSocket init(final ServerSocket socket) {
         ((SSLServerSocket) socket).setUseClientMode(true);
         return socket;
     }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPSSocketFactory.java b/src/main/java/org/apache/commons/net/ftp/FTPSSocketFactory.java
index d24405d..bb68858 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPSSocketFactory.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPSSocketFactory.java
@@ -35,7 +35,7 @@ public class FTPSSocketFactory extends SocketFactory {
 
     private final SSLContext context;
 
-    public FTPSSocketFactory(SSLContext context) {
+    public FTPSSocketFactory(final SSLContext context) {
         this.context = context;
     }
 
@@ -46,23 +46,23 @@ public class FTPSSocketFactory extends SocketFactory {
     }
 
     @Override
-    public Socket createSocket(String address, int port) throws UnknownHostException, IOException {
+    public Socket createSocket(final String address, final int port) throws UnknownHostException, IOException {
         return this.context.getSocketFactory().createSocket(address, port);
     }
 
     @Override
-    public Socket createSocket(InetAddress address, int port) throws IOException {
+    public Socket createSocket(final InetAddress address, final int port) throws IOException {
         return this.context.getSocketFactory().createSocket(address, port);
     }
 
     @Override
-    public Socket createSocket(String address, int port, InetAddress localAddress, int localPort)
+    public Socket createSocket(final String address, final int port, final InetAddress localAddress, final int localPort)
             throws UnknownHostException, IOException {
         return this.context.getSocketFactory().createSocket(address, port, localAddress, localPort);
     }
 
     @Override
-    public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException {
+    public Socket createSocket(final InetAddress address, final int port, final InetAddress localAddress, final int localPort) throws IOException {
         return this.context.getSocketFactory().createSocket(address, port, localAddress, localPort);
     }
 
@@ -74,7 +74,7 @@ public class FTPSSocketFactory extends SocketFactory {
      * @throws IOException on error
      * @deprecated (2.2) use {@link FTPSServerSocketFactory#createServerSocket(int) instead} */
     @Deprecated
-    public java.net.ServerSocket createServerSocket(int port) throws IOException {
+    public java.net.ServerSocket createServerSocket(final int port) throws IOException {
         return this.init(this.context.getServerSocketFactory().createServerSocket(port));
     }
 
@@ -84,7 +84,7 @@ public class FTPSSocketFactory extends SocketFactory {
      * @throws IOException  on error
      * @deprecated  (2.2) use {@link FTPSServerSocketFactory#createServerSocket(int, int) instead} */
     @Deprecated
-    public java.net.ServerSocket createServerSocket(int port, int backlog) throws IOException {
+    public java.net.ServerSocket createServerSocket(final int port, final int backlog) throws IOException {
         return this.init(this.context.getServerSocketFactory().createServerSocket(port, backlog));
     }
 
@@ -95,7 +95,7 @@ public class FTPSSocketFactory extends SocketFactory {
      * @throws IOException  on error
      * @deprecated  (2.2) use {@link FTPSServerSocketFactory#createServerSocket(int, int, InetAddress) instead} */
     @Deprecated
-    public java.net.ServerSocket createServerSocket(int port, int backlog, InetAddress ifAddress) throws IOException {
+    public java.net.ServerSocket createServerSocket(final int port, final int backlog, final InetAddress ifAddress) throws IOException {
         return this.init(this.context.getServerSocketFactory().createServerSocket(port, backlog, ifAddress));
     }
 
@@ -104,7 +104,7 @@ public class FTPSSocketFactory extends SocketFactory {
      * @throws IOException  on error
      * @deprecated  (2.2) use {@link FTPSServerSocketFactory#init(java.net.ServerSocket)} */
     @Deprecated
-    public java.net.ServerSocket init(java.net.ServerSocket socket) throws IOException {
+    public java.net.ServerSocket init(final java.net.ServerSocket socket) throws IOException {
         ((javax.net.ssl.SSLServerSocket) socket).setUseClientMode(true);
         return socket;
     }
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPSTrustManager.java b/src/main/java/org/apache/commons/net/ftp/FTPSTrustManager.java
index 56fbea2..c95b5f9 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPSTrustManager.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPSTrustManager.java
@@ -38,15 +38,15 @@ public class FTPSTrustManager implements X509TrustManager
      * No-op
      */
     @Override
-    public void checkClientTrusted(X509Certificate[] certificates, String authType)
+    public void checkClientTrusted(final X509Certificate[] certificates, final String authType)
     {
         return;
     }
 
     @Override
-    public void checkServerTrusted(X509Certificate[] certificates, String authType) throws CertificateException
+    public void checkServerTrusted(final X509Certificate[] certificates, final String authType) throws CertificateException
     {
-        for (X509Certificate certificate : certificates)
+        for (final X509Certificate certificate : certificates)
         {
             certificate.checkValidity();
         }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.java
index 7c26643..b0add89 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.java
@@ -33,7 +33,7 @@ public class CompositeFileEntryParser extends FTPFileEntryParserImpl
     private final FTPFileEntryParser[] ftpFileEntryParsers;
     private FTPFileEntryParser cachedFtpFileEntryParser;
 
-    public CompositeFileEntryParser(FTPFileEntryParser[] ftpFileEntryParsers)
+    public CompositeFileEntryParser(final FTPFileEntryParser[] ftpFileEntryParsers)
     {
         super();
 
@@ -42,11 +42,11 @@ public class CompositeFileEntryParser extends FTPFileEntryParserImpl
     }
 
     @Override
-    public FTPFile parseFTPEntry(String listEntry)
+    public FTPFile parseFTPEntry(final String listEntry)
     {
         if (cachedFtpFileEntryParser != null)
         {
-            FTPFile matched = cachedFtpFileEntryParser.parseFTPEntry(listEntry);
+            final FTPFile matched = cachedFtpFileEntryParser.parseFTPEntry(listEntry);
             if (matched != null)
             {
                 return matched;
@@ -54,9 +54,9 @@ public class CompositeFileEntryParser extends FTPFileEntryParserImpl
         }
         else
         {
-            for (FTPFileEntryParser ftpFileEntryParser : ftpFileEntryParsers)
+            for (final FTPFileEntryParser ftpFileEntryParser : ftpFileEntryParsers)
             {
-                FTPFile matched = ftpFileEntryParser.parseFTPEntry(listEntry);
+                final FTPFile matched = ftpFileEntryParser.parseFTPEntry(listEntry);
                 if (matched != null)
                 {
                     cachedFtpFileEntryParser = ftpFileEntryParser;
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.java b/src/main/java/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.java
index d61693e..6e30a77 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.java
@@ -50,7 +50,7 @@ implements Configurable
      * @param regex  Regular expression used main parsing of the
      * file listing.
      */
-    public ConfigurableFTPFileEntryParserImpl(String regex)
+    public ConfigurableFTPFileEntryParserImpl(final String regex)
     {
         super(regex);
         this.timestampParser = new FTPTimestampParserImpl();
@@ -64,7 +64,7 @@ implements Configurable
      * {@link java.util.regex.Pattern#compile(String, int) Pattern#compile(String, int)}. Use 0 for none.
      * @since 3.4
      */
-    public ConfigurableFTPFileEntryParserImpl(String regex, int flags)
+    public ConfigurableFTPFileEntryParserImpl(final String regex, final int flags)
     {
         super(regex, flags);
         this.timestampParser = new FTPTimestampParserImpl();
@@ -81,7 +81,7 @@ implements Configurable
      * timestamp parse.
      * @throws ParseException on parse error
      */
-    public Calendar parseTimestamp(String timestampStr) throws ParseException {
+    public Calendar parseTimestamp(final String timestampStr) throws ParseException {
         return this.timestampParser.parseTimestamp(timestampStr);
     }
 
@@ -99,10 +99,10 @@ implements Configurable
      * each concrete subclass is used instead.
      */
     @Override
-    public void configure(FTPClientConfig config)
+    public void configure(final FTPClientConfig config)
     {
         if (this.timestampParser instanceof Configurable) {
-            FTPClientConfig defaultCfg = getDefaultConfiguration();
+            final FTPClientConfig defaultCfg = getDefaultConfiguration();
             if (config != null) {
                 if (null == config.getDefaultDateFormatStr()) {
                     config.setDefaultDateFormatStr(defaultCfg.getDefaultDateFormatStr());
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.java b/src/main/java/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.java
index 19e4c8e..196ff16 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.java
@@ -86,7 +86,7 @@ public class DefaultFTPFileEntryParserFactory
      * @see FTPFileEntryParser
      */
     @Override
-    public FTPFileEntryParser createFileEntryParser(String key)
+    public FTPFileEntryParser createFileEntryParser(final String key)
     {
         if (key == null) {
             throw new ParserInitializationException("Parser key cannot be null");
@@ -95,32 +95,32 @@ public class DefaultFTPFileEntryParserFactory
     }
 
     // Common method to process both key and config parameters.
-    private FTPFileEntryParser createFileEntryParser(String key, FTPClientConfig config) {
+    private FTPFileEntryParser createFileEntryParser(final String key, final FTPClientConfig config) {
         FTPFileEntryParser parser = null;
 
         // Is the key a possible class name?
         if (JAVA_QUALIFIED_NAME_PATTERN.matcher(key).matches()) {
             try
             {
-                Class<?> parserClass = Class.forName(key);
+                final Class<?> parserClass = Class.forName(key);
                 try {
                     parser = (FTPFileEntryParser) parserClass.newInstance();
-                } catch (ClassCastException e) {
+                } catch (final ClassCastException e) {
                     throw new ParserInitializationException(parserClass.getName()
                         + " does not implement the interface "
                         + "org.apache.commons.net.ftp.FTPFileEntryParser.", e);
-                } catch (Exception e) {
+                } catch (final Exception e) {
                     throw new ParserInitializationException("Error initializing parser", e);
-                } catch (ExceptionInInitializerError e) {
+                } catch (final ExceptionInInitializerError e) {
                     throw new ParserInitializationException("Error initializing parser", e);
                 }
-            } catch (ClassNotFoundException e) {
+            } catch (final ClassNotFoundException e) {
                 // OK, assume it is an alias
             }
         }
 
         if (parser == null) { // Now try for aliases
-            String ukey = key.toUpperCase(java.util.Locale.ENGLISH);
+            final String ukey = key.toUpperCase(java.util.Locale.ENGLISH);
             if (ukey.indexOf(FTPClientConfig.SYST_UNIX_TRIM_LEADING) >= 0)
             {
                 parser = new UnixFTPEntryParser(config, true);
@@ -199,10 +199,10 @@ public class DefaultFTPFileEntryParserFactory
      * @since 1.4
      */
     @Override
-    public FTPFileEntryParser createFileEntryParser(FTPClientConfig config)
+    public FTPFileEntryParser createFileEntryParser(final FTPClientConfig config)
     throws ParserInitializationException
     {
-        String key = config.getServerSystemKey();
+        final String key = config.getServerSystemKey();
         return createFileEntryParser(key, config);
     }
 
@@ -233,7 +233,7 @@ public class DefaultFTPFileEntryParserFactory
      * @param config the config to use, may be {@code null}
      * @return the parser
      */
-    private FTPFileEntryParser createNTFTPEntryParser(FTPClientConfig config)
+    private FTPFileEntryParser createNTFTPEntryParser(final FTPClientConfig config)
     {
         if (config != null && FTPClientConfig.SYST_NT.equals(
                 config.getServerSystemKey()))
@@ -268,7 +268,7 @@ public class DefaultFTPFileEntryParserFactory
      * @param config the config to use, may be {@code null}
      * @return the parser
      */
-    private FTPFileEntryParser createOS400FTPEntryParser(FTPClientConfig config)
+    private FTPFileEntryParser createOS400FTPEntryParser(final FTPClientConfig config)
         {
         if (config != null &&
                 FTPClientConfig.SYST_OS400.equals(config.getServerSystemKey()))
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/EnterpriseUnixFTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/EnterpriseUnixFTPEntryParser.java
index 28bd936..02d83fb 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/EnterpriseUnixFTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/EnterpriseUnixFTPEntryParser.java
@@ -83,23 +83,23 @@ public class EnterpriseUnixFTPEntryParser extends RegexFTPFileEntryParserImpl
      * @return An FTPFile instance corresponding to the supplied entry
      */
     @Override
-    public FTPFile parseFTPEntry(String entry)
+    public FTPFile parseFTPEntry(final String entry)
     {
 
-        FTPFile file = new FTPFile();
+        final FTPFile file = new FTPFile();
         file.setRawListing(entry);
 
         if (matches(entry))
         {
-            String usr = group(14);
-            String grp = group(15);
-            String filesize = group(16);
-            String mo = group(17);
-            String da = group(18);
-            String yr = group(20);
-            String hr = group(21);
-            String min = group(22);
-            String name = group(23);
+            final String usr = group(14);
+            final String grp = group(15);
+            final String filesize = group(16);
+            final String mo = group(17);
+            final String da = group(18);
+            final String yr = group(20);
+            final String hr = group(21);
+            final String min = group(22);
+            final String name = group(23);
 
             file.setType(FTPFile.FILE_TYPE);
             file.setUser(usr);
@@ -108,19 +108,19 @@ public class EnterpriseUnixFTPEntryParser extends RegexFTPFileEntryParserImpl
             {
                 file.setSize(Long.parseLong(filesize));
             }
-            catch (NumberFormatException e)
+            catch (final NumberFormatException e)
             {
                 // intentionally do nothing
             }
 
-            Calendar cal = Calendar.getInstance();
+            final Calendar cal = Calendar.getInstance();
             cal.set(Calendar.MILLISECOND, 0);
             cal.set(Calendar.SECOND, 0);
             cal.set(Calendar.MINUTE, 0);
             cal.set(Calendar.HOUR_OF_DAY, 0);
 
-            int pos = MONTHS.indexOf(mo);
-            int month = pos / 4;
+            final int pos = MONTHS.indexOf(mo);
+            final int month = pos / 4;
             final int missingUnit; // the first missing unit
             try
             {
@@ -152,7 +152,7 @@ public class EnterpriseUnixFTPEntryParser extends RegexFTPFileEntryParserImpl
                 cal.clear(missingUnit);
                 file.setTimestamp(cal);
             }
-            catch (NumberFormatException e)
+            catch (final NumberFormatException e)
             {
                 // do nothing, date will be uninitialized
             }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.java b/src/main/java/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.java
index 44cfec7..82ea58b 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.java
@@ -79,13 +79,13 @@ public class FTPTimestampParserImpl implements
      * unit found in the date format.
      * Default is 0 (to avoid dropping precision)
      */
-    private static int getEntry(SimpleDateFormat dateFormat) {
+    private static int getEntry(final SimpleDateFormat dateFormat) {
         if (dateFormat == null) {
             return 0;
         }
         final String FORMAT_CHARS="SsmHdM";
         final String pattern = dateFormat.toPattern();
-        for(char ch : FORMAT_CHARS.toCharArray()) {
+        for(final char ch : FORMAT_CHARS.toCharArray()) {
             if (pattern.indexOf(ch) != -1){ // found the character
                 switch(ch) {
                 case 'S':
@@ -109,7 +109,7 @@ public class FTPTimestampParserImpl implements
     /*
      * Find the entry in the CALENDAR_UNITS array.
      */
-    private static int indexOf(int calendarUnit) {
+    private static int indexOf(final int calendarUnit) {
         int i;
         for(i = 0; i <CALENDAR_UNITS.length; i++) {
             if (calendarUnit == CALENDAR_UNITS[i]) {
@@ -124,7 +124,7 @@ public class FTPTimestampParserImpl implements
      * the immediately preceeding unit (if any).
      * Unfortunately the clear(int) method results in setting all other units.
      */
-    private static void setPrecision(int index, Calendar working) {
+    private static void setPrecision(final int index, final Calendar working) {
         if (index <= 0) { // e.g. MILLISECONDS
             return;
         }
@@ -165,8 +165,8 @@ public class FTPTimestampParserImpl implements
      * @return a Calendar with the parsed timestamp
      */
     @Override
-    public Calendar parseTimestamp(String timestampStr) throws ParseException {
-        Calendar now = Calendar.getInstance();
+    public Calendar parseTimestamp(final String timestampStr) throws ParseException {
+        final Calendar now = Calendar.getInstance();
         return parseTimestamp(timestampStr, now);
     }
 
@@ -186,14 +186,14 @@ public class FTPTimestampParserImpl implements
      * @throws ParseException if timestamp cannot be parsed
      * @since 1.5
      */
-    public Calendar parseTimestamp(String timestampStr, Calendar serverTime) throws ParseException {
-        Calendar working = (Calendar) serverTime.clone();
+    public Calendar parseTimestamp(final String timestampStr, final Calendar serverTime) throws ParseException {
+        final Calendar working = (Calendar) serverTime.clone();
         working.setTimeZone(getServerTimeZone()); // is this needed?
 
         Date parsed = null;
 
         if (recentDateFormat != null) {
-            Calendar now = (Calendar) serverTime.clone();// Copy this, because we may change it
+            final Calendar now = (Calendar) serverTime.clone();// Copy this, because we may change it
             now.setTimeZone(this.getServerTimeZone());
             if (lenientFutureDates) {
                 // add a day to "now" so that "slop" doesn't cause a date
@@ -209,13 +209,13 @@ public class FTPTimestampParserImpl implements
             // all instances of short dates which are +- 6 months from current date.
             // TODO this won't always work for systems that use short dates +0/-12months
             // e.g. if today is Jan 1 2001 and the short date is Feb 29
-            String year = Integer.toString(now.get(Calendar.YEAR));
-            String timeStampStrPlusYear = timestampStr + " " + year;
-            SimpleDateFormat hackFormatter = new SimpleDateFormat(recentDateFormat.toPattern() + " yyyy",
+            final String year = Integer.toString(now.get(Calendar.YEAR));
+            final String timeStampStrPlusYear = timestampStr + " " + year;
+            final SimpleDateFormat hackFormatter = new SimpleDateFormat(recentDateFormat.toPattern() + " yyyy",
                     recentDateFormat.getDateFormatSymbols());
             hackFormatter.setLenient(false);
             hackFormatter.setTimeZone(recentDateFormat.getTimeZone());
-            ParsePosition pp = new ParsePosition(0);
+            final ParsePosition pp = new ParsePosition(0);
             parsed = hackFormatter.parse(timeStampStrPlusYear, pp);
             // Check if we parsed the full string, if so it must have been a short date originally
             if (parsed != null && pp.getIndex() == timeStampStrPlusYear.length()) {
@@ -228,7 +228,7 @@ public class FTPTimestampParserImpl implements
             }
         }
 
-        ParsePosition pp = new ParsePosition(0);
+        final ParsePosition pp = new ParsePosition(0);
         parsed = defaultDateFormat.parse(timestampStr, pp);
         // note, length checks are mandatory for us since
         // SimpleDateFormat methods will succeed if less than
@@ -265,7 +265,7 @@ public class FTPTimestampParserImpl implements
      * @param format The defaultDateFormat to be set.
      * @param dfs the symbols to use (may be null)
      */
-    private void setDefaultDateFormat(String format, DateFormatSymbols dfs) {
+    private void setDefaultDateFormat(final String format, final DateFormatSymbols dfs) {
         if (format != null) {
             if (dfs != null) {
                 this.defaultDateFormat = new SimpleDateFormat(format, dfs);
@@ -294,7 +294,7 @@ public class FTPTimestampParserImpl implements
      * @param format The recentDateFormat to set.
      * @param dfs the symbols to use (may be null)
      */
-    private void setRecentDateFormat(String format, DateFormatSymbols dfs) {
+    private void setRecentDateFormat(final String format, final DateFormatSymbols dfs) {
         if (format != null) {
             if (dfs != null) {
                 this.recentDateFormat = new SimpleDateFormat(format, dfs);
@@ -329,7 +329,7 @@ public class FTPTimestampParserImpl implements
      * @param serverTimeZone Time Id java.util.TimeZone id used by
      * the ftp server.  If null the client's local time zone is assumed.
      */
-    private void setServerTimeZone(String serverTimeZoneId) {
+    private void setServerTimeZone(final String serverTimeZoneId) {
         TimeZone serverTimeZone = TimeZone.getDefault();
         if (serverTimeZoneId != null) {
             serverTimeZone = TimeZone.getTimeZone(serverTimeZoneId);
@@ -364,11 +364,11 @@ public class FTPTimestampParserImpl implements
      * </p>
      */
     @Override
-    public void configure(FTPClientConfig config) {
+    public void configure(final FTPClientConfig config) {
         DateFormatSymbols dfs = null;
 
-        String languageCode = config.getServerLanguageCode();
-        String shortmonths = config.getShortMonthNames();
+        final String languageCode = config.getServerLanguageCode();
+        final String shortmonths = config.getShortMonthNames();
         if (shortmonths != null) {
             dfs = FTPClientConfig.getDateFormatSymbols(shortmonths);
         } else if (languageCode != null) {
@@ -378,10 +378,10 @@ public class FTPTimestampParserImpl implements
         }
 
 
-        String recentFormatString = config.getRecentDateFormatStr();
+        final String recentFormatString = config.getRecentDateFormatStr();
         setRecentDateFormat(recentFormatString, dfs);
 
-        String defaultFormatString = config.getDefaultDateFormatStr();
+        final String defaultFormatString = config.getDefaultDateFormatStr();
         if (defaultFormatString == null) {
             throw new IllegalArgumentException("defaultFormatString cannot be null");
         }
@@ -400,7 +400,7 @@ public class FTPTimestampParserImpl implements
     /**
      * @param lenientFutureDates The lenientFutureDates to set.
      */
-    void setLenientFutureDates(boolean lenientFutureDates) {
+    void setLenientFutureDates(final boolean lenientFutureDates) {
         this.lenientFutureDates = lenientFutureDates;
     }
 }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java
index e48897a..b304f24 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java
@@ -94,10 +94,10 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
     }
 
     @Override
-    public FTPFile parseFTPEntry(String entry) {
+    public FTPFile parseFTPEntry(final String entry) {
         if (entry.startsWith(" ")) {// leading space means no facts are present
             if (entry.length() > 1) { // is there a path name?
-                FTPFile file = new FTPFile();
+                final FTPFile file = new FTPFile();
                 file.setRawListing(entry);
                 file.setName(entry.substring(1));
                 return file;
@@ -106,7 +106,7 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
             }
 
         }
-        String parts[] = entry.split(" ",2); // Path may contain space
+        final String parts[] = entry.split(" ",2); // Path may contain space
         if (parts.length != 2 || parts[1].length() == 0) {
             return null; // no space found or no file name
         }
@@ -114,25 +114,25 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
         if (!factList.endsWith(";")) {
             return null;
         }
-        FTPFile file = new FTPFile();
+        final FTPFile file = new FTPFile();
         file.setRawListing(entry);
         file.setName(parts[1]);
-        String[] facts = factList.split(";");
-        boolean hasUnixMode = parts[0].toLowerCase(Locale.ENGLISH).contains("unix.mode=");
-        for(String fact : facts) {
-            String []factparts = fact.split("=", -1); // Don't drop empty values
+        final String[] facts = factList.split(";");
+        final boolean hasUnixMode = parts[0].toLowerCase(Locale.ENGLISH).contains("unix.mode=");
+        for(final String fact : facts) {
+            final String []factparts = fact.split("=", -1); // Don't drop empty values
 // Sample missing permission
 // drwx------   2 mirror   mirror       4096 Mar 13  2010 subversion
 // modify=20100313224553;perm=;type=dir;unique=811U282598;UNIX.group=500;UNIX.mode=0700;UNIX.owner=500; subversion
             if (factparts.length != 2) {
                 return null; // invalid - there was no "=" sign
             }
-            String factname = factparts[0].toLowerCase(Locale.ENGLISH);
-            String factvalue = factparts[1];
+            final String factname = factparts[0].toLowerCase(Locale.ENGLISH);
+            final String factvalue = factparts[1];
             if (factvalue.length() == 0) {
                 continue; // nothing to see here
             }
-            String valueLowerCase = factvalue.toLowerCase(Locale.ENGLISH);
+            final String valueLowerCase = factvalue.toLowerCase(Locale.ENGLISH);
             if ("size".equals(factname) || "sizd".equals(factname)) {
                 file.setSize(Long.parseLong(factvalue));
             }
@@ -144,7 +144,7 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
                 file.setTimestamp(parsed);
             }
             else if ("type".equals(factname)) {
-                    Integer intType = TYPE_TO_INT.get(valueLowerCase);
+                    final Integer intType = TYPE_TO_INT.get(valueLowerCase);
                     if (intType == null) {
                         file.setType(FTPFile.UNKNOWN_TYPE);
                     } else {
@@ -152,17 +152,17 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
                     }
             }
             else if (factname.startsWith("unix.")) {
-                String unixfact = factname.substring("unix.".length()).toLowerCase(Locale.ENGLISH);
+                final String unixfact = factname.substring("unix.".length()).toLowerCase(Locale.ENGLISH);
                 if ("group".equals(unixfact)){
                     file.setGroup(factvalue);
                 } else if ("owner".equals(unixfact)){
                     file.setUser(factvalue);
                 } else if ("mode".equals(unixfact)){ // e.g. 0[1]755
-                    int off = factvalue.length()-3; // only parse last 3 digits
+                    final int off = factvalue.length()-3; // only parse last 3 digits
                     for(int i=0; i < 3; i++){
-                        int ch = factvalue.charAt(off+i)-'0';
+                        final int ch = factvalue.charAt(off+i)-'0';
                         if (ch >= 0 && ch <= 7) { // Check it's valid octal
-                            for(int p : UNIX_PERMS[ch]) {
+                            for(final int p : UNIX_PERMS[ch]) {
                                 file.setPermission(UNIX_GROUPS[i], p, true);
                             }
                         } else {
@@ -185,7 +185,7 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
      * @return a Calendar entry, may be {@code null}
      * @since 3.4
      */
-    public static Calendar parseGMTdateTime(String timestamp) {
+    public static Calendar parseGMTdateTime(final String timestamp) {
         final SimpleDateFormat sdf;
         final boolean hasMillis;
         if (timestamp.contains(".")){
@@ -195,11 +195,11 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
             sdf = new SimpleDateFormat("yyyyMMddHHmmss");
             hasMillis = false;
         }
-        TimeZone GMT = TimeZone.getTimeZone("GMT");
+        final TimeZone GMT = TimeZone.getTimeZone("GMT");
         // both timezones need to be set for the parse to work OK
         sdf.setTimeZone(GMT);
-        GregorianCalendar gc = new GregorianCalendar(GMT);
-        ParsePosition pos = new ParsePosition(0);
+        final GregorianCalendar gc = new GregorianCalendar(GMT);
+        final ParsePosition pos = new ParsePosition(0);
         sdf.setLenient(false); // We want to parse the whole string
         final Date parsed = sdf.parse(timestamp, pos);
         if (pos.getIndex()  != timestamp.length()) {
@@ -215,8 +215,8 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
     //              perm-fact    = "Perm" "=" *pvals
     //              pvals        = "a" / "c" / "d" / "e" / "f" /
     //                             "l" / "m" / "p" / "r" / "w"
-    private void doUnixPerms(FTPFile file, String valueLowerCase) {
-        for(char c : valueLowerCase.toCharArray()) {
+    private void doUnixPerms(final FTPFile file, final String valueLowerCase) {
+        for(final char c : valueLowerCase.toCharArray()) {
             // TODO these are mostly just guesses at present
             switch (c) {
                 case 'a':     // (file) may APPEnd
@@ -256,7 +256,7 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
         } // each char
     }
 
-    public static FTPFile parseEntry(String entry) {
+    public static FTPFile parseEntry(final String entry) {
         return PARSER.parseFTPEntry(entry);
     }
 
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.java
index c24ca2c..f292b7f 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.java
@@ -264,7 +264,7 @@ public class MVSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
      * @return An FTPFile instance corresponding to the supplied entry
      */
     @Override
-    public FTPFile parseFTPEntry(String entry) {
+    public FTPFile parseFTPEntry(final String entry) {
         if (isType == FILE_LIST_TYPE) {
             return parseFileList(entry);
         } else if (isType == MEMBER_LIST_TYPE) {
@@ -303,12 +303,12 @@ public class MVSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
      * @param entry zosDirectoryEntry
      * @return null: entry was not parsed.
      */
-    private FTPFile parseFileList(String entry) {
+    private FTPFile parseFileList(final String entry) {
         if (matches(entry)) {
-            FTPFile file = new FTPFile();
+            final FTPFile file = new FTPFile();
             file.setRawListing(entry);
-            String name = group(2);
-            String dsorg = group(1);
+            final String name = group(2);
+            final String dsorg = group(1);
             file.setName(name);
 
             // DSORG
@@ -353,17 +353,17 @@ public class MVSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
      * @param entry zosDirectoryEntry
      * @return null: entry was not parsed.
      */
-    private FTPFile parseMemberList(String entry) {
-        FTPFile file = new FTPFile();
+    private FTPFile parseMemberList(final String entry) {
+        final FTPFile file = new FTPFile();
         if (matches(entry)) {
             file.setRawListing(entry);
-            String name = group(1);
-            String datestr = group(2) + " " + group(3);
+            final String name = group(1);
+            final String datestr = group(2) + " " + group(3);
             file.setName(name);
             file.setType(FTPFile.FILE_TYPE);
             try {
                 file.setTimestamp(super.parseTimestamp(datestr));
-            } catch (ParseException e) {
+            } catch (final ParseException e) {
                 // just ignore parsing errors.
                 // TODO check this is ok
                 // Drop thru to try simple parser
@@ -378,7 +378,7 @@ public class MVSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
          */
         if (entry != null && entry.trim().length() > 0) {
             file.setRawListing(entry);
-            String name = entry.split(" ")[0];
+            final String name = entry.split(" ")[0];
             file.setName(name);
             file.setType(FTPFile.FILE_TYPE);
             return file;
@@ -405,12 +405,12 @@ public class MVSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
      * @param entry zosDirectoryEntry
      * @return null: entry was not parsed.
      */
-    private FTPFile parseJeslevel1List(String entry) {
+    private FTPFile parseJeslevel1List(final String entry) {
         if (matches(entry)) {
-            FTPFile file = new FTPFile();
+            final FTPFile file = new FTPFile();
             if (group(3).equalsIgnoreCase("OUTPUT")) {
                 file.setRawListing(entry);
-                String name = group(2); /* Job Number, used by GET */
+                final String name = group(2); /* Job Number, used by GET */
                 file.setName(name);
                 file.setType(FTPFile.FILE_TYPE);
                 return file;
@@ -442,12 +442,12 @@ public class MVSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
      * @param entry zosDirectoryEntry
      * @return null: entry was not parsed.
      */
-    private FTPFile parseJeslevel2List(String entry) {
+    private FTPFile parseJeslevel2List(final String entry) {
         if (matches(entry)) {
-            FTPFile file = new FTPFile();
+            final FTPFile file = new FTPFile();
             if (group(4).equalsIgnoreCase("OUTPUT")) {
                 file.setRawListing(entry);
-                String name = group(2); /* Job Number, used by GET */
+                final String name = group(2); /* Job Number, used by GET */
                 file.setName(name);
                 file.setType(FTPFile.FILE_TYPE);
                 return file;
@@ -467,12 +467,12 @@ public class MVSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
      * @since 2.0
      */
     @Override
-    public List<String> preParse(List<String> orig) {
+    public List<String> preParse(final List<String> orig) {
         // simply remove the header line. Composite logic will take care of the
         // two different types of
         // list in short order.
         if (orig != null && orig.size() > 0) {
-            String header = orig.get(0);
+            final String header = orig.get(0);
             if (header.indexOf("Volume") >= 0 && header.indexOf("Dsname") >= 0) {
                 setType(FILE_LIST_TYPE);
                 super.setRegex(FILE_LIST_REGEX);
@@ -505,7 +505,7 @@ public class MVSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
      * Explicitly set the type of listing being processed.
      * @param type The listing type.
      */
-    void setType(int type) {
+    void setType(final int type) {
         isType = type;
     }
 
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/MacOsPeterFTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/MacOsPeterFTPEntryParser.java
index 3223a5c..a0ee318 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/MacOsPeterFTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/MacOsPeterFTPEntryParser.java
@@ -108,7 +108,7 @@ public class MacOsPeterFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * <code>REGEX</code> is  not a valid regular expression.
      * @since 1.4
      */
-    public MacOsPeterFTPEntryParser(FTPClientConfig config)
+    public MacOsPeterFTPEntryParser(final FTPClientConfig config)
     {
         super(REGEX);
         configure(config);
@@ -125,28 +125,28 @@ public class MacOsPeterFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * @return An FTPFile instance corresponding to the supplied entry
      */
     @Override
-    public FTPFile parseFTPEntry(String entry) {
-        FTPFile file = new FTPFile();
+    public FTPFile parseFTPEntry(final String entry) {
+        final FTPFile file = new FTPFile();
         file.setRawListing(entry);
         int type;
         boolean isDevice = false;
 
         if (matches(entry))
         {
-            String typeStr = group(1);
-            String hardLinkCount = "0";
-            String usr = null;
-            String grp = null;
-            String filesize = group(20);
-            String datestr = group(21) + " " + group(22);
+            final String typeStr = group(1);
+            final String hardLinkCount = "0";
+            final String usr = null;
+            final String grp = null;
+            final String filesize = group(20);
+            final String datestr = group(21) + " " + group(22);
             String name = group(23);
-            String endtoken = group(24);
+            final String endtoken = group(24);
 
             try
             {
                 file.setTimestamp(super.parseTimestamp(datestr));
             }
-            catch (ParseException e)
+            catch (final ParseException e)
             {
                  // intentionally do nothing
             }
@@ -190,7 +190,7 @@ public class MacOsPeterFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
                 file.setPermission(access, FTPFile.WRITE_PERMISSION,
                                    (!group(g + 1).equals("-")));
 
-                String execPerm = group(g + 2);
+                final String execPerm = group(g + 2);
                 if (!execPerm.equals("-") && !Character.isUpperCase(execPerm.charAt(0)))
                 {
                     file.setPermission(access, FTPFile.EXECUTE_PERMISSION, true);
@@ -207,7 +207,7 @@ public class MacOsPeterFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
                 {
                     file.setHardLinkCount(Integer.parseInt(hardLinkCount));
                 }
-                catch (NumberFormatException e)
+                catch (final NumberFormatException e)
                 {
                     // intentionally do nothing
                 }
@@ -220,7 +220,7 @@ public class MacOsPeterFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             {
                 file.setSize(Long.parseLong(filesize));
             }
-            catch (NumberFormatException e)
+            catch (final NumberFormatException e)
             {
                 // intentionally do nothing
             }
@@ -237,7 +237,7 @@ public class MacOsPeterFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
                 if (type == FTPFile.SYMBOLIC_LINK_TYPE)
                 {
 
-                    int end = name.indexOf(" -> ");
+                    final int end = name.indexOf(" -> ");
                     // Give up if no link indicator is present
                     if (end == -1)
                     {
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/NTFTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/NTFTPEntryParser.java
index 0711b19..010f9fb 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/NTFTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/NTFTPEntryParser.java
@@ -72,11 +72,11 @@ public class NTFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * <code>REGEX</code> is  not a valid regular expression.
      * @since 1.4
      */
-     public NTFTPEntryParser(FTPClientConfig config)
+     public NTFTPEntryParser(final FTPClientConfig config)
     {
         super(REGEX, Pattern.DOTALL);
         configure(config);
-        FTPClientConfig config2 = new FTPClientConfig(
+        final FTPClientConfig config2 = new FTPClientConfig(
                 FTPClientConfig.SYST_NT,
                 DEFAULT_DATE_FORMAT2,
                 null);
@@ -96,29 +96,29 @@ public class NTFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * @return An FTPFile instance corresponding to the supplied entry
      */
     @Override
-    public FTPFile parseFTPEntry(String entry)
+    public FTPFile parseFTPEntry(final String entry)
     {
-        FTPFile f = new FTPFile();
+        final FTPFile f = new FTPFile();
         f.setRawListing(entry);
 
         if (matches(entry))
         {
-            String datestr = group(1)+" "+group(2);
-            String dirString = group(3);
-            String size = group(4);
-            String name = group(5);
+            final String datestr = group(1)+" "+group(2);
+            final String dirString = group(3);
+            final String size = group(4);
+            final String name = group(5);
             try
             {
                 f.setTimestamp(super.parseTimestamp(datestr));
             }
-            catch (ParseException e)
+            catch (final ParseException e)
             {
                 // parsing fails, try the other date format
                 try
                 {
                     f.setTimestamp(timestampParser.parseTimestamp(datestr));
                 }
-                catch (ParseException e2)
+                catch (final ParseException e2)
                 {
                     // intentionally do nothing
                 }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.java
index f7997b8..ea81a5b 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.java
@@ -78,7 +78,7 @@ public class NetwareFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
      * <code>REGEX</code> is  not a valid regular expression.
      * @since 1.4
      */
-    public NetwareFTPEntryParser(FTPClientConfig config) {
+    public NetwareFTPEntryParser(final FTPClientConfig config) {
         super(REGEX);
         configure(config);
     }
@@ -111,20 +111,20 @@ public class NetwareFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
      * @return An FTPFile instance corresponding to the supplied entry
      */
     @Override
-    public FTPFile parseFTPEntry(String entry) {
+    public FTPFile parseFTPEntry(final String entry) {
 
-        FTPFile f = new FTPFile();
+        final FTPFile f = new FTPFile();
         if (matches(entry)) {
-            String dirString = group(1);
-            String attrib = group(2);
-            String user = group(3);
-            String size = group(4);
-            String datestr = group(5);
-            String name = group(9);
+            final String dirString = group(1);
+            final String attrib = group(2);
+            final String user = group(3);
+            final String size = group(4);
+            final String datestr = group(5);
+            final String name = group(9);
 
             try {
                 f.setTimestamp(super.parseTimestamp(datestr));
-            } catch (ParseException e) {
+            } catch (final ParseException e) {
                  // intentionally do nothing
             }
 
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.java
index 4e291f5..a5ddc5b 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.java
@@ -67,7 +67,7 @@ public class OS2FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * <code>REGEX</code> is  not a valid regular expression.
      * @since 1.4
      */
-     public OS2FTPEntryParser(FTPClientConfig config)
+     public OS2FTPEntryParser(final FTPClientConfig config)
     {
         super(REGEX);
         configure(config);
@@ -84,22 +84,22 @@ public class OS2FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * @return An FTPFile instance corresponding to the supplied entry
      */
     @Override
-    public FTPFile parseFTPEntry(String entry)
+    public FTPFile parseFTPEntry(final String entry)
     {
 
-        FTPFile f = new FTPFile();
+        final FTPFile f = new FTPFile();
         if (matches(entry))
         {
-            String size = group(1);
-            String attrib = group(2);
-            String dirString = group(3);
-            String datestr = group(4)+" "+group(5);
-            String name = group(6);
+            final String size = group(1);
+            final String attrib = group(2);
+            final String dirString = group(3);
+            final String datestr = group(4)+" "+group(5);
+            final String name = group(6);
             try
             {
                 f.setTimestamp(super.parseTimestamp(datestr));
             }
-            catch (ParseException e)
+            catch (final ParseException e)
             {
                 // intentionally do nothing
             }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java
index c45b617..74e72ab 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java
@@ -271,7 +271,7 @@ public class OS400FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * <code>REGEX</code> is  not a valid regular expression.
      * @since 1.4
      */
-    public OS400FTPEntryParser(FTPClientConfig config)
+    public OS400FTPEntryParser(final FTPClientConfig config)
     {
         super(REGEX);
         configure(config);
@@ -279,23 +279,23 @@ public class OS400FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
 
 
     @Override
-    public FTPFile parseFTPEntry(String entry)
+    public FTPFile parseFTPEntry(final String entry)
     {
 
-        FTPFile file = new FTPFile();
+        final FTPFile file = new FTPFile();
         file.setRawListing(entry);
         int type;
 
         if (matches(entry))
         {
-            String usr = group(1);
-            String filesize = group(2);
+            final String usr = group(1);
+            final String filesize = group(2);
             String datestr = "";
             if (!isNullOrEmpty(group(3)) || !isNullOrEmpty(group(4)))
             {
                 datestr = group(3)+" "+group(4);
             }
-            String typeStr = group(5);
+            final String typeStr = group(5);
             String name = group(6);
 
             boolean mustScanForPathSeparator = true;
@@ -304,7 +304,7 @@ public class OS400FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             {
                 file.setTimestamp(super.parseTimestamp(datestr));
             }
-            catch (ParseException e)
+            catch (final ParseException e)
             {
                 // intentionally do nothing
             }
@@ -379,7 +379,7 @@ public class OS400FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             {
                 file.setSize(Long.parseLong(filesize));
             }
-            catch (NumberFormatException e)
+            catch (final NumberFormatException e)
             {
                 // intentionally do nothing
             }
@@ -390,7 +390,7 @@ public class OS400FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             }
             if (mustScanForPathSeparator)
             {
-                int pos = name.lastIndexOf('/');
+                final int pos = name.lastIndexOf('/');
                 if (pos > -1)
                 {
                     name = name.substring(pos + 1);
@@ -411,7 +411,7 @@ public class OS400FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * @return <code>true</code> for <code>null</code> or empty values,
      * else <code>false</code>.
      */
-    private boolean isNullOrEmpty(String string) {
+    private boolean isNullOrEmpty(final String string) {
         if (string == null || string.length() == 0) {
             return true;
         }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/ParserInitializationException.java b/src/main/java/org/apache/commons/net/ftp/parser/ParserInitializationException.java
index 080f809..e4a7ad1 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/ParserInitializationException.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/ParserInitializationException.java
@@ -31,7 +31,7 @@ public class ParserInitializationException extends RuntimeException {
      *
      * @param message Exception message
      */
-    public ParserInitializationException(String message) {
+    public ParserInitializationException(final String message) {
         super(message);
     }
 
@@ -43,7 +43,7 @@ public class ParserInitializationException extends RuntimeException {
      * @param rootCause root cause throwable that caused
      * this to be thrown
      */
-    public ParserInitializationException(String message, Throwable rootCause) {
+    public ParserInitializationException(final String message, final Throwable rootCause) {
         super(message, rootCause);
     }
 
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java b/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java
index 50ef365..b7a46ca 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java
@@ -66,7 +66,7 @@ public abstract class RegexFTPFileEntryParserImpl extends
      * from this will bomb very quickly,  leading to easy detection.
      */
 
-    public RegexFTPFileEntryParserImpl(String regex) {
+    public RegexFTPFileEntryParserImpl(final String regex) {
         super();
         compileRegex(regex, 0);
     }
@@ -86,7 +86,7 @@ public abstract class RegexFTPFileEntryParserImpl extends
      * from this will bomb very quickly,  leading to easy detection.
      * @since 3.4
      */
-    public RegexFTPFileEntryParserImpl(String regex, final int flags) {
+    public RegexFTPFileEntryParserImpl(final String regex, final int flags) {
         super();
         compileRegex(regex, flags);
     }
@@ -99,7 +99,7 @@ public abstract class RegexFTPFileEntryParserImpl extends
      * @return true if s matches this object's regular expression.
      */
 
-    public boolean matches(String s) {
+    public boolean matches(final String s) {
         this.result = null;
         _matcher_ = pattern.matcher(s);
         if (_matcher_.matches()) {
@@ -131,7 +131,7 @@ public abstract class RegexFTPFileEntryParserImpl extends
      *         match or null if this method is called without a match having
      *         been made.
      */
-    public String group(int matchnum) {
+    public String group(final int matchnum) {
         if (this.result == null) {
             return null;
         }
@@ -146,7 +146,7 @@ public abstract class RegexFTPFileEntryParserImpl extends
      */
 
     public String getGroupsAsString() {
-        StringBuilder b = new StringBuilder();
+        final StringBuilder b = new StringBuilder();
         for (int i = 1; i <= this.result.groupCount(); i++) {
             b.append(i).append(") ").append(this.result.group(i)).append(
                     System.getProperty("line.separator"));
@@ -195,7 +195,7 @@ public abstract class RegexFTPFileEntryParserImpl extends
     private void compileRegex(final String regex, final int flags) {
         try {
             pattern = Pattern.compile(regex, flags);
-        } catch (PatternSyntaxException pse) {
+        } catch (final PatternSyntaxException pse) {
             throw new IllegalArgumentException("Unparseable regex supplied: " + regex);
         }
     }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java
index 2f12fe2..625e322 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java
@@ -174,7 +174,7 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * <code>REGEX</code> is  not a valid regular expression.
      * @since 1.4
      */
-    public UnixFTPEntryParser(FTPClientConfig config)
+    public UnixFTPEntryParser(final FTPClientConfig config)
     {
         this(config, false);
     }
@@ -192,7 +192,7 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * <code>REGEX</code> is  not a valid regular expression.
      * @since 3.4
      */
-    public UnixFTPEntryParser(FTPClientConfig config, boolean trimLeadingSpaces)
+    public UnixFTPEntryParser(final FTPClientConfig config, final boolean trimLeadingSpaces)
     {
         super(REGEX);
         configure(config);
@@ -203,10 +203,10 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * Preparse the list to discard "total nnn" lines
      */
     @Override
-    public List<String> preParse(List<String> original) {
-        ListIterator<String> iter = original.listIterator();
+    public List<String> preParse(final List<String> original) {
+        final ListIterator<String> iter = original.listIterator();
         while (iter.hasNext()) {
-            String entry = iter.next();
+            final String entry = iter.next();
             if (entry.matches("^total \\d+$")) { // NET-389
                 iter.remove();
             }
@@ -225,20 +225,20 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * @return An FTPFile instance corresponding to the supplied entry
      */
     @Override
-    public FTPFile parseFTPEntry(String entry) {
-        FTPFile file = new FTPFile();
+    public FTPFile parseFTPEntry(final String entry) {
+        final FTPFile file = new FTPFile();
         file.setRawListing(entry);
         int type;
         boolean isDevice = false;
 
         if (matches(entry))
         {
-            String typeStr = group(1);
-            String hardLinkCount = group(15);
-            String usr = group(16);
-            String grp = group(17);
-            String filesize = group(18);
-            String datestr = group(19) + " " + group(20);
+            final String typeStr = group(1);
+            final String hardLinkCount = group(15);
+            final String usr = group(16);
+            final String grp = group(17);
+            final String filesize = group(18);
+            final String datestr = group(19) + " " + group(20);
             String name = group(21);
             if (trimLeadingSpaces) {
                 name = name.replaceFirst("^\\s+", "");
@@ -247,7 +247,7 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             try
             {
                 if (group(19).contains(JA_MONTH)) { // special processing for Japanese format
-                    FTPTimestampParserImpl jaParser = new FTPTimestampParserImpl();
+                    final FTPTimestampParserImpl jaParser = new FTPTimestampParserImpl();
                     jaParser.configure(new FTPClientConfig(
                             FTPClientConfig.SYST_UNIX, DEFAULT_DATE_FORMAT_JA, DEFAULT_RECENT_DATE_FORMAT_JA));
                     file.setTimestamp(jaParser.parseTimestamp(datestr));
@@ -255,7 +255,7 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
                     file.setTimestamp(super.parseTimestamp(datestr));
                 }
             }
-            catch (ParseException e)
+            catch (final ParseException e)
             {
                  // intentionally do nothing
             }
@@ -299,7 +299,7 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
                 file.setPermission(access, FTPFile.WRITE_PERMISSION,
                                    (!group(g + 1).equals("-")));
 
-                String execPerm = group(g + 2);
+                final String execPerm = group(g + 2);
                 if (!execPerm.equals("-") && !Character.isUpperCase(execPerm.charAt(0)))
                 {
                     file.setPermission(access, FTPFile.EXECUTE_PERMISSION, true);
@@ -316,7 +316,7 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
                 {
                     file.setHardLinkCount(Integer.parseInt(hardLinkCount));
                 }
-                catch (NumberFormatException e)
+                catch (final NumberFormatException e)
                 {
                     // intentionally do nothing
                 }
@@ -329,7 +329,7 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             {
                 file.setSize(Long.parseLong(filesize));
             }
-            catch (NumberFormatException e)
+            catch (final NumberFormatException e)
             {
                 // intentionally do nothing
             }
@@ -339,7 +339,7 @@ public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             if (type == FTPFile.SYMBOLIC_LINK_TYPE)
             {
 
-                int end = name.indexOf(" -> ");
+                final int end = name.indexOf(" -> ");
                 // Give up if no link indicator is present
                 if (end == -1)
                 {
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.java
index 2ac815d..3756181 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.java
@@ -86,7 +86,7 @@ public class VMSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * <code>REGEX</code> is  not a valid regular expression.
      * @since 1.4
      */
-    public VMSFTPEntryParser(FTPClientConfig config)
+    public VMSFTPEntryParser(final FTPClientConfig config)
     {
         super(REGEX);
         configure(config);
@@ -103,20 +103,20 @@ public class VMSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * @return An FTPFile instance corresponding to the supplied entry
      */
     @Override
-    public FTPFile parseFTPEntry(String entry)
+    public FTPFile parseFTPEntry(final String entry)
     {
         //one block in VMS equals 512 bytes
-        long longBlock = 512;
+        final long longBlock = 512;
 
         if (matches(entry))
         {
-            FTPFile f = new FTPFile();
+            final FTPFile f = new FTPFile();
             f.setRawListing(entry);
             String name = group(1);
-            String size = group(2);
-            String datestr = group(3)+" "+group(4);
-            String owner = group(5);
-            String permissions[] = new String[3];
+            final String size = group(2);
+            final String datestr = group(3)+" "+group(4);
+            final String owner = group(5);
+            final String permissions[] = new String[3];
             permissions[0]= group(9);
             permissions[1]= group(10);
             permissions[2]= group(11);
@@ -124,7 +124,7 @@ public class VMSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             {
                 f.setTimestamp(super.parseTimestamp(datestr));
             }
-            catch (ParseException e)
+            catch (final ParseException e)
             {
                  // intentionally do nothing
             }
@@ -132,7 +132,7 @@ public class VMSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
 
             String grp;
             String user;
-            StringTokenizer t = new StringTokenizer(owner, ",");
+            final StringTokenizer t = new StringTokenizer(owner, ",");
             switch (t.countTokens()) {
                 case 1:
                     grp  = null;
@@ -168,7 +168,7 @@ public class VMSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             }
             //size is retreived in blocks and needs to be put in bytes
             //for us humans and added to the FTPFile array
-            long sizeInBytes = Long.parseLong(size) * longBlock;
+            final long sizeInBytes = Long.parseLong(size) * longBlock;
             f.setSize(sizeInBytes);
 
             f.setGroup(grp);
@@ -182,7 +182,7 @@ public class VMSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
             //iterate for OWNER GROUP WORLD permissions
             for (int access = 0; access < 3; access++)
             {
-                String permission = permissions[access];
+                final String permission = permissions[access];
 
                 f.setPermission(access, FTPFile.READ_PERMISSION, permission.indexOf('R')>=0);
                 f.setPermission(access, FTPFile.WRITE_PERMISSION, permission.indexOf('W')>=0);
@@ -208,10 +208,10 @@ public class VMSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * @throws IOException thrown on any IO Error reading from the reader.
      */
     @Override
-    public String readNextEntry(BufferedReader reader) throws IOException
+    public String readNextEntry(final BufferedReader reader) throws IOException
     {
         String line = reader.readLine();
-        StringBuilder entry = new StringBuilder();
+        final StringBuilder entry = new StringBuilder();
         while (line != null)
         {
             if (line.startsWith("Directory") || line.startsWith("Total")) {
@@ -257,8 +257,8 @@ public class VMSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
      * @deprecated (2.2) No other FTPFileEntryParser implementations have this method.
      */
     @Deprecated
-    public FTPFile[] parseFileList(java.io.InputStream listStream) throws IOException {
-        org.apache.commons.net.ftp.FTPListParseEngine engine = new org.apache.commons.net.ftp.FTPListParseEngine(this);
+    public FTPFile[] parseFileList(final java.io.InputStream listStream) throws IOException {
+        final org.apache.commons.net.ftp.FTPListParseEngine engine = new org.apache.commons.net.ftp.FTPListParseEngine(this);
         engine.readServerList(listStream, null);
         return engine.getFiles();
     }
diff --git a/src/main/java/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java
index 2e2619a..07e65ce 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java
@@ -74,7 +74,7 @@ public class VMSVersioningFTPEntryParser extends VMSFTPEntryParser
      * <code>REGEX</code> is  not a valid regular expression.
      * @since 1.4
      */
-    public VMSVersioningFTPEntryParser(FTPClientConfig config)
+    public VMSVersioningFTPEntryParser(final FTPClientConfig config)
     {
         super();
         configure(config);
@@ -83,7 +83,7 @@ public class VMSVersioningFTPEntryParser extends VMSFTPEntryParser
             //_preparse_matcher_ = new Perl5Matcher();
             _preparse_pattern_ = Pattern.compile(PRE_PARSE_REGEX);
         }
-        catch (PatternSyntaxException pse)
+        catch (final PatternSyntaxException pse)
         {
             throw new IllegalArgumentException (
                 "Unparseable regex supplied:  " + PRE_PARSE_REGEX);
@@ -101,19 +101,19 @@ public class VMSVersioningFTPEntryParser extends VMSFTPEntryParser
      * @return Original list purged of duplicates
      */
     @Override
-    public List<String> preParse(List<String> original) {
-        HashMap<String, Integer> existingEntries = new HashMap<>();
-        ListIterator<String> iter = original.listIterator();
+    public List<String> preParse(final List<String> original) {
+        final HashMap<String, Integer> existingEntries = new HashMap<>();
+        final ListIterator<String> iter = original.listIterator();
         while (iter.hasNext()) {
-            String entry = iter.next().trim();
+            final String entry = iter.next().trim();
             MatchResult result = null;
-            Matcher _preparse_matcher_ = _preparse_pattern_.matcher(entry);
+            final Matcher _preparse_matcher_ = _preparse_pattern_.matcher(entry);
             if (_preparse_matcher_.matches()) {
                 result = _preparse_matcher_.toMatchResult();
-                String name = result.group(1);
-                String version = result.group(2);
-                Integer nv = Integer.valueOf(version);
-                Integer existing = existingEntries.get(name);
+                final String name = result.group(1);
+                final String version = result.group(2);
+                final Integer nv = Integer.valueOf(version);
+                final Integer existing = existingEntries.get(name);
                 if (null != existing) {
                     if (nv.intValue() < existing.intValue()) {
                         iter.remove();  // removes older version from original list.
@@ -129,15 +129,15 @@ public class VMSVersioningFTPEntryParser extends VMSFTPEntryParser
         // we now must remove those with smaller than the largest version number
         // for each name that were found before the largest
         while (iter.hasPrevious()) {
-            String entry = iter.previous().trim();
+            final String entry = iter.previous().trim();
             MatchResult result = null;
-            Matcher _preparse_matcher_ = _preparse_pattern_.matcher(entry);
+            final Matcher _preparse_matcher_ = _preparse_pattern_.matcher(entry);
             if (_preparse_matcher_.matches()) {
                 result = _preparse_matcher_.toMatchResult();
-                String name = result.group(1);
-                String version = result.group(2);
-                Integer nv = Integer.valueOf(version);
-                Integer existing = existingEntries.get(name);
+                final String name = result.group(1);
+                final String version = result.group(2);
+                final Integer nv = Integer.valueOf(version);
+                final Integer existing = existingEntries.get(name);
                 if (null != existing) {
                     if (nv.intValue() < existing.intValue()) {
                         iter.remove(); // removes older version from original list.
diff --git a/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java b/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
index 036015f..9f08147 100644
--- a/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
+++ b/src/main/java/org/apache/commons/net/imap/AuthenticatingIMAPClient.java
@@ -46,7 +46,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
      * Constructor for AuthenticatingIMAPClient that delegates to IMAPSClient.
      * @param implicit The security mode (Implicit/Explicit).
      */
-    public AuthenticatingIMAPClient(boolean implicit)
+    public AuthenticatingIMAPClient(final boolean implicit)
     {
         this(DEFAULT_PROTOCOL, implicit);
     }
@@ -55,7 +55,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
      * Constructor for AuthenticatingIMAPClient that delegates to IMAPSClient.
      * @param proto the protocol.
      */
-    public AuthenticatingIMAPClient(String proto)
+    public AuthenticatingIMAPClient(final String proto)
     {
         this(proto, false);
     }
@@ -65,7 +65,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
      * @param proto the protocol.
      * @param implicit The security mode(Implicit/Explicit).
      */
-    public AuthenticatingIMAPClient(String proto, boolean implicit)
+    public AuthenticatingIMAPClient(final String proto, final boolean implicit)
     {
         this(proto, implicit, null);
     }
@@ -76,7 +76,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
      * @param implicit The security mode(Implicit/Explicit).
      * @param ctx the context
      */
-    public AuthenticatingIMAPClient(String proto, boolean implicit, SSLContext ctx)
+    public AuthenticatingIMAPClient(final String proto, final boolean implicit, final SSLContext ctx)
     {
         super(proto, implicit, ctx);
     }
@@ -86,7 +86,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
      * @param implicit The security mode(Implicit/Explicit).
      * @param ctx A pre-configured SSL Context.
      */
-    public AuthenticatingIMAPClient(boolean implicit, SSLContext ctx)
+    public AuthenticatingIMAPClient(final boolean implicit, final SSLContext ctx)
     {
         this(DEFAULT_PROTOCOL, implicit, ctx);
     }
@@ -95,7 +95,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
      * Constructor for AuthenticatingIMAPClient that delegates to IMAPSClient.
      * @param context A pre-configured SSL Context.
      */
-    public AuthenticatingIMAPClient(SSLContext context)
+    public AuthenticatingIMAPClient(final SSLContext context)
     {
         this(false, context);
     }
@@ -117,8 +117,8 @@ public class AuthenticatingIMAPClient extends IMAPSClient
      * @throws InvalidKeySpecException If the CRAM hash algorithm
      *      failed to use the given password.
      */
-    public boolean authenticate(AuthenticatingIMAPClient.AUTH_METHOD method,
-                        String username, String password)
+    public boolean authenticate(final AuthenticatingIMAPClient.AUTH_METHOD method,
+                        final String username, final String password)
                         throws IOException, NoSuchAlgorithmException,
                         InvalidKeyException, InvalidKeySpecException
     {
@@ -142,8 +142,8 @@ public class AuthenticatingIMAPClient extends IMAPSClient
      * @throws InvalidKeySpecException If the CRAM hash algorithm
      *      failed to use the given password.
      */
-    public boolean auth(AuthenticatingIMAPClient.AUTH_METHOD method,
-                        String username, String password)
+    public boolean auth(final AuthenticatingIMAPClient.AUTH_METHOD method,
+                        final String username, final String password)
                         throws IOException, NoSuchAlgorithmException,
                         InvalidKeyException, InvalidKeySpecException
     {
@@ -156,7 +156,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
             case PLAIN:
             {
                 // the server sends an empty response ("+ "), so we don't have to read it.
-                int result = sendData(
+                final int result = sendData(
                     Base64.encodeBase64StringUnChunked(("\000" + username + "\000" + password)
                             .getBytes(getCharset())));
                 if (result == IMAPReply.OK)
@@ -168,20 +168,20 @@ public class AuthenticatingIMAPClient extends IMAPSClient
             case CRAM_MD5:
             {
                 // get the CRAM challenge (after "+ ")
-                byte[] serverChallenge = Base64.decodeBase64(getReplyString().substring(2).trim());
+                final byte[] serverChallenge = Base64.decodeBase64(getReplyString().substring(2).trim());
                 // get the Mac instance
-                Mac hmac_md5 = Mac.getInstance("HmacMD5");
+                final Mac hmac_md5 = Mac.getInstance("HmacMD5");
                 hmac_md5.init(new SecretKeySpec(password.getBytes(getCharset()), "HmacMD5"));
                 // compute the result:
-                byte[] hmacResult = _convertToHexString(hmac_md5.doFinal(serverChallenge)).getBytes(getCharset());
+                final byte[] hmacResult = _convertToHexString(hmac_md5.doFinal(serverChallenge)).getBytes(getCharset());
                 // join the byte arrays to form the reply
-                byte[] usernameBytes = username.getBytes(getCharset());
-                byte[] toEncode = new byte[usernameBytes.length + 1 /* the space */ + hmacResult.length];
+                final byte[] usernameBytes = username.getBytes(getCharset());
+                final byte[] toEncode = new byte[usernameBytes.length + 1 /* the space */ + hmacResult.length];
                 System.arraycopy(usernameBytes, 0, toEncode, 0, usernameBytes.length);
                 toEncode[usernameBytes.length] = ' ';
                 System.arraycopy(hmacResult, 0, toEncode, usernameBytes.length + 1, hmacResult.length);
                 // send the reply and read the server code:
-                int result = sendData(Base64.encodeBase64StringUnChunked(toEncode));
+                final int result = sendData(Base64.encodeBase64StringUnChunked(toEncode));
                 if (result == IMAPReply.OK)
                 {
                     setState(IMAP.IMAPState.AUTH_STATE);
@@ -196,7 +196,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
                 {
                     return false;
                 }
-                int result = sendData(Base64.encodeBase64StringUnChunked(password.getBytes(getCharset())));
+                final int result = sendData(Base64.encodeBase64StringUnChunked(password.getBytes(getCharset())));
                 if (result == IMAPReply.OK)
                 {
                     setState(IMAP.IMAPState.AUTH_STATE);
@@ -206,7 +206,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
             case XOAUTH:
             case XOAUTH2:
             {
-                int result = sendData(username);
+                final int result = sendData(username);
                 if (result == IMAPReply.OK)
                 {
                     setState(IMAP.IMAPState.AUTH_STATE);
@@ -224,10 +224,10 @@ public class AuthenticatingIMAPClient extends IMAPSClient
      * @param a The byte array to convert.
      * @return The resulting String of hex codes.
      */
-    private String _convertToHexString(byte[] a)
+    private String _convertToHexString(final byte[] a)
     {
-        StringBuilder result = new StringBuilder(a.length*2);
-        for (byte element : a)
+        final StringBuilder result = new StringBuilder(a.length*2);
+        for (final byte element : a)
         {
             if ( (element & 0x0FF) <= 15 ) {
                 result.append("0");
@@ -255,7 +255,7 @@ public class AuthenticatingIMAPClient extends IMAPSClient
 
         private final String authName;
 
-        private AUTH_METHOD(String name){
+        private AUTH_METHOD(final String name){
             this.authName=name;
         }
         /**
diff --git a/src/main/java/org/apache/commons/net/imap/IMAP.java b/src/main/java/org/apache/commons/net/imap/IMAP.java
index 9ac0290..3650a95 100644
--- a/src/main/java/org/apache/commons/net/imap/IMAP.java
+++ b/src/main/java/org/apache/commons/net/imap/IMAP.java
@@ -102,7 +102,7 @@ public class IMAP extends SocketClient
      */
     public static final IMAPChunkListener TRUE_CHUNK_LISTENER = new IMAPChunkListener(){
         @Override
-        public boolean chunkReceived(IMAP imap) {
+        public boolean chunkReceived(final IMAP imap) {
             return true;
         }
 
@@ -142,7 +142,7 @@ public class IMAP extends SocketClient
      * @param wantTag {@code true} if the command expects a tagged response.
      * @throws IOException
      */
-    private void __getReply(boolean wantTag) throws IOException
+    private void __getReply(final boolean wantTag) throws IOException
     {
         _replyLines.clear();
         String line = _reader.readLine();
@@ -166,9 +166,9 @@ public class IMAP extends SocketClient
                     literalCount -= (line.length() + 2); // Allow for CRLF
                 }
                 if (isMultiLine) {
-                    IMAPChunkListener il = __chunkListener;
+                    final IMAPChunkListener il = __chunkListener;
                     if (il != null) {
-                        boolean clear = il.chunkReceived(this);
+                        final boolean clear = il.chunkReceived(this);
                         if (clear) {
                             fireReplyReceived(IMAPReply.PARTIAL, getReplyString());
                             _replyLines.clear();
@@ -200,7 +200,7 @@ public class IMAP extends SocketClient
      * @since 3.4
      */
     @Override
-    protected void fireReplyReceived(int replyCode, String ignored) {
+    protected void fireReplyReceived(final int replyCode, final String ignored) {
         if (getCommandSupport().getListenerCount() > 0) {
             getCommandSupport().fireReplyReceived(replyCode, getReplyString());
         }
@@ -220,7 +220,7 @@ public class IMAP extends SocketClient
         __writer =
           new BufferedWriter(new OutputStreamWriter(_output_,
                                                     __DEFAULT_ENCODING));
-        int tmo = getSoTimeout();
+        final int tmo = getSoTimeout();
         if (tmo <= 0) { // none set currently
             setSoTimeout(connectTimeout); // use connect timeout to ensure we don't block forever
         }
@@ -237,7 +237,7 @@ public class IMAP extends SocketClient
      *
      * @param state  The new state.
      */
-    protected void setState(IMAP.IMAPState state)
+    protected void setState(final IMAP.IMAPState state)
     {
         __state = state;
     }
@@ -280,9 +280,9 @@ public class IMAP extends SocketClient
      * @param args     The command arguments.
      * @return  The server reply code (either IMAPReply.OK, IMAPReply.NO or IMAPReply.BAD).
      */
-    private int sendCommandWithID(String commandID, String command, String args) throws IOException
+    private int sendCommandWithID(final String commandID, final String command, final String args) throws IOException
     {
-        StringBuilder __commandBuffer = new StringBuilder();
+        final StringBuilder __commandBuffer = new StringBuilder();
         if (commandID != null)
         {
             __commandBuffer.append(commandID);
@@ -297,7 +297,7 @@ public class IMAP extends SocketClient
         }
         __commandBuffer.append(SocketClient.NETASCII_EOL);
 
-        String message = __commandBuffer.toString();
+        final String message = __commandBuffer.toString();
         __writer.write(message);
         __writer.flush();
 
@@ -315,7 +315,7 @@ public class IMAP extends SocketClient
      * @return  The server reply code (see IMAPReply).
      * @throws IOException on error
      */
-    public int sendCommand(String command, String args) throws IOException
+    public int sendCommand(final String command, final String args) throws IOException
     {
         return sendCommandWithID(generateCommandID(), command, args);
     }
@@ -328,7 +328,7 @@ public class IMAP extends SocketClient
      * @return  The server reply code (see IMAPReply).
      * @throws IOException on error
      */
-    public int sendCommand(String command) throws IOException
+    public int sendCommand(final String command) throws IOException
     {
         return sendCommand(command, null);
     }
@@ -342,7 +342,7 @@ public class IMAP extends SocketClient
      * @return  The server reply code (see IMAPReply).
      * @throws IOException on error
      */
-    public int sendCommand(IMAPCommand command, String args) throws IOException
+    public int sendCommand(final IMAPCommand command, final String args) throws IOException
     {
         return sendCommand(command.getIMAPCommand(), args);
     }
@@ -356,7 +356,7 @@ public class IMAP extends SocketClient
      * @return  {@code true} if the command was successful
      * @throws IOException on error
      */
-    public boolean doCommand(IMAPCommand command, String args) throws IOException
+    public boolean doCommand(final IMAPCommand command, final String args) throws IOException
     {
         return IMAPReply.isSuccess(sendCommand(command, args));
     }
@@ -370,7 +370,7 @@ public class IMAP extends SocketClient
      * @return  The server reply code (see IMAPReply).
      * @throws IOException on error
     **/
-    public int sendCommand(IMAPCommand command) throws IOException
+    public int sendCommand(final IMAPCommand command) throws IOException
     {
         return sendCommand(command, null);
     }
@@ -383,7 +383,7 @@ public class IMAP extends SocketClient
      * @return  {@code true} if the command was successful
      * @throws IOException on error
      */
-    public boolean doCommand(IMAPCommand command) throws IOException
+    public boolean doCommand(final IMAPCommand command) throws IOException
     {
         return IMAPReply.isSuccess(sendCommand(command));
     }
@@ -395,7 +395,7 @@ public class IMAP extends SocketClient
      * @return  The server reply code (see IMAPReply).
      * @throws IOException on error
      */
-    public int sendData(String command) throws IOException
+    public int sendData(final String command) throws IOException
     {
         return sendCommandWithID(null, command, null);
     }
@@ -419,8 +419,8 @@ public class IMAP extends SocketClient
      */
     public String getReplyString()
     {
-        StringBuilder buffer = new StringBuilder(256);
-        for (String s : _replyLines)
+        final StringBuilder buffer = new StringBuilder(256);
+        for (final String s : _replyLines)
         {
             buffer.append(s);
             buffer.append(SocketClient.NETASCII_EOL);
@@ -440,7 +440,7 @@ public class IMAP extends SocketClient
      * @see #TRUE_CHUNK_LISTENER
      * @since 3.4
      */
-    public void setChunkListener(IMAPChunkListener listener) {
+    public void setChunkListener(final IMAPChunkListener listener) {
         __chunkListener = listener;
     }
 
@@ -450,7 +450,7 @@ public class IMAP extends SocketClient
      */
     protected String generateCommandID()
     {
-        String res = new String (_initialID);
+        final String res = new String (_initialID);
         // "increase" the ID for the next call
         boolean carry = true; // want to increment initially
         for (int i = _initialID.length-1; carry && i>=0; i--)
@@ -480,7 +480,7 @@ public class IMAP extends SocketClient
      * @param input the value to be quoted, may be null
      * @return the quoted value
      */
-    static String quoteMailboxName(String input) {
+    static String quoteMailboxName(final String input) {
         if (input == null) { // Don't throw NPE here
             return null;
         }
diff --git a/src/main/java/org/apache/commons/net/imap/IMAPClient.java b/src/main/java/org/apache/commons/net/imap/IMAPClient.java
index 51e306f..4494bc8 100644
--- a/src/main/java/org/apache/commons/net/imap/IMAPClient.java
+++ b/src/main/java/org/apache/commons/net/imap/IMAPClient.java
@@ -85,7 +85,7 @@ public class IMAPClient extends IMAP
      * @throws IOException If a network I/O error occurs in the process of
      *            logging in.
      */
-    public boolean login(String username, String password) throws IOException
+    public boolean login(final String username, final String password) throws IOException
     {
         if (getState() != IMAP.IMAPState.NOT_AUTH_STATE)
         {
@@ -110,7 +110,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean select(String mailboxName) throws IOException
+    public boolean select(final String mailboxName) throws IOException
     {
         return doCommand (IMAPCommand.SELECT, quoteMailboxName(mailboxName));
     }
@@ -121,7 +121,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean examine(String mailboxName) throws IOException
+    public boolean examine(final String mailboxName) throws IOException
     {
         return doCommand (IMAPCommand.EXAMINE, quoteMailboxName(mailboxName));
     }
@@ -132,7 +132,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean create(String mailboxName) throws IOException
+    public boolean create(final String mailboxName) throws IOException
     {
         return doCommand (IMAPCommand.CREATE, quoteMailboxName(mailboxName));
     }
@@ -143,7 +143,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean delete(String mailboxName) throws IOException
+    public boolean delete(final String mailboxName) throws IOException
     {
         return doCommand (IMAPCommand.DELETE, quoteMailboxName(mailboxName));
     }
@@ -155,7 +155,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean rename(String oldMailboxName, String newMailboxName) throws IOException
+    public boolean rename(final String oldMailboxName, final String newMailboxName) throws IOException
     {
         return doCommand (IMAPCommand.RENAME, quoteMailboxName(oldMailboxName) + " " + quoteMailboxName(newMailboxName));
     }
@@ -166,7 +166,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean subscribe(String mailboxName) throws IOException
+    public boolean subscribe(final String mailboxName) throws IOException
     {
         return doCommand (IMAPCommand.SUBSCRIBE, quoteMailboxName(mailboxName));
     }
@@ -177,7 +177,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean unsubscribe(String mailboxName) throws IOException
+    public boolean unsubscribe(final String mailboxName) throws IOException
     {
         return doCommand (IMAPCommand.UNSUBSCRIBE, quoteMailboxName(mailboxName));
     }
@@ -194,7 +194,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean list(String refName, String mailboxName) throws IOException
+    public boolean list(final String refName, final String mailboxName) throws IOException
     {
         return doCommand (IMAPCommand.LIST, quoteMailboxName(refName) + " " + quoteMailboxName(mailboxName));
     }
@@ -207,7 +207,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean lsub(String refName, String mailboxName) throws IOException
+    public boolean lsub(final String refName, final String mailboxName) throws IOException
     {
         return doCommand (IMAPCommand.LSUB, quoteMailboxName(refName) + " " + quoteMailboxName(mailboxName));
     }
@@ -219,13 +219,13 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean status(String mailboxName, String[] itemNames) throws IOException
+    public boolean status(final String mailboxName, final String[] itemNames) throws IOException
     {
         if (itemNames == null || itemNames.length < 1) {
             throw new IllegalArgumentException("STATUS command requires at least one data item name");
         }
 
-        StringBuilder sb = new StringBuilder();
+        final StringBuilder sb = new StringBuilder();
         sb.append(quoteMailboxName(mailboxName));
 
         sb.append(" (");
@@ -251,9 +251,9 @@ public class IMAPClient extends IMAP
      * @throws IOException If a network I/O error occurs.
      * @since 3.4
      */
-    public boolean append(String mailboxName, String flags, String datetime, String message) throws IOException
+    public boolean append(final String mailboxName, final String flags, final String datetime, final String message) throws IOException
     {
-        StringBuilder args = new StringBuilder(quoteMailboxName(mailboxName));
+        final StringBuilder args = new StringBuilder(quoteMailboxName(mailboxName));
         if (flags != null) {
             args.append(" ").append(flags);
         }
@@ -288,7 +288,7 @@ public class IMAPClient extends IMAP
      * Use {@link #append(String, String, String, String)} instead.
      */
     @Deprecated
-    public boolean append(String mailboxName, String flags, String datetime) throws IOException
+    public boolean append(final String mailboxName, final String flags, final String datetime) throws IOException
     {
         String args = mailboxName;
         if (flags != null) {
@@ -313,7 +313,7 @@ public class IMAPClient extends IMAP
      * Use {@link #append(String, String, String, String)} instead.
      */
     @Deprecated
-    public boolean append(String mailboxName) throws IOException
+    public boolean append(final String mailboxName) throws IOException
     {
         return append(mailboxName, null, null);
     }
@@ -357,7 +357,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean search(String charset, String criteria) throws IOException
+    public boolean search(final String charset, final String criteria) throws IOException
     {
         String args = "";
         if (charset != null) {
@@ -373,7 +373,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean search(String criteria) throws IOException
+    public boolean search(final String criteria) throws IOException
     {
         return search(null, criteria);
     }
@@ -389,7 +389,7 @@ public class IMAPClient extends IMAP
      * @see #getReplyString()
      * @see #getReplyStrings()
      */
-    public boolean fetch(String sequenceSet, String itemNames) throws IOException
+    public boolean fetch(final String sequenceSet, final String itemNames) throws IOException
     {
         return doCommand (IMAPCommand.FETCH, sequenceSet + " " + itemNames);
     }
@@ -402,7 +402,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean store(String sequenceSet, String itemNames, String itemValues)
+    public boolean store(final String sequenceSet, final String itemNames, final String itemValues)
         throws IOException
     {
         return doCommand (IMAPCommand.STORE, sequenceSet + " " + itemNames + " " + itemValues);
@@ -415,7 +415,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean copy(String sequenceSet, String mailboxName) throws IOException
+    public boolean copy(final String sequenceSet, final String mailboxName) throws IOException
     {
         return doCommand (IMAPCommand.COPY, sequenceSet + " " + quoteMailboxName(mailboxName));
     }
@@ -427,7 +427,7 @@ public class IMAPClient extends IMAP
      * @return {@code true} if the command was successful,{@code false} if not.
      * @throws IOException If a network I/O error occurs.
      */
-    public boolean uid(String command, String commandArgs) throws IOException
+    public boolean uid(final String command, final String commandArgs) throws IOException
     {
         return doCommand (IMAPCommand.UID, command + " " + commandArgs);
     }
diff --git a/src/main/java/org/apache/commons/net/imap/IMAPCommand.java b/src/main/java/org/apache/commons/net/imap/IMAPCommand.java
index 764800e..545ae92 100644
--- a/src/main/java/org/apache/commons/net/imap/IMAPCommand.java
+++ b/src/main/java/org/apache/commons/net/imap/IMAPCommand.java
@@ -73,23 +73,23 @@ public enum IMAPCommand
         this(null);
     }
 
-    IMAPCommand(String name){
+    IMAPCommand(final String name){
         this(name, 0);
     }
 
-    IMAPCommand(int paramCount){
+    IMAPCommand(final int paramCount){
         this(null, paramCount, paramCount);
    }
 
-    IMAPCommand(int minCount, int maxCount){
+    IMAPCommand(final int minCount, final int maxCount){
         this(null, minCount, maxCount);
    }
 
-    IMAPCommand(String name, int paramCount){
+    IMAPCommand(final String name, final int paramCount){
         this(name, paramCount, paramCount);
     }
 
-    IMAPCommand(String name, int minCount, int maxCount){
+    IMAPCommand(final String name, final int minCount, final int maxCount){
         this.imapCommand = name;
         this.minParamCount = minCount;
         this.maxParamCount = maxCount;
@@ -101,7 +101,7 @@ public enum IMAPCommand
      * @param command the IMAPCommand whose command string is required.
      * @return The IMAP protocol string command corresponding to a command code.
      */
-    public static final String getCommand(IMAPCommand command) {
+    public static final String getCommand(final IMAPCommand command) {
         return command.getIMAPCommand();
     }
 
diff --git a/src/main/java/org/apache/commons/net/imap/IMAPReply.java b/src/main/java/org/apache/commons/net/imap/IMAPReply.java
index d7a739d..753dd81 100644
--- a/src/main/java/org/apache/commons/net/imap/IMAPReply.java
+++ b/src/main/java/org/apache/commons/net/imap/IMAPReply.java
@@ -73,7 +73,7 @@ public final class IMAPReply
      * @param line to be checked
      * @return {@code true} if the line is untagged
      */
-    public static boolean isUntagged(String line) {
+    public static boolean isUntagged(final String line) {
         return line.startsWith(IMAP_UNTAGGED_PREFIX);
     }
 
@@ -82,7 +82,7 @@ public final class IMAPReply
      * @param line the line to be checked
      * @return {@code true} if the line is untagged
      */
-    public static boolean isContinuation(String line) {
+    public static boolean isContinuation(final String line) {
         return line.startsWith(IMAP_CONTINUATION_PREFIX);
     }
 
@@ -97,7 +97,7 @@ public final class IMAPReply
      * @return {@link #OK} or {@link #NO} or {@link #BAD} or {@link #CONT}
      * @throws IOException if the input has an unexpected format
      */
-    public static int getReplyCode(String line) throws IOException {
+    public static int getReplyCode(final String line) throws IOException {
         return getReplyCode(line, TAGGED_PATTERN);
     }
 
@@ -112,8 +112,8 @@ public final class IMAPReply
      *
      * @return the literal count, or -1 if there was no literal.
      */
-    public static int literalCount(String line) {
-        Matcher m = LITERAL_PATTERN.matcher(line);
+    public static int literalCount(final String line) {
+        final Matcher m = LITERAL_PATTERN.matcher(line);
         if (m.find()) {
             return Integer.parseInt(m.group(1)); // Should always parse because we matched \d+
         }
@@ -127,18 +127,18 @@ public final class IMAPReply
      * @return {@link #OK} or {@link #NO} or {@link #BAD} or {@link #CONT}
      * @throws IOException if the input has an unexpected format
      */
-    public static int getUntaggedReplyCode(String line) throws IOException {
+    public static int getUntaggedReplyCode(final String line) throws IOException {
         return getReplyCode(line, UNTAGGED_PATTERN);
     }
 
     // Helper method to process both tagged and untagged replies.
-    private static int getReplyCode(String line, Pattern pattern) throws IOException{
+    private static int getReplyCode(final String line, final Pattern pattern) throws IOException{
         if (isContinuation(line)) {
             return CONT;
         }
-        Matcher m = pattern.matcher(line);
+        final Matcher m = pattern.matcher(line);
         if (m.matches()) { // TODO would lookingAt() be more efficient? If so, then drop trailing .* from patterns
-            String code = m.group(1);
+            final String code = m.group(1);
             if (code.equals(IMAP_OK)) {
                 return OK;
             }
@@ -159,7 +159,7 @@ public final class IMAPReply
      * @param replyCode the code to check
      * @return {@code true} if the code equals {@link #OK}
      */
-    public static boolean isSuccess(int replyCode) {
+    public static boolean isSuccess(final int replyCode) {
         return replyCode == OK;
     }
     /**
@@ -167,7 +167,7 @@ public final class IMAPReply
      * @param replyCode the code to be checked
      * @return {@code true} if the response was a continuation
      */
-    public static boolean isContinuation(int replyCode) {
+    public static boolean isContinuation(final int replyCode) {
         return replyCode == CONT;
     }
 
diff --git a/src/main/java/org/apache/commons/net/imap/IMAPSClient.java b/src/main/java/org/apache/commons/net/imap/IMAPSClient.java
index dde3b35..70de0ac 100644
--- a/src/main/java/org/apache/commons/net/imap/IMAPSClient.java
+++ b/src/main/java/org/apache/commons/net/imap/IMAPSClient.java
@@ -99,7 +99,7 @@ public class IMAPSClient extends IMAPClient
      * Constructor for IMAPSClient.
      * @param implicit The security mode (Implicit/Explicit).
      */
-    public IMAPSClient(boolean implicit)
+    public IMAPSClient(final boolean implicit)
     {
         this(DEFAULT_PROTOCOL, implicit);
     }
@@ -108,7 +108,7 @@ public class IMAPSClient extends IMAPClient
      * Constructor for IMAPSClient.
      * @param proto the protocol.
      */
-    public IMAPSClient(String proto)
+    public IMAPSClient(final String proto)
     {
         this(proto, false);
     }
@@ -118,7 +118,7 @@ public class IMAPSClient extends IMAPClient
      * @param proto the protocol.
      * @param implicit The security mode(Implicit/Explicit).
      */
-    public IMAPSClient(String proto, boolean implicit)
+    public IMAPSClient(final String proto, final boolean implicit)
     {
         this(proto, implicit, null);
     }
@@ -129,7 +129,7 @@ public class IMAPSClient extends IMAPClient
      * @param implicit The security mode(Implicit/Explicit).
      * @param ctx the SSL context
      */
-    public IMAPSClient(String proto, boolean implicit, SSLContext ctx)
+    public IMAPSClient(final String proto, final boolean implicit, final SSLContext ctx)
     {
         super();
         setDefaultPort(DEFAULT_IMAPS_PORT);
@@ -143,7 +143,7 @@ public class IMAPSClient extends IMAPClient
      * @param implicit The security mode(Implicit/Explicit).
      * @param ctx A pre-configured SSL Context.
      */
-    public IMAPSClient(boolean implicit, SSLContext ctx)
+    public IMAPSClient(final boolean implicit, final SSLContext ctx)
     {
         this(DEFAULT_PROTOCOL, implicit, ctx);
     }
@@ -152,7 +152,7 @@ public class IMAPSClient extends IMAPClient
      * Constructor for IMAPSClient.
      * @param context A pre-configured SSL Context.
      */
-    public IMAPSClient(SSLContext context)
+    public IMAPSClient(final SSLContext context)
     {
         this(false, context);
     }
@@ -197,10 +197,10 @@ public class IMAPSClient extends IMAPClient
     {
         initSSLContext();
 
-        SSLSocketFactory ssf = context.getSocketFactory();
-        String host = (_hostname_ != null) ? _hostname_ : getRemoteAddress().getHostAddress();
-        int port = getRemotePort();
-        SSLSocket socket =
+        final SSLSocketFactory ssf = context.getSocketFactory();
+        final String host = (_hostname_ != null) ? _hostname_ : getRemoteAddress().getHostAddress();
+        final int port = getRemotePort();
+        final SSLSocket socket =
             (SSLSocket) ssf.createSocket(_socket_, host, port, true);
         socket.setEnableSessionCreation(true);
         socket.setUseClientMode(true);
@@ -247,7 +247,7 @@ public class IMAPSClient extends IMAPClient
      * @param newKeyManager The KeyManager implementation to set.
      * @see org.apache.commons.net.util.KeyManagerUtils
      */
-    public void setKeyManager(KeyManager newKeyManager)
+    public void setKeyManager(final KeyManager newKeyManager)
     {
         keyManager = newKeyManager;
     }
@@ -257,7 +257,7 @@ public class IMAPSClient extends IMAPClient
      * connection. Called before server negotiation.
      * @param cipherSuites The cipher suites.
      */
-    public void setEnabledCipherSuites(String[] cipherSuites)
+    public void setEnabledCipherSuites(final String[] cipherSuites)
     {
         suites = new String[cipherSuites.length];
         System.arraycopy(cipherSuites, 0, suites, 0, cipherSuites.length);
@@ -283,7 +283,7 @@ public class IMAPSClient extends IMAPClient
      * connection. I perform setting before a server negotiation.
      * @param protocolVersions The protocol versions.
      */
-    public void setEnabledProtocols(String[] protocolVersions)
+    public void setEnabledProtocols(final String[] protocolVersions)
     {
         protocols = new String[protocolVersions.length];
         System.arraycopy(protocolVersions, 0, protocols, 0, protocolVersions.length);
@@ -336,7 +336,7 @@ public class IMAPSClient extends IMAPClient
      * @param newTrustManager The TrustManager implementation to set.
      * @see org.apache.commons.net.util.TrustManagerUtils
      */
-    public void setTrustManager(TrustManager newTrustManager)
+    public void setTrustManager(final TrustManager newTrustManager)
     {
         trustManager = newTrustManager;
     }
@@ -356,7 +356,7 @@ public class IMAPSClient extends IMAPClient
      * @param newHostnameVerifier The HostnameVerifier implementation to set or <code>null</code> to disable.
      * @since 3.4
      */
-    public void setHostnameVerifier(HostnameVerifier newHostnameVerifier)
+    public void setHostnameVerifier(final HostnameVerifier newHostnameVerifier)
     {
         hostnameVerifier = newHostnameVerifier;
     }
@@ -380,7 +380,7 @@ public class IMAPSClient extends IMAPClient
      * @param enable Enable automatic endpoint identification checking using the HTTPS algorithm on Java 1.7+.
      * @since 3.4
      */
-    public void setEndpointCheckingEnabled(boolean enable)
+    public void setEndpointCheckingEnabled(final boolean enable)
     {
         tlsEndpointChecking = enable;
     }
diff --git a/src/main/java/org/apache/commons/net/io/CRLFLineReader.java b/src/main/java/org/apache/commons/net/io/CRLFLineReader.java
index 9ba51a9..89c1a60 100644
--- a/src/main/java/org/apache/commons/net/io/CRLFLineReader.java
+++ b/src/main/java/org/apache/commons/net/io/CRLFLineReader.java
@@ -38,7 +38,7 @@ public final class CRLFLineReader extends BufferedReader
      * input source.
      * @param reader  The Reader input source.
      */
-    public CRLFLineReader(Reader reader)
+    public CRLFLineReader(final Reader reader)
     {
         super(reader);
     }
@@ -51,7 +51,7 @@ public final class CRLFLineReader extends BufferedReader
      */
     @Override
     public String readLine() throws IOException {
-        StringBuilder sb = new StringBuilder();
+        final StringBuilder sb = new StringBuilder();
         int intch;
         boolean prevWasCR = false;
         synchronized(lock) { // make thread-safe (hopefully!)
@@ -68,7 +68,7 @@ public final class CRLFLineReader extends BufferedReader
                 sb.append((char) intch);
             }
         }
-        String string = sb.toString();
+        final String string = sb.toString();
         if (string.length() == 0) { // immediate EOF
             return null;
         }
diff --git a/src/main/java/org/apache/commons/net/io/CopyStreamAdapter.java b/src/main/java/org/apache/commons/net/io/CopyStreamAdapter.java
index ccf5c21..745f532 100644
--- a/src/main/java/org/apache/commons/net/io/CopyStreamAdapter.java
+++ b/src/main/java/org/apache/commons/net/io/CopyStreamAdapter.java
@@ -60,9 +60,9 @@ public class CopyStreamAdapter implements CopyStreamListener
      *              bytes.
      */
     @Override
-    public void bytesTransferred(CopyStreamEvent event)
+    public void bytesTransferred(final CopyStreamEvent event)
     {
-        for (EventListener listener : internalListeners)
+        for (final EventListener listener : internalListeners)
         {
             ((CopyStreamListener) (listener)).bytesTransferred(event);
         }
@@ -84,10 +84,10 @@ public class CopyStreamAdapter implements CopyStreamListener
      *        the size is unknown.
      */
     @Override
-    public void bytesTransferred(long totalBytesTransferred,
-                                 int bytesTransferred, long streamSize)
+    public void bytesTransferred(final long totalBytesTransferred,
+                                 final int bytesTransferred, final long streamSize)
     {
-        for (EventListener listener : internalListeners)
+        for (final EventListener listener : internalListeners)
         {
             ((CopyStreamListener) (listener)).bytesTransferred(
                     totalBytesTransferred, bytesTransferred, streamSize);
@@ -100,7 +100,7 @@ public class CopyStreamAdapter implements CopyStreamListener
      * implemented in a thread safe manner.
      * @param listener  The CopyStreamlistener to register.
      */
-    public void addCopyStreamListener(CopyStreamListener listener)
+    public void addCopyStreamListener(final CopyStreamListener listener)
     {
         internalListeners.addListener(listener);
     }
@@ -110,7 +110,7 @@ public class CopyStreamAdapter implements CopyStreamListener
      * synchronized, it is implemented in a thread safe manner.
      * @param listener  The CopyStreamlistener to unregister.
      */
-    public void removeCopyStreamListener(CopyStreamListener listener)
+    public void removeCopyStreamListener(final CopyStreamListener listener)
     {
         internalListeners.removeListener(listener);
     }
diff --git a/src/main/java/org/apache/commons/net/io/CopyStreamEvent.java b/src/main/java/org/apache/commons/net/io/CopyStreamEvent.java
index 586e10a..6e5b461 100644
--- a/src/main/java/org/apache/commons/net/io/CopyStreamEvent.java
+++ b/src/main/java/org/apache/commons/net/io/CopyStreamEvent.java
@@ -54,8 +54,8 @@ public class CopyStreamEvent extends EventObject
      *          This may be set to <code>UNKNOWN_STREAM_SIZE</code> if the
      *          size is unknown.
      */
-    public CopyStreamEvent(Object source, long totalBytesTransferred,
-                           int bytesTransferred, long streamSize)
+    public CopyStreamEvent(final Object source, final long totalBytesTransferred,
+                           final int bytesTransferred, final long streamSize)
     {
         super(source);
         this.bytesTransferred = bytesTransferred;
diff --git a/src/main/java/org/apache/commons/net/io/CopyStreamException.java b/src/main/java/org/apache/commons/net/io/CopyStreamException.java
index d9ed210..6122d57 100644
--- a/src/main/java/org/apache/commons/net/io/CopyStreamException.java
+++ b/src/main/java/org/apache/commons/net/io/CopyStreamException.java
@@ -39,9 +39,9 @@ public class CopyStreamException extends IOException
      *        an exception was thrown in a copy operation.
      * @param exception  The IOException thrown during a copy operation.
      */
-    public CopyStreamException(String message,
-                               long bytesTransferred,
-                               IOException exception)
+    public CopyStreamException(final String message,
+                               final long bytesTransferred,
+                               final IOException exception)
     {
         super(message);
         initCause(exception); // merge this into super() call once we need 1.6+
diff --git a/src/main/java/org/apache/commons/net/io/DotTerminatedMessageReader.java b/src/main/java/org/apache/commons/net/io/DotTerminatedMessageReader.java
index 5db985a..a02ab26 100644
--- a/src/main/java/org/apache/commons/net/io/DotTerminatedMessageReader.java
+++ b/src/main/java/org/apache/commons/net/io/DotTerminatedMessageReader.java
@@ -51,7 +51,7 @@ public final class DotTerminatedMessageReader extends BufferedReader
      * input source.
      * @param reader  The Reader input source containing the message.
      */
-    public DotTerminatedMessageReader(Reader reader)
+    public DotTerminatedMessageReader(final Reader reader)
     {
         super(reader);
         // Assumes input is at start of message
@@ -143,7 +143,7 @@ public final class DotTerminatedMessageReader extends BufferedReader
      *            stream.
      */
     @Override
-    public int read(char[] buffer) throws IOException
+    public int read(final char[] buffer) throws IOException
     {
         return read(buffer, 0, buffer.length);
     }
@@ -163,7 +163,7 @@ public final class DotTerminatedMessageReader extends BufferedReader
      *            stream.
      */
     @Override
-    public int read(char[] buffer, int offset, int length) throws IOException
+    public int read(final char[] buffer, int offset, int length) throws IOException
     {
         if (length < 1)
         {
@@ -177,7 +177,7 @@ public final class DotTerminatedMessageReader extends BufferedReader
                 return -1;
             }
 
-            int off = offset;
+            final int off = offset;
 
             do
             {
@@ -228,7 +228,7 @@ public final class DotTerminatedMessageReader extends BufferedReader
      */
     @Override
     public String readLine() throws IOException {
-        StringBuilder sb = new StringBuilder();
+        final StringBuilder sb = new StringBuilder();
         int intch;
         synchronized(lock) { // make thread-safe (hopefully!)
             while((intch = read()) != -1)
@@ -239,7 +239,7 @@ public final class DotTerminatedMessageReader extends BufferedReader
                 sb.append((char) intch);
             }
         }
-        String string = sb.toString();
+        final String string = sb.toString();
         if (string.length() == 0) { // immediate EOF
             return null;
         }
diff --git a/src/main/java/org/apache/commons/net/io/DotTerminatedMessageWriter.java b/src/main/java/org/apache/commons/net/io/DotTerminatedMessageWriter.java
index cb98cb8..c709073 100644
--- a/src/main/java/org/apache/commons/net/io/DotTerminatedMessageWriter.java
+++ b/src/main/java/org/apache/commons/net/io/DotTerminatedMessageWriter.java
@@ -52,7 +52,7 @@ public final class DotTerminatedMessageWriter extends Writer
      *
      * @param output  The Writer output destination to write the message.
      ***/
-    public DotTerminatedMessageWriter(Writer output)
+    public DotTerminatedMessageWriter(final Writer output)
     {
         super(output);
         __output = output;
@@ -72,7 +72,7 @@ public final class DotTerminatedMessageWriter extends Writer
      *            underlying output.
      ***/
     @Override
-    public void write(int ch) throws IOException
+    public void write(final int ch) throws IOException
     {
         synchronized (lock)
         {
@@ -115,7 +115,7 @@ public final class DotTerminatedMessageWriter extends Writer
      *            output.
      ***/
     @Override
-    public void write(char[] buffer, int offset, int length) throws IOException
+    public void write(final char[] buffer, int offset, int length) throws IOException
     {
         synchronized (lock)
         {
@@ -134,7 +134,7 @@ public final class DotTerminatedMessageWriter extends Writer
      *            output.
      ***/
     @Override
-    public void write(char[] buffer) throws IOException
+    public void write(final char[] buffer) throws IOException
     {
         write(buffer, 0, buffer.length);
     }
@@ -148,7 +148,7 @@ public final class DotTerminatedMessageWriter extends Writer
      *            output.
      ***/
     @Override
-    public void write(String string) throws IOException
+    public void write(final String string) throws IOException
     {
         write(string.toCharArray());
     }
@@ -164,7 +164,7 @@ public final class DotTerminatedMessageWriter extends Writer
      *            output.
      ***/
     @Override
-    public void write(String string, int offset, int length) throws IOException
+    public void write(final String string, final int offset, final int length) throws IOException
     {
         write(string.toCharArray(), offset, length);
     }
diff --git a/src/main/java/org/apache/commons/net/io/FromNetASCIIInputStream.java b/src/main/java/org/apache/commons/net/io/FromNetASCIIInputStream.java
index 3d1b231..80df25f 100644
--- a/src/main/java/org/apache/commons/net/io/FromNetASCIIInputStream.java
+++ b/src/main/java/org/apache/commons/net/io/FromNetASCIIInputStream.java
@@ -43,7 +43,7 @@ public final class FromNetASCIIInputStream extends PushbackInputStream
         _noConversionRequired = _lineSeparator.equals("\r\n");
         try {
             _lineSeparatorBytes = _lineSeparator.getBytes("US-ASCII");
-        } catch (UnsupportedEncodingException e) {
+        } catch (final UnsupportedEncodingException e) {
            throw new RuntimeException("Broken JVM - cannot find US-ASCII charset!",e);
         }
     }
@@ -69,7 +69,7 @@ public final class FromNetASCIIInputStream extends PushbackInputStream
      * InputStream.
      * @param input the stream to wrap
      ***/
-    public FromNetASCIIInputStream(InputStream input)
+    public FromNetASCIIInputStream(final InputStream input)
     {
         super(input, _lineSeparatorBytes.length + 1);
     }
@@ -140,7 +140,7 @@ public final class FromNetASCIIInputStream extends PushbackInputStream
      *            stream.
      ***/
     @Override
-    public int read(byte buffer[]) throws IOException
+    public int read(final byte buffer[]) throws IOException
     {
         return read(buffer, 0, buffer.length);
     }
@@ -161,7 +161,7 @@ public final class FromNetASCIIInputStream extends PushbackInputStream
      *            stream.
      ***/
     @Override
-    public int read(byte buffer[], int offset, int length) throws IOException
+    public int read(final byte buffer[], int offset, final int length) throws IOException
     {
         if (_noConversionRequired) {
             return super.read(buffer, offset, length);
diff --git a/src/main/java/org/apache/commons/net/io/FromNetASCIIOutputStream.java b/src/main/java/org/apache/commons/net/io/FromNetASCIIOutputStream.java
index 412addc..6721198 100644
--- a/src/main/java/org/apache/commons/net/io/FromNetASCIIOutputStream.java
+++ b/src/main/java/org/apache/commons/net/io/FromNetASCIIOutputStream.java
@@ -46,14 +46,14 @@ public final class FromNetASCIIOutputStream extends FilterOutputStream
      *
      * @param output  The OutputStream to wrap.
      ***/
-    public FromNetASCIIOutputStream(OutputStream output)
+    public FromNetASCIIOutputStream(final OutputStream output)
     {
         super(output);
         __lastWasCR = false;
     }
 
 
-    private void __write(int ch) throws IOException
+    private void __write(final int ch) throws IOException
     {
         switch (ch)
         {
@@ -96,7 +96,7 @@ public final class FromNetASCIIOutputStream extends FilterOutputStream
      *            stream.
      ***/
     @Override
-    public synchronized void write(int ch)
+    public synchronized void write(final int ch)
     throws IOException
     {
         if (FromNetASCIIInputStream._noConversionRequired)
@@ -117,7 +117,7 @@ public final class FromNetASCIIOutputStream extends FilterOutputStream
      *            stream.
      ***/
     @Override
-    public synchronized void write(byte buffer[])
+    public synchronized void write(final byte buffer[])
     throws IOException
     {
         write(buffer, 0, buffer.length);
@@ -135,7 +135,7 @@ public final class FromNetASCIIOutputStream extends FilterOutputStream
      *            stream.
      ***/
     @Override
-    public synchronized void write(byte buffer[], int offset, int length)
+    public synchronized void write(final byte buffer[], int offset, int length)
     throws IOException
     {
         if (FromNetASCIIInputStream._noConversionRequired)
diff --git a/src/main/java/org/apache/commons/net/io/SocketInputStream.java b/src/main/java/org/apache/commons/net/io/SocketInputStream.java
index b84a4a2..ace3e2a 100644
--- a/src/main/java/org/apache/commons/net/io/SocketInputStream.java
+++ b/src/main/java/org/apache/commons/net/io/SocketInputStream.java
@@ -46,7 +46,7 @@ public class SocketInputStream extends FilterInputStream
      * @param socket  The socket to close on closing the stream.
      * @param stream  The input stream to wrap.
      ***/
-    public SocketInputStream(Socket socket, InputStream stream)
+    public SocketInputStream(final Socket socket, final InputStream stream)
     {
         super(stream);
         __socket = socket;
diff --git a/src/main/java/org/apache/commons/net/io/SocketOutputStream.java b/src/main/java/org/apache/commons/net/io/SocketOutputStream.java
index 6af8f54..ed2da63 100644
--- a/src/main/java/org/apache/commons/net/io/SocketOutputStream.java
+++ b/src/main/java/org/apache/commons/net/io/SocketOutputStream.java
@@ -46,7 +46,7 @@ public class SocketOutputStream extends FilterOutputStream
      * @param socket  The socket to close on closing the stream.
      * @param stream  The input stream to wrap.
      ***/
-    public SocketOutputStream(Socket socket, OutputStream stream)
+    public SocketOutputStream(final Socket socket, final OutputStream stream)
     {
         super(stream);
         __socket = socket;
@@ -66,7 +66,7 @@ public class SocketOutputStream extends FilterOutputStream
      *            stream.
      ***/
     @Override
-    public void write(byte buffer[], int offset, int length) throws IOException
+    public void write(final byte buffer[], final int offset, final int length) throws IOException
     {
         out.write(buffer, offset, length);
     }
diff --git a/src/main/java/org/apache/commons/net/io/ToNetASCIIInputStream.java b/src/main/java/org/apache/commons/net/io/ToNetASCIIInputStream.java
index f0ec930..ca559c6 100644
--- a/src/main/java/org/apache/commons/net/io/ToNetASCIIInputStream.java
+++ b/src/main/java/org/apache/commons/net/io/ToNetASCIIInputStream.java
@@ -45,7 +45,7 @@ public final class ToNetASCIIInputStream extends FilterInputStream
      *
      * @param input  The InputStream to wrap.
      ***/
-    public ToNetASCIIInputStream(InputStream input)
+    public ToNetASCIIInputStream(final InputStream input)
     {
         super(input);
         __status = __NOTHING_SPECIAL;
@@ -107,7 +107,7 @@ public final class ToNetASCIIInputStream extends FilterInputStream
      *            stream.
      ***/
     @Override
-    public int read(byte buffer[]) throws IOException
+    public int read(final byte buffer[]) throws IOException
     {
         return read(buffer, 0, buffer.length);
     }
@@ -128,7 +128,7 @@ public final class ToNetASCIIInputStream extends FilterInputStream
      *            stream.
      ***/
     @Override
-    public int read(byte buffer[], int offset, int length) throws IOException
+    public int read(final byte buffer[], int offset, int length) throws IOException
     {
         int ch, off;
 
diff --git a/src/main/java/org/apache/commons/net/io/ToNetASCIIOutputStream.java b/src/main/java/org/apache/commons/net/io/ToNetASCIIOutputStream.java
index 989bfc3..f96ca97 100644
--- a/src/main/java/org/apache/commons/net/io/ToNetASCIIOutputStream.java
+++ b/src/main/java/org/apache/commons/net/io/ToNetASCIIOutputStream.java
@@ -42,7 +42,7 @@ public final class ToNetASCIIOutputStream extends FilterOutputStream
      *
      * @param output  The OutputStream to wrap.
      ***/
-    public ToNetASCIIOutputStream(OutputStream output)
+    public ToNetASCIIOutputStream(final OutputStream output)
     {
         super(output);
         __lastWasCR = false;
@@ -61,7 +61,7 @@ public final class ToNetASCIIOutputStream extends FilterOutputStream
      *            stream.
      ***/
     @Override
-    public synchronized void write(int ch)
+    public synchronized void write(final int ch)
     throws IOException
     {
         switch (ch)
@@ -91,7 +91,7 @@ public final class ToNetASCIIOutputStream extends FilterOutputStream
      *            stream.
      ***/
     @Override
-    public synchronized void write(byte buffer[])
+    public synchronized void write(final byte buffer[])
     throws IOException
     {
         write(buffer, 0, buffer.length);
@@ -109,7 +109,7 @@ public final class ToNetASCIIOutputStream extends FilterOutputStream
      *            stream.
      ***/
     @Override
-    public synchronized void write(byte buffer[], int offset, int length)
+    public synchronized void write(final byte buffer[], int offset, int length)
     throws IOException
     {
         while (length-- > 0) {
diff --git a/src/main/java/org/apache/commons/net/io/Util.java b/src/main/java/org/apache/commons/net/io/Util.java
index 1f4e5b5..2cd3661 100644
--- a/src/main/java/org/apache/commons/net/io/Util.java
+++ b/src/main/java/org/apache/commons/net/io/Util.java
@@ -87,15 +87,15 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyStream(InputStream source, OutputStream dest,
-                                        int bufferSize, long streamSize,
-                                        CopyStreamListener listener,
-                                        boolean flush)
+    public static final long copyStream(final InputStream source, final OutputStream dest,
+                                        final int bufferSize, final long streamSize,
+                                        final CopyStreamListener listener,
+                                        final boolean flush)
     throws CopyStreamException
     {
         int numBytes;
         long total = 0;
-        byte[] buffer = new byte[bufferSize > 0 ? bufferSize : DEFAULT_COPY_BUFFER_SIZE];
+        final byte[] buffer = new byte[bufferSize > 0 ? bufferSize : DEFAULT_COPY_BUFFER_SIZE];
 
         try
         {
@@ -106,7 +106,7 @@ public final class Util
 
                 if (numBytes == 0)
                 {
-                    int singleByte = source.read();
+                    final int singleByte = source.read();
                     if (singleByte < 0) {
                         break;
                     }
@@ -131,7 +131,7 @@ public final class Util
                 }
             }
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             throw new CopyStreamException("IOException caught while copying.",
                                           total, e);
@@ -175,9 +175,9 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyStream(InputStream source, OutputStream dest,
-                                        int bufferSize, long streamSize,
-                                        CopyStreamListener listener)
+    public static final long copyStream(final InputStream source, final OutputStream dest,
+                                        final int bufferSize, final long streamSize,
+                                        final CopyStreamListener listener)
     throws CopyStreamException
     {
       return copyStream(source, dest, bufferSize, streamSize, listener,
@@ -207,8 +207,8 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyStream(InputStream source, OutputStream dest,
-                                        int bufferSize)
+    public static final long copyStream(final InputStream source, final OutputStream dest,
+                                        final int bufferSize)
     throws CopyStreamException
     {
         return copyStream(source, dest, bufferSize,
@@ -223,7 +223,7 @@ public final class Util
      * @return number of bytes copied
      * @throws CopyStreamException on error
      ***/
-    public static final long copyStream(InputStream source, OutputStream dest)
+    public static final long copyStream(final InputStream source, final OutputStream dest)
     throws CopyStreamException
     {
         return copyStream(source, dest, DEFAULT_COPY_BUFFER_SIZE);
@@ -263,14 +263,14 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyReader(Reader source, Writer dest,
-                                        int bufferSize, long streamSize,
-                                        CopyStreamListener listener)
+    public static final long copyReader(final Reader source, final Writer dest,
+                                        final int bufferSize, final long streamSize,
+                                        final CopyStreamListener listener)
     throws CopyStreamException
     {
         int numChars;
         long total = 0;
-        char[] buffer = new char[bufferSize > 0 ? bufferSize : DEFAULT_COPY_BUFFER_SIZE];
+        final char[] buffer = new char[bufferSize > 0 ? bufferSize : DEFAULT_COPY_BUFFER_SIZE];
 
         try
         {
@@ -280,7 +280,7 @@ public final class Util
                 // accept that as an indication of EOF.
                 if (numChars == 0)
                 {
-                    int singleChar = source.read();
+                    final int singleChar = source.read();
                     if (singleChar < 0) {
                         break;
                     }
@@ -301,7 +301,7 @@ public final class Util
                 }
             }
         }
-        catch (IOException e)
+        catch (final IOException e)
         {
             throw new CopyStreamException("IOException caught while copying.",
                                           total, e);
@@ -332,8 +332,8 @@ public final class Util
      *            the CopyStreamException getTotalBytesTransferred() and
      *            getIOException() methods.
      ***/
-    public static final long copyReader(Reader source, Writer dest,
-                                        int bufferSize)
+    public static final long copyReader(final Reader source, final Writer dest,
+                                        final int bufferSize)
     throws CopyStreamException
     {
         return copyReader(source, dest, bufferSize,
@@ -348,7 +348,7 @@ public final class Util
      * @return number of bytes copied
      * @throws CopyStreamException on error
      ***/
-    public static final long copyReader(Reader source, Writer dest)
+    public static final long copyReader(final Reader source, final Writer dest)
     throws CopyStreamException
     {
         return copyReader(source, dest, DEFAULT_COPY_BUFFER_SIZE);
@@ -361,11 +361,11 @@ public final class Util
      * @param closeable the object to close, may be {@code null}
      * @since 3.0
      */
-    public static void closeQuietly(Closeable closeable) {
+    public static void closeQuietly(final Closeable closeable) {
         if (closeable != null) {
             try {
                 closeable.close();
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 // Ignored
             }
         }
@@ -378,11 +378,11 @@ public final class Util
      * @param socket the socket to close, may be {@code null}
      * @since 3.0
      */
-    public static void closeQuietly(Socket socket) {
+    public static void closeQuietly(final Socket socket) {
         if (socket != null) {
             try {
                 socket.close();
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 // Ignored
             }
         }
diff --git a/src/main/java/org/apache/commons/net/nntp/Article.java b/src/main/java/org/apache/commons/net/nntp/Article.java
index a2ad1b9..1e8a058 100644
--- a/src/main/java/org/apache/commons/net/nntp/Article.java
+++ b/src/main/java/org/apache/commons/net/nntp/Article.java
@@ -44,7 +44,7 @@ public class Article implements Threadable {
      * Adds a message-id to the list of messages that this message references (i.e. replies to)
      * @param msgId the message id to add
      */
-    public void addReference(String msgId) {
+    public void addReference(final String msgId) {
         if (msgId == null || msgId.length() == 0) {
             return;
         }
@@ -52,7 +52,7 @@ public class Article implements Threadable {
             references = new ArrayList<>();
         }
         isReply = true;
-        for(String s : msgId.split(" ")) {
+        for(final String s : msgId.split(" ")) {
             references.add(s);
         }
     }
@@ -74,8 +74,8 @@ public class Article implements Threadable {
      */
     private void simplifySubject() {
             int start = 0;
-            String subject = getSubject();
-            int len = subject.length();
+            final String subject = getSubject();
+            final int len = subject.length();
 
             boolean done = false;
 
@@ -140,7 +140,7 @@ public class Article implements Threadable {
      * @param article the root of the article 'tree'
      * @since 3.4
      */
-    public static void printThread(Article article) {
+    public static void printThread(final Article article) {
         printThread(article, 0, System.out);
     }
 
@@ -151,7 +151,7 @@ public class Article implements Threadable {
      * @param ps the PrintStream to use
      * @since 3.4
      */
-    public static void printThread(Article article, PrintStream ps) {
+    public static void printThread(final Article article, final PrintStream ps) {
         printThread(article, 0, ps);
     }
 
@@ -161,7 +161,7 @@ public class Article implements Threadable {
      * @param article the root of the article 'tree'
      * @param depth the current tree depth
      */
-    public static void printThread(Article article, int depth) {
+    public static void printThread(final Article article, final int depth) {
         printThread(article, depth, System.out);
     }
 
@@ -173,7 +173,7 @@ public class Article implements Threadable {
      * @param ps the PrintStream to use
      * @since 3.4
      */
-    public static void printThread(Article article, int depth, PrintStream ps) {
+    public static void printThread(final Article article, final int depth, final PrintStream ps) {
             for (int i = 0; i < depth; ++i) {
                 ps.print("==>");
             }
@@ -206,23 +206,23 @@ public class Article implements Threadable {
         return subject;
     }
 
-    public void setArticleId(String string) {
+    public void setArticleId(final String string) {
         articleId = string;
     }
 
-    public void setArticleNumber(long l) {
+    public void setArticleNumber(final long l) {
         articleNumber = l;
     }
 
-    public void setDate(String string) {
+    public void setDate(final String string) {
         date = string;
     }
 
-    public void setFrom(String string) {
+    public void setFrom(final String string) {
         from = string;
     }
 
-    public void setSubject(String string) {
+    public void setSubject(final String string) {
         subject = string;
     }
 
@@ -258,7 +258,7 @@ public class Article implements Threadable {
 
 
     @Override
-    public void setChild(Threadable child) {
+    public void setChild(final Threadable child) {
         this.kid = (Article) child;
         flushSubjectCache();
     }
@@ -269,7 +269,7 @@ public class Article implements Threadable {
 
 
     @Override
-    public void setNext(Threadable next) {
+    public void setNext(final Threadable next) {
         this.next = (Article)next;
         flushSubjectCache();
     }
@@ -293,12 +293,12 @@ public class Article implements Threadable {
     }
 
     @Deprecated
-    public void setArticleNumber(int a) {
+    public void setArticleNumber(final int a) {
         articleNumber = a;
     }
     @Deprecated
 
-    public void addHeaderField(String name, String val) {
+    public void addHeaderField(final String name, final String val) {
     }
 
 }
diff --git a/src/main/java/org/apache/commons/net/nntp/ArticleIterator.java b/src/main/java/org/apache/commons/net/nntp/ArticleIterator.java
index ef82ba6..272a870 100644
--- a/src/main/java/org/apache/commons/net/nntp/ArticleIterator.java
+++ b/src/main/java/org/apache/commons/net/nntp/ArticleIterator.java
@@ -28,7 +28,7 @@ class ArticleIterator implements Iterator<Article>, Iterable<Article> {
 
     private  final Iterator<String> stringIterator;
 
-    public ArticleIterator(Iterable<String> iterableString) {
+    public ArticleIterator(final Iterable<String> iterableString) {
         stringIterator = iterableString.iterator();
     }
 
@@ -44,7 +44,7 @@ class ArticleIterator implements Iterator<Article>, Iterable<Article> {
      */
     @Override
     public Article next() {
-        String line = stringIterator.next();
+        final String line = stringIterator.next();
         return NNTPClient.__parseArticleEntry(line);
     }
 
diff --git a/src/main/java/org/apache/commons/net/nntp/NNTP.java b/src/main/java/org/apache/commons/net/nntp/NNTP.java
index f5b2fa3..a871099 100644
--- a/src/main/java/org/apache/commons/net/nntp/NNTP.java
+++ b/src/main/java/org/apache/commons/net/nntp/NNTP.java
@@ -148,7 +148,7 @@ public class NNTP extends SocketClient
         {
             _replyCode = Integer.parseInt(_replyString.substring(0, 3));
         }
-        catch (NumberFormatException e)
+        catch (final NumberFormatException e)
         {
             throw new MalformedServerReplyException(
                 "Could not parse response code.\nServer Reply: " + _replyString);
@@ -234,9 +234,9 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int sendCommand(String command, String args) throws IOException
+    public int sendCommand(final String command, final String args) throws IOException
     {
-        StringBuilder __commandBuffer = new StringBuilder();
+        final StringBuilder __commandBuffer = new StringBuilder();
         __commandBuffer.append(command);
 
         if (args != null)
@@ -278,7 +278,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int sendCommand(int command, String args) throws IOException
+    public int sendCommand(final int command, final String args) throws IOException
     {
         return sendCommand(NNTPCommand.getCommand(command), args);
     }
@@ -302,7 +302,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int sendCommand(String command) throws IOException
+    public int sendCommand(final String command) throws IOException
     {
         return sendCommand(command, null);
     }
@@ -327,7 +327,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int sendCommand(int command) throws IOException
+    public int sendCommand(final int command) throws IOException
     {
         return sendCommand(command, null);
     }
@@ -397,7 +397,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int article(String messageId) throws IOException
+    public int article(final String messageId) throws IOException
     {
         return sendCommand(NNTPCommand.ARTICLE, messageId);
     }
@@ -417,7 +417,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int article(long articleNumber) throws IOException
+    public int article(final long articleNumber) throws IOException
     {
         return sendCommand(NNTPCommand.ARTICLE, Long.toString(articleNumber));
     }
@@ -457,7 +457,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int body(String messageId) throws IOException
+    public int body(final String messageId) throws IOException
     {
         return sendCommand(NNTPCommand.BODY, messageId);
     }
@@ -477,7 +477,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int body(long articleNumber) throws IOException
+    public int body(final long articleNumber) throws IOException
     {
         return sendCommand(NNTPCommand.BODY, Long.toString(articleNumber));
     }
@@ -517,7 +517,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int head(String messageId) throws IOException
+    public int head(final String messageId) throws IOException
     {
         return sendCommand(NNTPCommand.HEAD, messageId);
     }
@@ -537,7 +537,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int head(long articleNumber) throws IOException
+    public int head(final long articleNumber) throws IOException
     {
         return sendCommand(NNTPCommand.HEAD, Long.toString(articleNumber));
     }
@@ -577,7 +577,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int stat(String messageId) throws IOException
+    public int stat(final String messageId) throws IOException
     {
         return sendCommand(NNTPCommand.STAT, messageId);
     }
@@ -597,7 +597,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int stat(long articleNumber) throws IOException
+    public int stat(final long articleNumber) throws IOException
     {
         return sendCommand(NNTPCommand.STAT, Long.toString(articleNumber));
     }
@@ -635,7 +635,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int group(String newsgroup) throws IOException
+    public int group(final String newsgroup) throws IOException
     {
         return sendCommand(NNTPCommand.GROUP, newsgroup);
     }
@@ -675,7 +675,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int ihave(String messageId) throws IOException
+    public int ihave(final String messageId) throws IOException
     {
         return sendCommand(NNTPCommand.IHAVE, messageId);
     }
@@ -760,10 +760,10 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int newgroups(String date, String time, boolean GMT,
-                         String distributions) throws IOException
+    public int newgroups(final String date, final String time, final boolean GMT,
+                         final String distributions) throws IOException
     {
-        StringBuilder buffer = new StringBuilder();
+        final StringBuilder buffer = new StringBuilder();
 
         buffer.append(date);
         buffer.append(' ');
@@ -808,10 +808,10 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int newnews(String newsgroups, String date, String time, boolean GMT,
-                       String distributions) throws IOException
+    public int newnews(final String newsgroups, final String date, final String time, final boolean GMT,
+                       final String distributions) throws IOException
     {
-        StringBuilder buffer = new StringBuilder();
+        final StringBuilder buffer = new StringBuilder();
 
         buffer.append(newsgroups);
         buffer.append(' ');
@@ -890,8 +890,8 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int authinfoUser(String username) throws IOException {
-        String userParameter = "USER " + username;
+    public int authinfoUser(final String username) throws IOException {
+        final String userParameter = "USER " + username;
         return sendCommand(NNTPCommand.AUTHINFO, userParameter);
     }
 
@@ -912,8 +912,8 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int authinfoPass(String password) throws IOException {
-        String passParameter = "PASS " + password;
+    public int authinfoPass(final String password) throws IOException {
+        final String passParameter = "PASS " + password;
         return sendCommand(NNTPCommand.AUTHINFO, passParameter);
     }
 
@@ -937,7 +937,7 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int xover(String selectedArticles) throws IOException {
+    public int xover(final String selectedArticles) throws IOException {
         return sendCommand(NNTPCommand.XOVER, selectedArticles);
     }
 
@@ -963,8 +963,8 @@ public class NNTP extends SocketClient
      * @throws IOException  If an I/O error occurs while either sending the
      *      command or receiving the server reply.
      ***/
-    public int xhdr(String header, String selectedArticles) throws IOException {
-        StringBuilder command = new StringBuilder(header);
+    public int xhdr(final String header, final String selectedArticles) throws IOException {
+        final StringBuilder command = new StringBuilder(header);
         command.append(" ");
         command.append(selectedArticles);
         return sendCommand(NNTPCommand.XHDR, command.toString());
@@ -979,8 +979,8 @@ public class NNTP extends SocketClient
      * @return the reply code received from the server.
      * @throws IOException if the command fails
      */
-    public int listActive(String wildmat) throws IOException {
-        StringBuilder command = new StringBuilder("ACTIVE ");
+    public int listActive(final String wildmat) throws IOException {
+        final StringBuilder command = new StringBuilder("ACTIVE ");
         command.append(wildmat);
         return sendCommand(NNTPCommand.LIST, command.toString());
     }
@@ -994,7 +994,7 @@ public class NNTP extends SocketClient
      * @deprecated - for API compatibility only - DO NOT USE
      */
     @Deprecated
-    public int article(int a) throws IOException
+    public int article(final int a) throws IOException
     {
         return article((long) a);
     }
@@ -1006,7 +1006,7 @@ public class NNTP extends SocketClient
      * @deprecated - for API compatibility only - DO NOT USE
      */
     @Deprecated
-    public int body(int a) throws IOException
+    public int body(final int a) throws IOException
     {
         return body((long) a);
     }
@@ -1018,7 +1018,7 @@ public class NNTP extends SocketClient
      * @deprecated - for API compatibility only - DO NOT USE
      */
     @Deprecated
-    public int head(int a) throws IOException
+    public int head(final int a) throws IOException
     {
         return head((long) a);
     }
@@ -1030,7 +1030,7 @@ public class NNTP extends SocketClient
      * @deprecated - for API compatibility only - DO NOT USE
      */
     @Deprecated
-    public int stat(int a) throws IOException
+    public int stat(final int a) throws IOException
     {
         return stat((long) a);
     }
diff --git a/src/main/java/org/apache/commons/net/nntp/NNTPClient.java b/src/main/java/org/apache/commons/net/nntp/NNTPClient.java
index 53e4fd8..82504ef 100644
--- a/src/main/java/org/apache/commons/net/nntp/NNTPClient.java
+++ b/src/main/java/org/apache/commons/net/nntp/NNTPClient.java
@@ -94,10 +94,10 @@ public class NNTPClient extends NNTP
      *
      * @throws MalformedServerReplyException if response could not be parsed
      */
-    private void __parseArticlePointer(String reply, ArticleInfo pointer)
+    private void __parseArticlePointer(final String reply, final ArticleInfo pointer)
     throws MalformedServerReplyException
     {
-        String tokens[] = reply.split(" ");
+        final String tokens[] = reply.split(" ");
         if (tokens.length >= 3) { // OK, we can parset the line
             int i = 1; // skip reply code
             try
@@ -108,7 +108,7 @@ public class NNTPClient extends NNTP
                 pointer.articleId = tokens[i++];
                 return; // done
             }
-            catch (NumberFormatException e)
+            catch (final NumberFormatException e)
             {
                 // drop through and raise exception
             }
@@ -125,10 +125,10 @@ public class NNTPClient extends NNTP
      *     s = name of the group.)
      */
 
-    private static void __parseGroupReply(String reply, NewsgroupInfo info)
+    private static void __parseGroupReply(final String reply, final NewsgroupInfo info)
     throws MalformedServerReplyException
     {
-        String tokens[] = reply.split(" ");
+        final String tokens[] = reply.split(" ");
         if (tokens.length >= 5) {
             int i = 1;  // Skip numeric response value
             try
@@ -144,7 +144,7 @@ public class NNTPClient extends NNTP
 
                 info._setPostingPermission(NewsgroupInfo.UNKNOWN_POSTING_PERMISSION);
                 return ;
-            } catch (NumberFormatException e)
+            } catch (final NumberFormatException e)
             {
                // drop through to report error
             }
@@ -156,13 +156,13 @@ public class NNTPClient extends NNTP
 
 
     // Format: group last first p
-    static NewsgroupInfo __parseNewsgroupListEntry(String entry)
+    static NewsgroupInfo __parseNewsgroupListEntry(final String entry)
     {
-        String tokens[] = entry.split(" ");
+        final String tokens[] = entry.split(" ");
         if (tokens.length < 4) {
             return null;
         }
-        NewsgroupInfo result = new NewsgroupInfo();
+        final NewsgroupInfo result = new NewsgroupInfo();
 
         int i = 0;
 
@@ -170,8 +170,8 @@ public class NNTPClient extends NNTP
 
         try
         {
-            long lastNum = Long.parseLong(tokens[i++]);
-            long firstNum = Long.parseLong(tokens[i++]);
+            final long lastNum = Long.parseLong(tokens[i++]);
+            final long firstNum = Long.parseLong(tokens[i++]);
             result._setFirstArticle(firstNum);
             result._setLastArticle(lastNum);
             if ((firstNum == 0) && (lastNum == 0)) {
@@ -179,7 +179,7 @@ public class NNTPClient extends NNTP
             } else {
                 result._setArticleCount(lastNum - firstNum + 1);
             }
-        } catch (NumberFormatException e) {
+        } catch (final NumberFormatException e) {
             return null;
         }
 
@@ -217,14 +217,14 @@ public class NNTPClient extends NNTP
      * will be true, and the subject will contain the raw info.
      * @since 3.0
      */
-    static Article __parseArticleEntry(String line) {
+    static Article __parseArticleEntry(final String line) {
         // Extract the article information
         // Mandatory format (from NNTP RFC 2980) is :
         // articleNumber\tSubject\tAuthor\tDate\tID\tReference(s)\tByte Count\tLine Count
 
-        Article article = new Article();
+        final Article article = new Article();
         article.setSubject(line); // in case parsing fails
-        String parts[] = line.split("\t");
+        final String parts[] = line.split("\t");
         if (parts.length > 6) {
             int i = 0;
             try {
@@ -234,7 +234,7 @@ public class NNTPClient extends NNTP
                 article.setDate(parts[i++]);
                 article.setArticleId(parts[i++]);
                 article.addReference(parts[i++]);
-            } catch (NumberFormatException e) {
+            } catch (final NumberFormatException e) {
                 // ignored, already handled
             }
         }
@@ -244,15 +244,15 @@ public class NNTPClient extends NNTP
     private NewsgroupInfo[] __readNewsgroupListing() throws IOException
     {
 
-        BufferedReader reader = new DotTerminatedMessageReader(_reader_);
+        final BufferedReader reader = new DotTerminatedMessageReader(_reader_);
         // Start of with a big vector because we may be reading a very large
         // amount of groups.
-        Vector<NewsgroupInfo> list = new Vector<>(2048);
+        final Vector<NewsgroupInfo> list = new Vector<>(2048);
 
         String line;
         try {
             while ((line = reader.readLine()) != null) {
-                NewsgroupInfo tmp = __parseNewsgroupListEntry(line);
+                final NewsgroupInfo tmp = __parseNewsgroupListEntry(line);
                 if (tmp != null) {
                     list.addElement(tmp);
                 } else {
@@ -267,14 +267,14 @@ public class NNTPClient extends NNTP
             return new NewsgroupInfo[0];
         }
 
-        NewsgroupInfo[] info = new NewsgroupInfo[size];
+        final NewsgroupInfo[] info = new NewsgroupInfo[size];
         list.copyInto(info);
 
         return info;
     }
 
 
-    private BufferedReader __retrieve(int command, String articleId, ArticleInfo pointer)
+    private BufferedReader __retrieve(final int command, final String articleId, final ArticleInfo pointer)
     throws IOException
     {
         if (articleId != null)
@@ -299,7 +299,7 @@ public class NNTPClient extends NNTP
     }
 
 
... 11210 lines suppressed ...


[commons-net] 03/09: Remove extra ';'.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 47e0dd9ebbb8eb9b8bb5b99a41d9dafe10f905a5
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 14:57:38 2020 -0400

    Remove extra ';'.
---
 .../java/org/apache/commons/net/ftp/parser/FTPParseTestFramework.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/test/java/org/apache/commons/net/ftp/parser/FTPParseTestFramework.java b/src/test/java/org/apache/commons/net/ftp/parser/FTPParseTestFramework.java
index e65ed4c..9bd0fc7 100644
--- a/src/test/java/org/apache/commons/net/ftp/parser/FTPParseTestFramework.java
+++ b/src/test/java/org/apache/commons/net/ftp/parser/FTPParseTestFramework.java
@@ -161,7 +161,7 @@ public abstract class FTPParseTestFramework extends TestCase
         final int unit;
         CalendarUnit(int calUnit) {
             unit = calUnit;
-        };
+        }
     }
 
     protected void testPrecision(String listEntry, CalendarUnit expectedPrecision) {


[commons-net] 04/09: Merge identical blocks.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 9148126fa2d829637d1977901c6417256b20c582
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 14:58:45 2020 -0400

    Merge identical blocks.
---
 src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java | 5 +----
 src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java        | 4 +---
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java
index ee985c2..e48897a 100644
--- a/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java
+++ b/src/main/java/org/apache/commons/net/ftp/parser/MLSxEntryParser.java
@@ -133,10 +133,7 @@ public class MLSxEntryParser extends FTPFileEntryParserImpl
                 continue; // nothing to see here
             }
             String valueLowerCase = factvalue.toLowerCase(Locale.ENGLISH);
-            if ("size".equals(factname)) {
-                file.setSize(Long.parseLong(factvalue));
-            }
-            else if ("sizd".equals(factname)) { // Directory size
+            if ("size".equals(factname) || "sizd".equals(factname)) {
                 file.setSize(Long.parseLong(factvalue));
             }
             else if ("modify".equals(factname)) {
diff --git a/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java b/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java
index abb6c25..464b4ac 100644
--- a/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java
+++ b/src/test/java/org/apache/commons/net/tftp/TFTPServerMain.java
@@ -49,9 +49,7 @@ public class TFTPServerMain {
             String arg = args[argc];
             if (arg.startsWith("-"))
             {
-                if (arg.equals("-v")) {
-                    opts.put(arg, arg);
-                } else if (arg.equals("-r")) {
+                if (arg.equals("-v") || arg.equals("-r")) {
                     opts.put(arg, arg);
                 } else if (arg.equals("-p")) {
                     opts.put(arg, args[++argc]);


[commons-net] 06/09: Use for-each.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 1f1cb3cbd64e3cd817c27be0dd454c35f2e97101
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 14:59:57 2020 -0400

    Use for-each.
---
 src/main/java/org/apache/commons/net/util/Base64.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/commons/net/util/Base64.java b/src/main/java/org/apache/commons/net/util/Base64.java
index 5e3b0da..93c4366 100644
--- a/src/main/java/org/apache/commons/net/util/Base64.java
+++ b/src/main/java/org/apache/commons/net/util/Base64.java
@@ -604,8 +604,8 @@ public class Base64 {
      *         false, otherwise
      */
     public static boolean isArrayByteBase64(byte[] arrayOctet) {
-        for (int i = 0; i < arrayOctet.length; i++) {
-            if (!isBase64(arrayOctet[i]) && !isWhiteSpace(arrayOctet[i])) {
+        for (byte element : arrayOctet) {
+            if (!isBase64(element) && !isWhiteSpace(element)) {
                 return false;
             }
         }