You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by se...@apache.org on 2011/04/18 16:00:04 UTC

svn commit: r1094579 - in /mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver: command/impl/ command/impl/listing/ filesystem/nativefs/impl/ impl/ ipfilter/ listener/nio/ message/impl/ ssl/impl/ usermanager/impl/

Author: sebb
Date: Mon Apr 18 14:00:03 2011
New Revision: 1094579

URL: http://svn.apache.org/viewvc?rev=1094579&view=rev
Log:
FTPSERVER-407 Wherever possible, immutable private fields should be marked final

Modified:
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DefaultCommandFactory.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/LIST.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/MLSD.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/NLST.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/ListArgument.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/RegexFileFilter.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/VisibleFileFilter.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NameEqualsFileFilter.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFileSystemView.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpRequest.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpSession.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/FtpIoSession.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedDataTransferFtpReply.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedFileActionFtpReply.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedRenameFtpReply.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ipfilter/MinaSessionFilter.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpHandlerAdapter.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpServerProtocolCodecFactory.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/message/impl/DefaultMessageResource.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/AliasKeyManager.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/DefaultSslConfiguration.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/AbstractUserManager.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginPermission.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginRequest.java

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DefaultCommandFactory.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DefaultCommandFactory.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DefaultCommandFactory.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DefaultCommandFactory.java Mon Apr 18 14:00:03 2011
@@ -38,6 +38,10 @@ import org.apache.ftpserver.command.Comm
  */
 public class DefaultCommandFactory implements CommandFactory {
 
+    public DefaultCommandFactory() {
+        this(new HashMap<String, Command>());
+    }
+
     /**
      * Internal constructor, use {@link CommandFactoryFactory} instead
      */
@@ -45,7 +49,7 @@ public class DefaultCommandFactory imple
         this.commandMap = commandMap;
     }
 
-    private Map<String, Command> commandMap = new HashMap<String, Command>();
+    private final Map<String, Command> commandMap;
 
     /**
      * Get command. Returns null if not found.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/LIST.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/LIST.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/LIST.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/LIST.java Mon Apr 18 14:00:03 2011
@@ -63,7 +63,7 @@ public class LIST extends AbstractComman
 
     private static final LISTFileFormater LIST_FILE_FORMATER = new LISTFileFormater();
 
-    private DirectoryLister directoryLister = new DirectoryLister();
+    private final DirectoryLister directoryLister = new DirectoryLister();
 
     /**
      * Execute command.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/MLSD.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/MLSD.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/MLSD.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/MLSD.java Mon Apr 18 14:00:03 2011
@@ -58,7 +58,7 @@ public class MLSD extends AbstractComman
 
     private final Logger LOG = LoggerFactory.getLogger(MLSD.class);
 
-    private DirectoryLister directoryLister = new DirectoryLister();
+    private final DirectoryLister directoryLister = new DirectoryLister();
 
     /**
      * Execute command.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/NLST.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/NLST.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/NLST.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/NLST.java Mon Apr 18 14:00:03 2011
@@ -63,7 +63,7 @@ public class NLST extends AbstractComman
 
     private static final LISTFileFormater LIST_FILE_FORMATER = new LISTFileFormater();
 
-    private DirectoryLister directoryLister = new DirectoryLister();
+    private final DirectoryLister directoryLister = new DirectoryLister();
 
     /**
      * Execute command

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java Mon Apr 18 14:00:03 2011
@@ -50,7 +50,7 @@ public class STAT extends AbstractComman
 
     private static final LISTFileFormater LIST_FILE_FORMATER = new LISTFileFormater();
 
-    private DirectoryLister directoryLister = new DirectoryLister();
+    private final DirectoryLister directoryLister = new DirectoryLister();
     
     /**
      * Execute command

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/ListArgument.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/ListArgument.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/ListArgument.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/ListArgument.java Mon Apr 18 14:00:03 2011
@@ -27,11 +27,11 @@ package org.apache.ftpserver.command.imp
  */
 public class ListArgument {
 
-    private String file;
+    private final String file;
 
-    private String pattern;
+    private final String pattern;
 
-    private char[] options;
+    private final char[] options;
 
     /**
      * @param file

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/RegexFileFilter.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/RegexFileFilter.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/RegexFileFilter.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/RegexFileFilter.java Mon Apr 18 14:00:03 2011
@@ -30,9 +30,9 @@ import org.apache.ftpserver.util.Regular
  */
 public class RegexFileFilter implements FileFilter {
 
-    private RegularExpr regex;
+    private final RegularExpr regex;
 
-    private FileFilter wrappedFilter;
+    private final FileFilter wrappedFilter;
 
     /**
      * Constructor with a regular expression
@@ -41,7 +41,7 @@ public class RegexFileFilter implements 
      *            The regular expression to select by
      */
     public RegexFileFilter(String regex) {
-        this.regex = new RegularExpr(regex);
+        this(regex, null);
     }
 
     /**
@@ -53,8 +53,7 @@ public class RegexFileFilter implements 
      *            The {@link FileFilter} to wrap
      */
     public RegexFileFilter(String regex, FileFilter wrappedFilter) {
-        this(regex);
-
+        this.regex = new RegularExpr(regex);
         this.wrappedFilter = wrappedFilter;
     }
 

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/VisibleFileFilter.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/VisibleFileFilter.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/VisibleFileFilter.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/listing/VisibleFileFilter.java Mon Apr 18 14:00:03 2011
@@ -29,13 +29,13 @@ import org.apache.ftpserver.ftplet.FtpFi
  */
 public class VisibleFileFilter implements FileFilter {
 
-    private FileFilter wrappedFilter;
+    private final FileFilter wrappedFilter;
 
     /**
      * Default constructor
      */
     public VisibleFileFilter() {
-        // default cstr
+        this(null);
     }
 
     /**

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NameEqualsFileFilter.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NameEqualsFileFilter.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NameEqualsFileFilter.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NameEqualsFileFilter.java Mon Apr 18 14:00:03 2011
@@ -31,9 +31,9 @@ import java.io.FileFilter;
  */
 public class NameEqualsFileFilter implements FileFilter {
 
-    private String nameToMatch;
+    private final String nameToMatch;
 
-    private boolean caseInsensitive = false;
+    private final boolean caseInsensitive;
 
     /**
      * Constructor

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFileSystemView.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFileSystemView.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFileSystemView.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFileSystemView.java Mon Apr 18 14:00:03 2011
@@ -51,11 +51,11 @@ public class NativeFileSystemView implem
     // It is always with respect to the root directory.
     private String currDir;
 
-    private User user;
+    private final User user;
 
     // private boolean writePermission;
 
-    private boolean caseInsensitive = false;
+    private final boolean caseInsensitive;
 
     /**
      * Constructor - internal do not use directly, use {@link NativeFileSystemFactory} instead

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/NativeFtpFile.java Mon Apr 18 14:00:03 2011
@@ -51,11 +51,11 @@ public class NativeFtpFile implements Ft
     // the file name with respect to the user root.
     // The path separator character will be '/' and
     // it will always begin with '/'.
-    private String fileName;
+    private final String fileName;
 
-    private File file;
+    private final File file;
 
-    private User user;
+    private final User user;
 
     /**
      * Constructor, internal do not use directly.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java Mon Apr 18 14:00:03 2011
@@ -30,17 +30,21 @@ import org.apache.ftpserver.ConnectionCo
  */
 public class DefaultConnectionConfig implements ConnectionConfig {
 
-    private int maxLogins = 10;
+    private final int maxLogins;
 
-    private boolean anonymousLoginEnabled = true;
+    private final boolean anonymousLoginEnabled;
 
-    private int maxAnonymousLogins = 10;
+    private final int maxAnonymousLogins;
 
-    private int maxLoginFailures = 3;
+    private final int maxLoginFailures;
 
-    private int loginFailureDelay = 500;
+    private final int loginFailureDelay;
     
-    private int maxThreads = 0;
+    private final int maxThreads;
+
+    public DefaultConnectionConfig() {
+        this(true, 500, 10, 10, 3, 0);
+    }
 
     /**
      * Internal constructor, do not use directly. Use {@link ConnectionConfigFactory} instead

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java Mon Apr 18 14:00:03 2011
@@ -34,18 +34,18 @@ public class DefaultDataConnectionConfig
         DataConnectionConfiguration {
 
     // maximum idle time in seconds
-    private int idleTime;
-    private SslConfiguration ssl;
+    private final int idleTime;
+    private final SslConfiguration ssl;
 
-    private boolean activeEnabled;
-    private String activeLocalAddress;
-    private int activeLocalPort;
-    private boolean activeIpCheck;
+    private final boolean activeEnabled;
+    private final String activeLocalAddress;
+    private final int activeLocalPort;
+    private final boolean activeIpCheck;
     
-    private String passiveAddress;
-    private String passiveExternalAddress;
-    private PassivePorts passivePorts;
-    private boolean passiveIpCheck;
+    private final String passiveAddress;
+    private final String passiveExternalAddress;
+    private final PassivePorts passivePorts;
+    private final boolean passiveIpCheck;
     
     private final boolean implicitSsl;
 

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpRequest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpRequest.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpRequest.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpRequest.java Mon Apr 18 14:00:03 2011
@@ -30,16 +30,16 @@ import org.apache.ftpserver.ftplet.FtpRe
  */
 public class DefaultFtpRequest implements FtpRequest {
 
-    private String line;
+    private final String line;
 
-    private String command;
+    private final String command;
 
-    private String argument;
+    private final String argument;
     
     /**
      * timestamp when this request was received
      */
-    private long receivedTime = 0L;
+    private final long receivedTime;
 
     /**
      * Default constructor.
@@ -51,32 +51,37 @@ public class DefaultFtpRequest implement
     	//before constructing this FtpRequest object, then this method is not 
     	//going to be accurate and need to look for an alternative solution. 
     	this.receivedTime = System.currentTimeMillis();
-        parse(requestLine);
+        line = requestLine.trim();
+        int spInd = line.indexOf(' ');
+        command = parseCmd(line, spInd);
+        argument = parseArg(line, spInd);
     }
 
     /**
      * Parse the ftp command line.
      */
-    private void parse(final String lineToParse) {
-
-        // parse request
-        line = lineToParse.trim();
-        command = null;
-        argument = null;
-        int spInd = line.indexOf(' ');
+    private String parseCmd(final String lineToParse, int spInd) {
+        String cmd = null;
         if (spInd != -1) {
-            argument = line.substring(spInd + 1);
-            if (argument.equals("")) {
-                argument = null;
-            }
-            command = line.substring(0, spInd).toUpperCase();
+            cmd = line.substring(0, spInd).toUpperCase();
         } else {
-            command = line.toUpperCase();
+            cmd = line.toUpperCase();
         }
+        if ((cmd.length() > 0) && (cmd.charAt(0) == 'X')) {
+            cmd = cmd.substring(1);
+        }
+        return cmd;
+    }
 
-        if ((command.length() > 0) && (command.charAt(0) == 'X')) {
-            command = command.substring(1);
+    private String parseArg(final String lineToParse, int spInd) {
+        String arg = null;
+        if (spInd != -1) {
+            arg = line.substring(spInd + 1);
+            if (arg.equals("")) {
+                arg = null;
+            }
         }
+        return arg;
     }
 
     /**

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpSession.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpSession.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpSession.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpSession.java Mon Apr 18 14:00:03 2011
@@ -43,7 +43,7 @@ import org.apache.ftpserver.ftplet.User;
  */
 public class DefaultFtpSession implements FtpSession {
 
-    private FtpIoSession ioSession;
+    private final FtpIoSession ioSession;
 
     /**
      * Default constructor.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/FtpIoSession.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/FtpIoSession.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/FtpIoSession.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/FtpIoSession.java Mon Apr 18 14:00:03 2011
@@ -96,8 +96,8 @@ public class FtpIoSession implements IoS
 	    + "last-access-time";
     private static final String ATTRIBUTE_CACHED_REMOTE_ADDRESS = ATTRIBUTE_PREFIX
 	    + "cached-remote-address";
-    private IoSession wrappedSession;
-    private FtpServerContext context;
+    private final IoSession wrappedSession;
+    private final FtpServerContext context;
     /**
      * Last reply that was sent to the client, if any.
      */

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java Mon Apr 18 14:00:03 2011
@@ -54,11 +54,11 @@ public class IODataConnection implements
     
     private static final byte[] EOL = System.getProperty("line.separator").getBytes();
     
-    private FtpIoSession session;
+    private final FtpIoSession session;
 
-    private Socket socket;
+    private final Socket socket;
 
-    private ServerDataConnectionFactory factory;
+    private final ServerDataConnectionFactory factory;
 
     public IODataConnection(final Socket socket, final FtpIoSession session,
             final ServerDataConnectionFactory factory) {

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedDataTransferFtpReply.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedDataTransferFtpReply.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedDataTransferFtpReply.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedDataTransferFtpReply.java Mon Apr 18 14:00:03 2011
@@ -36,13 +36,13 @@ public class LocalizedDataTransferFtpRep
 	/**
 	 * The file or directory that data transfer is related to.
 	 */
-	private FtpFile file = null;
+	private final FtpFile file;
 
 	/**
 	 * total number of bytes transferred (bytes sent to the client or receivved
 	 * from the client)
 	 */
-	private long bytesTransferred = 0L;
+	private final long bytesTransferred;
 
 	/**
 	 * Creates a new instance of <code>LocalizedFileTransferReply</code>.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedFileActionFtpReply.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedFileActionFtpReply.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedFileActionFtpReply.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedFileActionFtpReply.java Mon Apr 18 14:00:03 2011
@@ -36,7 +36,7 @@ public class LocalizedFileActionFtpReply
 	/**
 	 * The file or directory that data transfer is related to.
 	 */
-	private FtpFile file = null;
+	private final FtpFile file;
 
 	/**
 	 * Creates a new instance of <code>LocalizedFileTransferReply</code>.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedRenameFtpReply.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedRenameFtpReply.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedRenameFtpReply.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/LocalizedRenameFtpReply.java Mon Apr 18 14:00:03 2011
@@ -37,12 +37,12 @@ public class LocalizedRenameFtpReply ext
 	/**
 	 * The from file
 	 */
-	private FtpFile from = null;
+	private final FtpFile from;
 
 	/**
 	 * The to file
 	 */
-	private FtpFile to = null;
+	private final FtpFile to;
 
 	/**
 	 * Creates a new instance of <code>LocalizedRenameFtpReply</code>.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ipfilter/MinaSessionFilter.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ipfilter/MinaSessionFilter.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ipfilter/MinaSessionFilter.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ipfilter/MinaSessionFilter.java Mon Apr 18 14:00:03 2011
@@ -35,7 +35,7 @@ public class MinaSessionFilter extends I
     /**
      * The actual (or wrapped) <code>SessionFilter</code> used by this filter.
      */
-    private SessionFilter filter = null;
+    private final SessionFilter filter;
 
     /**
      * Creates a new instance of <code>MinaSessionFilter</code>.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java Mon Apr 18 14:00:03 2011
@@ -40,23 +40,23 @@ import org.apache.mina.filter.firewall.S
  */
 public abstract class AbstractListener implements Listener {
 
-    private String serverAddress;
+    private final String serverAddress;
 
     private int port = 21;
 
-    private SslConfiguration ssl;
+    private final SslConfiguration ssl;
 
-    private boolean implicitSsl = false;
+    private final boolean implicitSsl;
     
-    private int idleTimeout;
+    private final int idleTimeout;
     
-    private List<InetAddress> blockedAddresses;
+    private final List<InetAddress> blockedAddresses;
 
-    private List<Subnet> blockedSubnets;
+    private final List<Subnet> blockedSubnets;
 
-    private SessionFilter sessionFilter = null;
+    private final SessionFilter sessionFilter;
 
-    private DataConnectionConfiguration dataConnectionConfig;
+    private final DataConnectionConfiguration dataConnectionConfig;
 
     /**
      * @deprecated Use the constructor with IpFilter instead. 
@@ -66,8 +66,13 @@ public abstract class AbstractListener i
     public AbstractListener(String serverAddress, int port, boolean implicitSsl, 
             SslConfiguration sslConfiguration, DataConnectionConfiguration dataConnectionConfig,
             int idleTimeout, List<InetAddress> blockedAddresses, List<Subnet> blockedSubnets) {
-    	this(serverAddress, port, implicitSsl, sslConfiguration, 
-    		dataConnectionConfig, idleTimeout, createBlackListFilter(blockedAddresses, blockedSubnets));
+        this.serverAddress = serverAddress;
+        this.port = port;
+        this.implicitSsl = implicitSsl;
+        this.dataConnectionConfig = dataConnectionConfig;
+        this.ssl = sslConfiguration;
+        this.idleTimeout = idleTimeout;
+        this.sessionFilter = createBlackListFilter(blockedAddresses, blockedSubnets);
     	this.blockedAddresses = blockedAddresses;
     	this.blockedSubnets = blockedSubnets;
     }
@@ -86,6 +91,8 @@ public abstract class AbstractListener i
         this.ssl = sslConfiguration;
         this.idleTimeout = idleTimeout;
         this.sessionFilter = sessionFilter;
+        this.blockedAddresses = null;
+        this.blockedSubnets = null;
     }
     
     /**

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpHandlerAdapter.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpHandlerAdapter.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpHandlerAdapter.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpHandlerAdapter.java Mon Apr 18 14:00:03 2011
@@ -39,7 +39,7 @@ import org.apache.mina.filter.logging.Md
  *
  */
 public class FtpHandlerAdapter implements IoHandler {
-    private FtpServerContext context;
+    private final FtpServerContext context;
 
     private FtpHandler ftpHandler;
 

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpServerProtocolCodecFactory.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpServerProtocolCodecFactory.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpServerProtocolCodecFactory.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/FtpServerProtocolCodecFactory.java Mon Apr 18 14:00:03 2011
@@ -35,10 +35,10 @@ import org.apache.mina.filter.codec.text
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */
 public class FtpServerProtocolCodecFactory implements ProtocolCodecFactory {
-    private ProtocolDecoder decoder = new TextLineDecoder(Charset
+    private final ProtocolDecoder decoder = new TextLineDecoder(Charset
             .forName("UTF-8"));
 
-    private ProtocolEncoder encoder = new FtpResponseEncoder();
+    private final ProtocolEncoder encoder = new FtpResponseEncoder();
 
     public ProtocolDecoder getDecoder(IoSession session) throws Exception {
         return decoder;

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/message/impl/DefaultMessageResource.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/message/impl/DefaultMessageResource.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/message/impl/DefaultMessageResource.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/message/impl/DefaultMessageResource.java Mon Apr 18 14:00:03 2011
@@ -57,9 +57,9 @@ public class DefaultMessageResource impl
 
     private final static String RESOURCE_PATH = "org/apache/ftpserver/message/";
 
-    private List<String> languages;
+    private final List<String> languages;
 
-    private Map<String, PropertiesPair> messages;
+    private final Map<String, PropertiesPair> messages;
 
     /**
      * Internal constructor, do not use directly. Use {@link MessageResourceFactory} instead.
@@ -68,6 +68,8 @@ public class DefaultMessageResource impl
             File customMessageDirectory) {
         if(languages != null) {
             this.languages = Collections.unmodifiableList(languages);
+        } else {
+            this.languages = null;
         }
 
         // populate different properties

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/AliasKeyManager.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/AliasKeyManager.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/AliasKeyManager.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/AliasKeyManager.java Mon Apr 18 14:00:03 2011
@@ -40,9 +40,9 @@ import javax.net.ssl.X509KeyManager;
  */
 public final class AliasKeyManager implements X509KeyManager {
 
-    private X509KeyManager delegate;
+    private final X509KeyManager delegate;
 
-    private String serverKeyAlias;
+    private final String serverKeyAlias;
 
     /**
      * Constructor.

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/DefaultSslConfiguration.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/DefaultSslConfiguration.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/DefaultSslConfiguration.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ssl/impl/DefaultSslConfiguration.java Mon Apr 18 14:00:03 2011
@@ -45,21 +45,21 @@ import org.apache.ftpserver.util.ClassUt
  */
 public class DefaultSslConfiguration implements SslConfiguration {
 
-    private KeyManagerFactory keyManagerFactory;
+    private final KeyManagerFactory keyManagerFactory;
 
-    private TrustManagerFactory trustManagerFactory;
+    private final TrustManagerFactory trustManagerFactory;
 
     private String sslProtocol = "TLS";
 
-    private ClientAuth clientAuth = ClientAuth.NONE;
+    private final ClientAuth clientAuth;// = ClientAuth.NONE;
 
-    private String keyAlias;
+    private final String keyAlias;
 
-    private String[] enabledCipherSuites;
+    private final String[] enabledCipherSuites;
     
-    private SSLContext sslContext = null;
+    private final SSLContext sslContext;
     
-    private SSLSocketFactory socketFactory = null;
+    private final SSLSocketFactory socketFactory;
     
     /**
      * Internal constructor, do not use directly. Instead, use {@link SslConfigurationFactory}
@@ -76,7 +76,8 @@ public class DefaultSslConfiguration imp
         this.keyManagerFactory = keyManagerFactory;
         this.sslProtocol = sslProtocol;
         this.trustManagerFactory = trustManagerFactory;
-        initialize();
+        this.sslContext = initContext();
+        this.socketFactory = sslContext.getSocketFactory();
     }
     
     public SSLSocketFactory getSocketFactory() throws GeneralSecurityException {
@@ -116,7 +117,7 @@ public class DefaultSslConfiguration imp
         }
     }
     
-    private void initialize() throws GeneralSecurityException {
+    private SSLContext initContext() throws GeneralSecurityException {
         KeyManager[] keyManagers = keyManagerFactory.getKeyManagers();
 
         // wrap key managers to allow us to control their behavior
@@ -132,9 +133,9 @@ public class DefaultSslConfiguration imp
         }
 
         // create and initialize the SSLContext
-        sslContext = SSLContext.getInstance(sslProtocol);
-        sslContext.init(keyManagers, trustManagerFactory.getTrustManagers(), null);
+        SSLContext ctx = SSLContext.getInstance(sslProtocol);
+        ctx.init(keyManagers, trustManagerFactory.getTrustManagers(), null);
         //Create the socket factory
-        socketFactory = sslContext.getSocketFactory();
+        return ctx;
     }
 }

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/AbstractUserManager.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/AbstractUserManager.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/AbstractUserManager.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/AbstractUserManager.java Mon Apr 18 14:00:03 2011
@@ -53,10 +53,13 @@ public abstract class AbstractUserManage
 
     public static final String ATTR_MAX_LOGIN_PER_IP = "maxloginperip";
 
-    private String adminName;
+    private final String adminName;
     
-    private PasswordEncryptor passwordEncryptor = new Md5PasswordEncryptor();
+    private final PasswordEncryptor passwordEncryptor;
 
+    public AbstractUserManager() {
+        this(null,  new Md5PasswordEncryptor());
+    }
 
     /**
      * Internal constructor, do not use directly

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginPermission.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginPermission.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginPermission.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginPermission.java Mon Apr 18 14:00:03 2011
@@ -31,9 +31,9 @@ import org.apache.ftpserver.ftplet.Autho
  */
 public class ConcurrentLoginPermission implements Authority {
 
-    private int maxConcurrentLogins;
+    private final int maxConcurrentLogins;
 
-    private int maxConcurrentLoginsPerIP;
+    private final int maxConcurrentLoginsPerIP;
 
     public ConcurrentLoginPermission(int maxConcurrentLogins,
             int maxConcurrentLoginsPerIP) {

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginRequest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginRequest.java?rev=1094579&r1=1094578&r2=1094579&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginRequest.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/usermanager/impl/ConcurrentLoginRequest.java Mon Apr 18 14:00:03 2011
@@ -30,9 +30,9 @@ import org.apache.ftpserver.ftplet.Autho
  */
 public class ConcurrentLoginRequest implements AuthorizationRequest {
 
-    private int concurrentLogins;
+    private final int concurrentLogins;
 
-    private int concurrentLoginsFromThisIP;
+    private final int concurrentLoginsFromThisIP;
 
     private int maxConcurrentLogins = 0;