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

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit d1f1ca1f1e44b72114390b815053d4477452d7df
Author: Benoit Tellier <[email protected]>
AuthorDate: Sun Jan 30 22:32:36 2022 +0700

    [REFACTORING] SMTPResponse: Remove buggy constructor
    
     - Calls could easily be switched to the other cnstructor
     - It was buggy: null pointer exception, array out of
     bound exception... Risky stuff!
     - Also, a custom AuthenticationHook disconnecting the
     session was throwing (new SMTPResponse("") throws)
---
 .../apache/james/protocols/smtp/SMTPResponse.java  | 39 ----------------------
 .../james/protocols/smtp/SMTPStartTlsResponse.java |  4 ---
 .../protocols/smtp/core/esmtp/AuthCmdHandler.java  |  4 +--
 .../smtp/core/esmtp/StartTlsCmdHandler.java        |  4 +--
 4 files changed, 3 insertions(+), 48 deletions(-)

diff --git 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
index 9c8eeec..7db6efe 100644
--- 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
+++ 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
@@ -22,18 +22,12 @@ package org.apache.james.protocols.smtp;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.james.protocols.api.AbstractResponse;
 
 /**
  * Contains an SMTP result
  */
 public class SMTPResponse extends AbstractResponse {
-
-    protected SMTPResponse() {
-        
-    }
-    
     /**
      * Construct a new SMTPResponse. The given code and description can not be 
null, if null an IllegalArgumentException
      * get thrown
@@ -45,37 +39,6 @@ public class SMTPResponse extends AbstractResponse {
         super(code, description);
     }
 
-    /**
-     * Construct a new SMTPResponse. The given rawLine need to be in format 
[SMTPResponseReturnCode SMTResponseDescription].
-     * If this is not the case an IllegalArgumentException get thrown.
-     * 
-     * @param rawLine the raw SMTPResponse
-     */
-    public SMTPResponse(String rawLine) {
-        this(extractCode(rawLine), extractResponse(rawLine));
-    }
-    
-
-    private  static String extractCode(String raw) {
-        String[] args = StringUtils.split(raw, " ");
-        if (args != null && args.length > 1) {
-            return args[0];
-            
-        } else {
-            throw new IllegalArgumentException("Invalid Response format. 
Format should be [Code Description]");
-        }
-    }
-    
-    private  static String extractResponse(String raw) {
-        String[] args = StringUtils.split(raw, " ");
-        if (args != null && args.length > 1) {
-            return args[2];
-            
-        } else {
-            return null;
-        }
-    }
-
     @Override
     public List<CharSequence> getLines() {
         List<CharSequence> responseList = new ArrayList<>();
@@ -97,6 +60,4 @@ public class SMTPResponse extends AbstractResponse {
 
         return responseList;
     }
-
-
 }
diff --git 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPStartTlsResponse.java
 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPStartTlsResponse.java
index e42e787..f49bfba 100644
--- 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPStartTlsResponse.java
+++ 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPStartTlsResponse.java
@@ -34,10 +34,6 @@ public class SMTPStartTlsResponse extends SMTPResponse 
implements StartTlsRespon
         super(code, description);
     }
 
-    public SMTPStartTlsResponse(String rawLine) {
-        super(rawLine);
-    }
-
     /**
      * Returns an immutable {@link StartTlsResponse}
      */
diff --git 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
index 210c6a8..8173722 100644
--- 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
+++ 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
@@ -448,9 +448,7 @@ public class AuthCmdHandler
                 }
                 return response;
             } else if (returnCode.isDisconnected()) {
-                SMTPResponse response =  new SMTPResponse("");
-                response.setEndSession(true);
-                return response;
+                return Response.DISCONNECT;
             }
         }
         return null;
diff --git 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/StartTlsCmdHandler.java
 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/StartTlsCmdHandler.java
index 539eda5..8a880b1 100644
--- 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/StartTlsCmdHandler.java
+++ 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/StartTlsCmdHandler.java
@@ -48,8 +48,8 @@ public class StartTlsCmdHandler implements 
CommandHandler<SMTPSession>, EhloExte
 
     private static final Response TLS_ALREADY_ACTIVE = new SMTPResponse("500", 
DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_CMD) + " 
TLS already active RFC2487 5.2").immutable();
     private static final Response READY_FOR_STARTTLS = new 
SMTPStartTlsResponse("220", DSNStatus.getStatus(DSNStatus.SUCCESS, 
DSNStatus.UNDEFINED_STATUS) + " Ready to start TLS").immutable();
-    private static final Response SYNTAX_ERROR = new SMTPResponse("501 " + 
DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG) + " 
Syntax error (no parameters allowed) with STARTTLS command").immutable();
-    private static final Response ALREADY_AUTH_ERROR = new SMTPResponse("501 " 
+ DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG) + " 
Syntax error (invalid command in this state) Already 
authenticated...").immutable();
+    private static final Response SYNTAX_ERROR = new SMTPResponse("501", 
DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG) + " 
Syntax error (no parameters allowed) with STARTTLS command").immutable();
+    private static final Response ALREADY_AUTH_ERROR = new SMTPResponse("501", 
DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG) + " 
Syntax error (invalid command in this state) Already 
authenticated...").immutable();
     private static final Response NOT_SUPPORTED = new 
SMTPResponse(SMTPRetCode.SYNTAX_ERROR_COMMAND_UNRECOGNIZED, 
DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_CMD) + " 
Command " + COMMAND_NAME + " unrecognized.").immutable();
 
     @Override

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to