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 f0d6ab3d183a28fee66da4f44e7c9fb8232edaa3 Author: Matthieu Baechler <[email protected]> AuthorDate: Mon Sep 9 18:39:07 2019 +0200 JAMES-2894 Automatic refactoring of Java 7 code: * generics can omit the actual type when instanciating * use switch/case on strings * use Objects for equals/hashcode * use try-with-resources * avoid using Enumeration --- .../apache/james/mailbox/model/UpdatedFlags.java | 19 +++------ .../james/mailbox/maildir/MaildirFolder.java | 3 +- .../mailbox/maildir/mail/model/MaildirMessage.java | 12 +----- .../james/vault/search/DeletedMessageField.java | 14 +++---- .../store/mail/model/impl/SimpleProperty.java | 18 ++++----- .../org/apache/james/ai/classic/SqlResources.java | 2 +- .../transport/mailets/AmqpForwardAttribute.java | 14 +------ .../matchers/CompareNumericHeaderValue.java | 46 ++++++++++++---------- .../james/transport/matchers/FileRegexMatcher.java | 21 +++------- .../james/imap/decode/ImapRequestLineReader.java | 29 ++++---------- .../main/OutputStreamImapResponseWriter.java | 10 +---- .../james/imap/message/response/ACLResponse.java | 9 ++--- .../imap/message/response/ListRightsResponse.java | 12 +++--- .../imap/message/response/MyRightsResponse.java | 10 ++--- .../imap/message/response/QuotaRootResponse.java | 10 ++--- .../imap/encode/base/ByteImapResponseWriter.java | 11 +----- .../protocols/smtp/AbstractSMTPServerTest.java | 9 +---- .../james/server/core/MimeMessageSource.java | 15 ++----- .../james/onami/lifecycle/DefaultStager.java | 2 +- .../lifecycle/osgi/OSGIConfigurationProvider.java | 13 +----- .../JMXEnabledScheduledThreadPoolExecutor.java | 2 +- .../concurrent/JMXEnabledThreadPoolExecutor.java | 2 +- .../org/apache/james/util/sql/SqlResources.java | 2 +- .../mailrepository/file/FileMailRepository.java | 2 +- .../sieverepository/file/SieveFileRepository.java | 32 ++------------- .../mailrepository/jdbc/MimeMessageJDBCSource.java | 13 ++---- .../lib/AbstractStateCompositeProcessor.java | 2 +- .../lib/AbstractStateMailetProcessor.java | 2 +- .../transcode/MessageToCoreToMessage.java | 8 +--- .../java/org/apache/james/fetchmail/FetchMail.java | 5 +-- .../draft/methods/SetMailboxesUpdateProcessor.java | 7 +--- ...nabledOrderedMemoryAwareThreadPoolExecutor.java | 2 +- .../apache/james/smtpserver/SPFHandlerTest.java | 43 ++++++++++---------- 33 files changed, 138 insertions(+), 263 deletions(-) diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java index 4be5e6a..b6690d2 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java @@ -21,13 +21,13 @@ package org.apache.james.mailbox.model; import java.util.Arrays; import java.util.Iterator; +import java.util.Objects; import java.util.Optional; import javax.mail.Flags; import org.apache.james.mailbox.MessageUid; import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; import com.google.common.base.Preconditions; /** @@ -240,22 +240,15 @@ public class UpdatedFlags { UpdatedFlags that = (UpdatedFlags) other; - if (!uid.equals(that.uid)) { - return false; - } - if (modSeq != that.modSeq) { - return false; - } - if (oldFlags != null ? !oldFlags.equals(that.oldFlags) : that.oldFlags != null) { - return false; - } - return !(newFlags != null ? !newFlags.equals(that.newFlags) : that.newFlags != null); - + return Objects.equals(uid, that.uid) && + Objects.equals(oldFlags, that.oldFlags) && + Objects.equals(newFlags, that.newFlags) && + Objects.equals(modSeq, that.modSeq); } @Override public int hashCode() { - return Objects.hashCode(uid, oldFlags, newFlags, modSeq); + return Objects.hash(uid, oldFlags, newFlags, modSeq); } @Override diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java index ec87d3c..e1d19a2 100644 --- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java +++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java @@ -34,6 +34,7 @@ import java.util.LinkedList; import java.util.Map; import java.util.Map.Entry; import java.util.NoSuchElementException; +import java.util.Objects; import java.util.Optional; import java.util.Properties; import java.util.SortedMap; @@ -965,7 +966,7 @@ public class MaildirFolder { public void setACL(MailboxSession session, MailboxACL acl) throws MailboxException { MailboxACL old = this.acl; - if (old != acl && (old == null || !old.equals(acl))) { + if (!Objects.equals(old, acl)) { /* change only if different */ saveACL(acl, session); this.acl = acl; diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java index 2e2e7f2..a9e37b6 100644 --- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java +++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java @@ -65,9 +65,7 @@ public class MaildirMessage implements Message { if (parsed) { return; } - SharedFileInputStream tmpMsgIn = null; - try { - tmpMsgIn = new SharedFileInputStream(messageName.getFile()); + try (SharedFileInputStream tmpMsgIn = new SharedFileInputStream(messageName.getFile())) { bodyStartOctet = bodyStartOctet(tmpMsgIn); @@ -138,13 +136,7 @@ public class MaildirMessage implements Message { // has successfully been parsen when appending, shouldn't give any // problems } finally { - if (tmpMsgIn != null) { - try { - tmpMsgIn.close(); - } catch (IOException e) { - // ignore on close - } - } + // ignore on close parsed = true; } } diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/DeletedMessageField.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/DeletedMessageField.java index cc1bddc..76b6f7c 100644 --- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/DeletedMessageField.java +++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/DeletedMessageField.java @@ -65,12 +65,12 @@ public class DeletedMessageField<T> { ValueExtractor<String> SUBJECT_EXTRACTOR = DeletedMessage::getSubject; } - static final DeletedMessageField<ZonedDateTime> DELETION_DATE = new DeletedMessageField<ZonedDateTime>(FieldName.DELETION_DATE, DELETION_DATE_EXTRACTOR); - static final DeletedMessageField<ZonedDateTime> DELIVERY_DATE = new DeletedMessageField<ZonedDateTime>(FieldName.DELIVERY_DATE, DELIVERY_DATE_EXTRACTOR); - static final DeletedMessageField<Collection<MailAddress>> RECIPIENTS = new DeletedMessageField<Collection<MailAddress>>(FieldName.RECIPIENTS, RECIPIENTS_EXTRACTOR); - static final DeletedMessageField<MailAddress> SENDER = new DeletedMessageField<MailAddress>(FieldName.SENDER, SENDER_EXTRACTOR); - static final DeletedMessageField<Boolean> HAS_ATTACHMENT = new DeletedMessageField<Boolean>(FieldName.HAS_ATTACHMENT, HAS_ATTACHMENT_EXTRACTOR); - static final DeletedMessageField<Collection<MailboxId>> ORIGIN_MAILBOXES = new DeletedMessageField<Collection<MailboxId>>(FieldName.ORIGIN_MAILBOXES, ORIGIN_MAILBOXES_EXTRACTOR); - static final DeletedMessageField<String> SUBJECT = new DeletedMessageField<String>(FieldName.SUBJECT, SUBJECT_EXTRACTOR); + static final DeletedMessageField<ZonedDateTime> DELETION_DATE = new DeletedMessageField<>(FieldName.DELETION_DATE, DELETION_DATE_EXTRACTOR); + static final DeletedMessageField<ZonedDateTime> DELIVERY_DATE = new DeletedMessageField<>(FieldName.DELIVERY_DATE, DELIVERY_DATE_EXTRACTOR); + static final DeletedMessageField<Collection<MailAddress>> RECIPIENTS = new DeletedMessageField<>(FieldName.RECIPIENTS, RECIPIENTS_EXTRACTOR); + static final DeletedMessageField<MailAddress> SENDER = new DeletedMessageField<>(FieldName.SENDER, SENDER_EXTRACTOR); + static final DeletedMessageField<Boolean> HAS_ATTACHMENT = new DeletedMessageField<>(FieldName.HAS_ATTACHMENT, HAS_ATTACHMENT_EXTRACTOR); + static final DeletedMessageField<Collection<MailboxId>> ORIGIN_MAILBOXES = new DeletedMessageField<>(FieldName.ORIGIN_MAILBOXES, ORIGIN_MAILBOXES_EXTRACTOR); + static final DeletedMessageField<String> SUBJECT = new DeletedMessageField<>(FieldName.SUBJECT, SUBJECT_EXTRACTOR); } diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleProperty.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleProperty.java index c21d5b5..374f6d1 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleProperty.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleProperty.java @@ -18,6 +18,8 @@ ****************************************************************/ package org.apache.james.mailbox.store.mail.model.impl; +import java.util.Objects; + import org.apache.james.mailbox.store.mail.model.Property; public final class SimpleProperty implements Property { @@ -102,21 +104,15 @@ public final class SimpleProperty implements Property { return false; } SimpleProperty that = (SimpleProperty) o; - if (namespace != null ? !namespace.equals(that.namespace) : that.namespace != null) { - return false; - } - if (localName != null ? !localName.equals(that.localName) : that.localName != null) { - return false; - } - return !(value != null ? !value.equals(that.value) : that.value != null); + + return Objects.equals(namespace, that.namespace) && + Objects.equals(localName, that.localName) && + Objects.equals(value, that.value); } @Override public int hashCode() { - int result = namespace != null ? namespace.hashCode() : 0; - result = 31 * result + (localName != null ? localName.hashCode() : 0); - result = 31 * result + (value != null ? value.hashCode() : 0); - return result; + return Objects.hash(namespace, localName, value); } } diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/SqlResources.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/SqlResources.java index d227ad4..6b1f774 100644 --- a/mailet/ai/src/main/java/org/apache/james/ai/classic/SqlResources.java +++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/SqlResources.java @@ -52,7 +52,7 @@ class SqlResources { private final Map<String, String> dbOptions = new HashMap<>(); /** A set of all used String values */ - private static final Map<String, String> stringTable = java.util.Collections.synchronizedMap(new HashMap<String, String>()); + private static final Map<String, String> stringTable = java.util.Collections.synchronizedMap(new HashMap<>()); /** * <p> diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java index 13f7c7e..84ed6ff 100644 --- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java @@ -149,20 +149,10 @@ public class AmqpForwardAttribute extends GenericMailet { } private void trySendContent(Stream<byte[]> content) throws IOException, TimeoutException { - Connection connection = null; - Channel channel = null; - try { - connection = connectionFactory.newConnection(); - channel = connection.createChannel(); + try (Connection connection = connectionFactory.newConnection(); + Channel channel = connection.createChannel()) { channel.exchangeDeclarePassive(exchange); sendContentOnChannel(channel, content); - } finally { - if (channel != null) { - channel.close(); - } - if (connection != null) { - connection.close(); - } } } diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/CompareNumericHeaderValue.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/CompareNumericHeaderValue.java index 44f3260..91aec46 100644 --- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/CompareNumericHeaderValue.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/CompareNumericHeaderValue.java @@ -74,26 +74,32 @@ public class CompareNumericHeaderValue extends GenericMatcher { } if (st.hasMoreTokens()) { String comparisonOperatorString = st.nextToken().trim(); - if (comparisonOperatorString.equals("<") - || comparisonOperatorString.equals("LT")) { - comparisonOperator = LT; - } else if (comparisonOperatorString.equals("<=") - || comparisonOperatorString.equals("=<") - || comparisonOperatorString.equals("LE")) { - comparisonOperator = LE; - } else if (comparisonOperatorString.equals("==") - || comparisonOperatorString.equals("=") - || comparisonOperatorString.equals("EQ")) { - comparisonOperator = EQ; - } else if (comparisonOperatorString.equals(">=") - || comparisonOperatorString.equals("=>") - || comparisonOperatorString.equals("GE")) { - comparisonOperator = GE; - } else if (comparisonOperatorString.equals(">") - || comparisonOperatorString.equals("GT")) { - comparisonOperator = GT; - } else { - throw new MessagingException("Bad comparisonOperator: \"" + comparisonOperatorString + "\""); + switch (comparisonOperatorString) { + case "<": + case "LT": + comparisonOperator = LT; + break; + case "<=": + case "=<": + case "LE": + comparisonOperator = LE; + break; + case "==": + case "=": + case "EQ": + comparisonOperator = EQ; + break; + case ">=": + case "=>": + case "GE": + comparisonOperator = GE; + break; + case ">": + case "GT": + comparisonOperator = GT; + break; + default: + throw new MessagingException("Bad comparisonOperator: \"" + comparisonOperatorString + "\""); } } else { throw new MessagingException("Missing comparisonOperator"); diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/FileRegexMatcher.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/FileRegexMatcher.java index 1f1c082..e9468fb 100755 --- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/FileRegexMatcher.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/FileRegexMatcher.java @@ -37,9 +37,7 @@ public class FileRegexMatcher extends GenericRegexMatcher { @Override public void init() throws MessagingException { - java.io.RandomAccessFile patternSource = null; - try { - patternSource = new java.io.RandomAccessFile(getCondition(), "r"); + try (java.io.RandomAccessFile patternSource = new java.io.RandomAccessFile(getCondition(), "r")) { int lines = 0; while (patternSource.readLine() != null) { lines++; @@ -50,24 +48,17 @@ public class FileRegexMatcher extends GenericRegexMatcher { String line = patternSource.readLine(); patterns[i][0] = line.substring(0, line.indexOf(':')); patterns[i][1] = line.substring(line.indexOf(':') + 1); - } + } compile(patterns); - + } catch (java.io.FileNotFoundException fnfe) { throw new MessagingException("Could not locate patterns.", fnfe); - } catch (java.io.IOException ioe) { + } catch (IOException ioe) { throw new MessagingException("Could not read patterns.", ioe); } catch (PatternSyntaxException mp) { throw new MessagingException("Could not initialize regex patterns", mp); - } finally { - if (patternSource != null) { - // close the file - try { - patternSource.close(); - } catch (IOException e) { - // just ignore on close - } - } } + // close the file + // just ignore on close } } diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java index b6983ed..7532ece 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java @@ -375,36 +375,23 @@ public abstract class ImapRequestLineReader { if (charset == null) { return consumeLiteral(US_ASCII); } else { - FastByteArrayOutputStream out = new FastByteArrayOutputStream(); - InputStream in = null; - try { - in = consumeLiteral(false); - byte[] buf = new byte[ 0xFFFF ]; - + try (FastByteArrayOutputStream out = new FastByteArrayOutputStream(); + InputStream in = consumeLiteral(false)) { + byte[] buf = new byte[0xFFFF]; + for (int len; (len = in.read(buf)) != -1; ) { out.write(buf, 0, len); } - + final byte[] bytes = out.toByteArray(); final ByteBuffer buffer = ByteBuffer.wrap(bytes); return decode(charset, buffer); - + } catch (IOException e) { throw new DecodingException(HumanReadableText.BAD_IO_ENCODING, "Bad character encoding", e); - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException e) { - // ignore on close - } - } - try { - out.close(); - } catch (IOException e) { - // ignore on close - } } + // ignore on close + // ignore on close } } diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/main/OutputStreamImapResponseWriter.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/main/OutputStreamImapResponseWriter.java index 4ceaad6..27539bd 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/decode/main/OutputStreamImapResponseWriter.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/main/OutputStreamImapResponseWriter.java @@ -46,18 +46,12 @@ public class OutputStreamImapResponseWriter implements ImapResponseWriter { @Override public void write(Literal literal) throws IOException { - InputStream in = null; - try { - in = literal.getInputStream(); + try (InputStream in = literal.getInputStream()) { byte[] buffer = new byte[1024]; - for (int len; (len = in.read(buffer)) != -1;) { + for (int len; (len = in.read(buffer)) != -1; ) { output.write(buffer, 0, len); } - } finally { - if (in != null) { - in.close(); - } } } diff --git a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ACLResponse.java b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ACLResponse.java index a1a5dd1..fbe53d7 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ACLResponse.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ACLResponse.java @@ -20,6 +20,7 @@ package org.apache.james.imap.message.response; import java.util.Map.Entry; +import java.util.Objects; import org.apache.james.imap.api.ImapConstants; import org.apache.james.imap.api.message.response.ImapResponseMessage; @@ -46,9 +47,8 @@ public final class ACLResponse implements ImapResponseMessage { public boolean equals(Object o) { if (o instanceof ACLResponse) { ACLResponse other = (ACLResponse) o; - return (this.acl == other.acl || (this.acl != null && this.acl.equals(other.acl))) - && (this.mailboxName == other.mailboxName || (this.mailboxName != null && this.mailboxName.equals(other.mailboxName))) - ; + return (Objects.equals(this.acl, other.acl)) + && (Objects.equals(this.mailboxName, other.mailboxName)); } return false; } @@ -63,8 +63,7 @@ public final class ACLResponse implements ImapResponseMessage { @Override public int hashCode() { - final int PRIME = 31; - return PRIME * acl.hashCode() + mailboxName.hashCode(); + return Objects.hash(acl, mailboxName); } @Override diff --git a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java index 268229e..4e07406 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java @@ -20,6 +20,7 @@ package org.apache.james.imap.message.response; import java.util.Arrays; +import java.util.Objects; import org.apache.james.imap.api.ImapConstants; import org.apache.james.imap.api.message.response.ImapResponseMessage; @@ -45,7 +46,9 @@ public final class ListRightsResponse implements ImapResponseMessage { public boolean equals(Object o) { if (o instanceof ListRightsResponse) { ListRightsResponse other = (ListRightsResponse) o; - return (this.mailboxName == other.mailboxName || (this.mailboxName != null && this.mailboxName.equals(other.mailboxName))) && (this.identifier == other.identifier || (this.identifier != null && this.identifier.equals(other.identifier))) && Arrays.equals(this.rights, other.rights); + return (Objects.equals(this.mailboxName, other.mailboxName)) && + (Objects.equals(this.identifier, other.identifier)) && + Arrays.equals(this.rights, other.rights); } return false; } @@ -64,12 +67,7 @@ public final class ListRightsResponse implements ImapResponseMessage { @Override public int hashCode() { - final int PRIME = 31; - int hashCode = (mailboxName == null ? 0 : mailboxName.hashCode()); - hashCode = PRIME * hashCode + (identifier == null ? 0 : identifier.hashCode()); - hashCode = PRIME * hashCode + (rights == null ? 0 : Arrays.hashCode(rights)); - - return hashCode; + return Objects.hash(mailboxName, identifier, rights); } @Override diff --git a/protocols/imap/src/main/java/org/apache/james/imap/message/response/MyRightsResponse.java b/protocols/imap/src/main/java/org/apache/james/imap/message/response/MyRightsResponse.java index ad093ae..30e853c 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/message/response/MyRightsResponse.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/message/response/MyRightsResponse.java @@ -19,6 +19,8 @@ package org.apache.james.imap.message.response; +import java.util.Objects; + import org.apache.james.imap.api.ImapConstants; import org.apache.james.imap.api.message.response.ImapResponseMessage; import org.apache.james.mailbox.model.MailboxACL; @@ -40,9 +42,8 @@ public final class MyRightsResponse implements ImapResponseMessage { public boolean equals(Object o) { if (o instanceof MyRightsResponse) { MyRightsResponse other = (MyRightsResponse) o; - return (this.myRights == other.myRights || (this.myRights != null && this.myRights.equals(other.myRights))) - && (this.mailboxName == other.mailboxName || (this.mailboxName != null && this.mailboxName.equals(other.mailboxName))) - ; + return Objects.equals(this.myRights, other.myRights) && + Objects.equals(this.mailboxName, other.mailboxName); } return false; } @@ -57,8 +58,7 @@ public final class MyRightsResponse implements ImapResponseMessage { @Override public int hashCode() { - final int PRIME = 31; - return PRIME * myRights.hashCode() + mailboxName.hashCode(); + return Objects.hash(myRights, mailboxName); } @Override diff --git a/protocols/imap/src/main/java/org/apache/james/imap/message/response/QuotaRootResponse.java b/protocols/imap/src/main/java/org/apache/james/imap/message/response/QuotaRootResponse.java index b4dedb5..604b75f 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/message/response/QuotaRootResponse.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/message/response/QuotaRootResponse.java @@ -19,6 +19,8 @@ package org.apache.james.imap.message.response; +import java.util.Objects; + import org.apache.james.imap.api.ImapConstants; import org.apache.james.imap.api.message.response.ImapResponseMessage; @@ -37,9 +39,8 @@ public class QuotaRootResponse implements ImapResponseMessage { public boolean equals(Object o) { if (o instanceof QuotaRootResponse) { QuotaRootResponse other = (QuotaRootResponse) o; - return (this.quotaRoot == other.quotaRoot || (this.quotaRoot != null && this.quotaRoot.equals(other.quotaRoot))) - && (this.mailboxName == other.mailboxName || (this.mailboxName != null && this.mailboxName.equals(other.mailboxName))) - ; + return Objects.equals(this.quotaRoot, other.quotaRoot) && + Objects.equals(this.mailboxName, other.mailboxName); } return false; } @@ -54,8 +55,7 @@ public class QuotaRootResponse implements ImapResponseMessage { @Override public int hashCode() { - final int PRIME = 31; - return PRIME * quotaRoot.hashCode() + mailboxName.hashCode(); + return Objects.hash(quotaRoot, mailboxName); } @Override diff --git a/protocols/imap/src/test/java/org/apache/james/imap/encode/base/ByteImapResponseWriter.java b/protocols/imap/src/test/java/org/apache/james/imap/encode/base/ByteImapResponseWriter.java index 3d28708..dd00225 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/encode/base/ByteImapResponseWriter.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/encode/base/ByteImapResponseWriter.java @@ -56,18 +56,11 @@ public class ByteImapResponseWriter implements ImapConstants, ImapResponseWriter @Override public void write(Literal literal) throws IOException { - InputStream in = null; - try { - in = literal.getInputStream(); - + try (InputStream in = literal.getInputStream()) { byte[] buffer = new byte[1024]; - for (int len; (len = in.read(buffer)) != -1;) { + for (int len; (len = in.read(buffer)) != -1; ) { out.write(buffer, 0, len); } - } finally { - if (in != null) { - in.close(); - } } } diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java index 538cb03..cdd1a98 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java @@ -1124,10 +1124,7 @@ public abstract class AbstractSMTPServerTest { assertThat(address.toString()).isEqualTo(recipients.get(i)); } - BufferedReader reader = null; - - try { - reader = new BufferedReader(new InputStreamReader(env.getMessageInputStream())); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(env.getMessageInputStream()))) { String line = null; boolean start = false; @@ -1147,10 +1144,6 @@ public abstract class AbstractSMTPServerTest { for (int i = 0; i < msg.length(); i++) { assertThat(msgQueued.charAt(i)).isEqualTo(msg.charAt(i)); } - } finally { - if (reader != null) { - reader.close(); - } } } diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageSource.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageSource.java index d5375a1..3aaee0a 100644 --- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageSource.java +++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageSource.java @@ -60,24 +60,15 @@ public abstract class MimeMessageSource { */ public long getMessageSize() throws IOException { int size = 0; - InputStream in = null; - try { - in = getInputStream(); + try (InputStream in = getInputStream()) { int read; byte[] data = new byte[1024]; while ((read = in.read(data)) > 0) { size += read; } - } finally { - try { - if (in != null) { - in.close(); - } - } catch (IOException ioe) { - // Exception ignored because logging is - // unavailable - } } + // Exception ignored because logging is + // unavailable return size; } diff --git a/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/DefaultStager.java b/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/DefaultStager.java index a68e124..457bb39 100644 --- a/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/DefaultStager.java +++ b/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/DefaultStager.java @@ -60,7 +60,7 @@ public class DefaultStager<A extends Annotation> implements DisposingStager<A> { } case FIRST_IN_LAST_OUT: { - localStageables = Collections.asLifoQueue(new ArrayDeque<Stageable>()); + localStageables = Collections.asLifoQueue(new ArrayDeque<>()); break; } diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/osgi/OSGIConfigurationProvider.java b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/osgi/OSGIConfigurationProvider.java index cecfb4d..426e37d 100644 --- a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/osgi/OSGIConfigurationProvider.java +++ b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/osgi/OSGIConfigurationProvider.java @@ -35,21 +35,12 @@ public class OSGIConfigurationProvider implements org.apache.james.container.spr @Override public HierarchicalConfiguration<ImmutableNode> getConfiguration(String beanName) throws ConfigurationException { - FileInputStream fis = null; - try { - fis = new FileInputStream("/tmp/" + beanName + ".xml"); + try (FileInputStream fis = new FileInputStream("/tmp/" + beanName + ".xml")) { return FileConfigurationProvider.getConfig(fis); } catch (IOException e) { throw new ConfigurationException("Bean " + beanName); - } finally { - if (fis != null) { - try { - fis.close(); - } catch (Exception e) { - // Left empty on purpose - } - } } + // Left empty on purpose } } diff --git a/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java b/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java index a51e152..0357aab 100644 --- a/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java +++ b/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java @@ -35,7 +35,7 @@ import javax.management.ObjectName; public class JMXEnabledScheduledThreadPoolExecutor extends ScheduledThreadPoolExecutor implements JMXEnabledScheduledThreadPoolExecutorMBean { private final String jmxPath; - private final List<Runnable> inProgress = Collections.synchronizedList(new ArrayList<Runnable>()); + private final List<Runnable> inProgress = Collections.synchronizedList(new ArrayList<>()); private final ThreadLocal<Long> startTime = new ThreadLocal<>(); private long totalTime; private int totalTasks; diff --git a/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutor.java b/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutor.java index c80112a..b6e0051 100644 --- a/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutor.java +++ b/server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutor.java @@ -37,7 +37,7 @@ import javax.management.ObjectName; public class JMXEnabledThreadPoolExecutor extends ThreadPoolExecutor implements JMXEnabledThreadPoolExecutorMBean { private final String jmxPath; - private final List<Runnable> inProgress = Collections.synchronizedList(new ArrayList<Runnable>()); + private final List<Runnable> inProgress = Collections.synchronizedList(new ArrayList<>()); private final ThreadLocal<Long> startTime = new ThreadLocal<>(); private long totalTime; private int totalTasks; diff --git a/server/container/util/src/main/java/org/apache/james/util/sql/SqlResources.java b/server/container/util/src/main/java/org/apache/james/util/sql/SqlResources.java index acf8a90..c093c01 100644 --- a/server/container/util/src/main/java/org/apache/james/util/sql/SqlResources.java +++ b/server/container/util/src/main/java/org/apache/james/util/sql/SqlResources.java @@ -52,7 +52,7 @@ public class SqlResources { private final Map<String, String> dbOptions = new HashMap<>(); /** A set of all used String values */ - private static final Map<String, String> stringTable = java.util.Collections.synchronizedMap(new HashMap<String, String>()); + private static final Map<String, String> stringTable = java.util.Collections.synchronizedMap(new HashMap<>()); /** * <p> diff --git a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java index 2299cd9..6ff41f8 100644 --- a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java +++ b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java @@ -109,7 +109,7 @@ public class FileMailRepository extends AbstractMailRepository { streamRepository.init(); if (cacheKeys) { - keys = Collections.synchronizedSet(new HashSet<String>()); + keys = Collections.synchronizedSet(new HashSet<>()); } // Finds non-matching pairs and deletes the extra files diff --git a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java index d856dcd..56e5a98 100644 --- a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java +++ b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java @@ -84,15 +84,9 @@ public class SieveFileRepository implements SieveRepository { */ protected static String toString(File file, String encoding) throws FileNotFoundException { String script = null; - Scanner scanner = null; - try { - scanner = new Scanner(file, encoding); + try (Scanner scanner = new Scanner(file, encoding)) { scanner.useDelimiter("\\A"); script = scanner.next(); - } finally { - if (scanner != null) { - scanner.close(); - } } return script; } @@ -191,16 +185,10 @@ public class SieveFileRepository implements SieveRepository { file = getQuotaFile(); } if (file.exists()) { - Scanner scanner = null; - try { - scanner = new Scanner(file, UTF_8); + try (Scanner scanner = new Scanner(file, UTF_8)) { quota = scanner.nextLong(); } catch (FileNotFoundException | NoSuchElementException ex) { // no op - } finally { - if (null != scanner) { - scanner.close(); - } } } if ((usedSpace + size) > quota) { @@ -397,16 +385,10 @@ public class SieveFileRepository implements SieveRepository { Long quota = null; File file = getQuotaFile(); if (file.exists()) { - Scanner scanner = null; - try { - scanner = new Scanner(file, UTF_8); + try (Scanner scanner = new Scanner(file, UTF_8)) { quota = scanner.nextLong(); } catch (FileNotFoundException | NoSuchElementException ex) { // no op - } finally { - if (null != scanner) { - scanner.close(); - } } } if (null == quota) { @@ -449,16 +431,10 @@ public class SieveFileRepository implements SieveRepository { Long quota = null; File file = getQuotaFile(user); if (file.exists()) { - Scanner scanner = null; - try { - scanner = new Scanner(file, UTF_8); + try (Scanner scanner = new Scanner(file, UTF_8)) { quota = scanner.nextLong(); } catch (FileNotFoundException | NoSuchElementException ex) { // no op - } finally { - if (null != scanner) { - scanner.close(); - } } } if (null == quota) { diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java index 953ebe2..3c1df61 100644 --- a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java +++ b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java @@ -28,6 +28,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Objects; import org.apache.james.repository.api.StreamRepository; import org.apache.james.server.core.MimeMessageSource; @@ -250,7 +251,8 @@ public class MimeMessageJDBCSource extends MimeMessageSource { // of // the equals equation MimeMessageJDBCSource source = (MimeMessageJDBCSource) obj; - return ((source.key.equals(key)) || ((source.key != null) && source.key.equals(key))) && ((source.repository == repository) || ((source.repository != null) && source.repository.equals(repository))); + return Objects.equals(source.key, key) && + Objects.equals(source.repository, repository); } return false; } @@ -261,14 +263,7 @@ public class MimeMessageJDBCSource extends MimeMessageSource { * @return the hash code */ public int hashCode() { - int result = 17; - if (key != null) { - result = 37 * key.hashCode(); - } - if (repository != null) { - result = 37 * repository.hashCode(); - } - return result; + return Objects.hash(key, repository); } } diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java index 71c93fa..4a0bb02 100644 --- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java +++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java @@ -47,7 +47,7 @@ import org.slf4j.LoggerFactory; public abstract class AbstractStateCompositeProcessor implements MailProcessor, Configurable { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractStateCompositeProcessor.class); - private final List<CompositeProcessorListener> listeners = Collections.synchronizedList(new ArrayList<CompositeProcessorListener>()); + private final List<CompositeProcessorListener> listeners = Collections.synchronizedList(new ArrayList<>()); private final Map<String, MailProcessor> processors = new HashMap<>(); protected HierarchicalConfiguration<ImmutableNode> config; diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java index 68a1d37..86ebde8 100644 --- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java +++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java @@ -67,7 +67,7 @@ public abstract class AbstractStateMailetProcessor implements MailProcessor, Con private MailetContext mailetContext; private MatcherLoader matcherLoader; private MailProcessor rootMailProcessor; - private final List<MailetProcessorListener> listeners = Collections.synchronizedList(new ArrayList<MailetProcessorListener>()); + private final List<MailetProcessorListener> listeners = Collections.synchronizedList(new ArrayList<>()); private JMXStateMailetProcessorListener jmxListener; private boolean enableJmx = true; private HierarchicalConfiguration<ImmutableNode> config; diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java index f5d2312..087c7d2 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java @@ -65,17 +65,11 @@ public class MessageToCoreToMessage { return (String) part.getContent(); } InputStream is = (InputStream) part.getContent(); - Scanner scanner = null; - try { - scanner = new Scanner(is, "UTF-8"); + try (Scanner scanner = new Scanner(is, "UTF-8")) { scanner.useDelimiter("\\A"); if (scanner.hasNext()) { result = scanner.next(); } - } finally { - if (scanner != null) { - scanner.close(); - } } } } diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java index f311474..7a24544 100644 --- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java +++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java @@ -504,9 +504,8 @@ public class FetchMail implements Runnable, Configurable { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Session properties:"); Properties properties = getSession().getProperties(); - Enumeration<Object> e = properties.keys(); - while (e.hasMoreElements()) { - String key = (String) e.nextElement(); + for (Object o : properties.keySet()) { + String key = (String) o; String val = (String) properties.get(key); if (val.length() > 40) { val = val.substring(0, 37) + "..."; diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMailboxesUpdateProcessor.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMailboxesUpdateProcessor.java index 932dd7f..f819cca 100644 --- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMailboxesUpdateProcessor.java +++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMailboxesUpdateProcessor.java @@ -115,7 +115,7 @@ public class SetMailboxesUpdateProcessor implements SetMailboxesProcessor { .type(SetError.Type.INVALID_ARGUMENTS) .description("The mailbox name length is too long") .build()); - } catch (MailboxNameException e) { + } catch (MailboxNameException | IllegalArgumentException e) { responseBuilder.notUpdated(mailboxId, SetError.builder() .type(SetError.Type.INVALID_ARGUMENTS) .description(e.getMessage()) @@ -150,11 +150,6 @@ public class SetMailboxesUpdateProcessor implements SetMailboxesProcessor { .type(SetError.Type.INVALID_ARGUMENTS) .description("Cannot share a mailbox to another domain") .build()); - } catch (IllegalArgumentException e) { - responseBuilder.notUpdated(mailboxId, SetError.builder() - .type(SetError.Type.INVALID_ARGUMENTS) - .description(e.getMessage()) - .build()); } catch (MailboxException e) { LOGGER.error("Error while updating mailbox", e); responseBuilder.notUpdated(mailboxId, SetError.builder() diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/JMXEnabledOrderedMemoryAwareThreadPoolExecutor.java b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/JMXEnabledOrderedMemoryAwareThreadPoolExecutor.java index f0d64df..338f654 100644 --- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/JMXEnabledOrderedMemoryAwareThreadPoolExecutor.java +++ b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/JMXEnabledOrderedMemoryAwareThreadPoolExecutor.java @@ -36,7 +36,7 @@ import org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor; public class JMXEnabledOrderedMemoryAwareThreadPoolExecutor extends OrderedMemoryAwareThreadPoolExecutor implements JMXEnabledOrderedMemoryAwareThreadPoolExecutorMBean { private final String jmxPath; - private final List<Runnable> inProgress = Collections.synchronizedList(new ArrayList<Runnable>()); + private final List<Runnable> inProgress = Collections.synchronizedList(new ArrayList<>()); private final ThreadLocal<Long> startTime = new ThreadLocal<>(); private long totalTime; private int totalTasks; diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java index 2183816..9db776b 100644 --- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java +++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java @@ -92,27 +92,28 @@ public class SPFHandlerTest { case DNSRequest.TXT: case DNSRequest.SPF: List<String> l = new ArrayList<>(); - if (req.getHostname().equals("spf1.james.apache.org")) { - // pass - l.add("v=spf1 +all"); - return l; - } else if (req.getHostname().equals("spf2.james.apache.org")) { - // fail - l.add("v=spf1 -all"); - return l; - } else if (req.getHostname().equals("spf3.james.apache.org")) { - // softfail - l.add("v=spf1 ~all"); - return l; - } else if (req.getHostname().equals("spf4.james.apache.org")) { - // permerror - l.add("v=spf1 badcontent!"); - return l; - } else if (req.getHostname().equals("spf5.james.apache.org")) { - // temperror - throw new TimeoutException("TIMEOUT"); - } else { - return null; + switch (req.getHostname()) { + case "spf1.james.apache.org": + // pass + l.add("v=spf1 +all"); + return l; + case "spf2.james.apache.org": + // fail + l.add("v=spf1 -all"); + return l; + case "spf3.james.apache.org": + // softfail + l.add("v=spf1 ~all"); + return l; + case "spf4.james.apache.org": + // permerror + l.add("v=spf1 badcontent!"); + return l; + case "spf5.james.apache.org": + // temperror + throw new TimeoutException("TIMEOUT"); + default: + return null; } default: throw new UnsupportedOperationException("Unimplemented mock service"); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
