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 e624fcd016db8ae4a008e8be4830f093a8ddc957 Author: Benoit Tellier <[email protected]> AuthorDate: Mon Dec 9 10:24:21 2019 +0700 PROTOCOLS-120 Simplify branching logic in IMAP command parsers --- .../imap/decode/base/AbstractImapCommandParser.java | 13 ++++++------- .../james/imap/decode/main/DefaultImapDecoder.java | 19 ++++++++----------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java index 46466f5..0e17dc2 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java @@ -64,13 +64,12 @@ public abstract class AbstractImapCommandParser implements ImapCommandParser { public final ImapMessage parse(ImapRequestLineReader request, Tag tag, ImapSession session) { if (!command.validForState(session.getState())) { return statusResponseFactory.taggedNo(tag, command, HumanReadableText.INVALID_COMMAND); - } else { - try { - return decode(command, request, tag, session); - } catch (DecodingException e) { - LOGGER.debug("Cannot parse protocol ", e); - return statusResponseFactory.taggedBad(tag, command, e.getKey()); - } + } + try { + return decode(command, request, tag, session); + } catch (DecodingException e) { + LOGGER.debug("Cannot parse protocol ", e); + return statusResponseFactory.taggedBad(tag, command, e.getKey()); } } diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java index 296a7c5..cce1b01 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java @@ -90,14 +90,12 @@ public class DefaultImapDecoder implements ImapDecoder { ImapMessage message = responseFactory.bye(HumanReadableText.BYE_UNKNOWN_COMMAND); session.logout(); return message; - } else { - session.setAttribute(INVALID_COMMAND_COUNT, count); - if (tag == null) { - return responseFactory.untaggedBad(HumanReadableText.UNKNOWN_COMMAND); - } else { - return responseFactory.taggedBad(tag, null, HumanReadableText.UNKNOWN_COMMAND); - } } + session.setAttribute(INVALID_COMMAND_COUNT, count); + if (tag == null) { + return responseFactory.untaggedBad(HumanReadableText.UNKNOWN_COMMAND); + } + return responseFactory.taggedBad(tag, null, HumanReadableText.UNKNOWN_COMMAND); } private int retrieveUnknownCommandCount(ImapSession session) { @@ -112,10 +110,9 @@ public class DefaultImapDecoder implements ImapDecoder { if (command == null) { LOGGER.info("Missing command implementation for commmand {}", commandName); return unknownCommand(tag, session); - } else { - ImapMessage message = command.parse(request, tag, session); - session.setAttribute(INVALID_COMMAND_COUNT, 0); - return message; } + ImapMessage message = command.parse(request, tag, session); + session.setAttribute(INVALID_COMMAND_COUNT, 0); + return message; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
