You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/04/24 02:59:52 UTC

[james-project] 17/17: [Refactoring] use new toArray method on Collection that takes a function

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 5e5b4d2a38cb82dcbca431551eb9bd4a891dd642
Author: Matthieu Baechler <ma...@apache.org>
AuthorDate: Tue Apr 21 22:38:25 2020 +0200

    [Refactoring] use new toArray method on Collection that takes a function
---
 .../org/apache/james/core/builder/MimeMessageBuilder.java    |  8 ++++----
 .../apache/james/mailbox/acl/UnionMailboxACLResolver.java    |  2 +-
 .../mailbox/lucene/search/LuceneMessageSearchIndex.java      |  2 +-
 .../src/main/java/org/apache/mailet/base/StringUtils.java    |  2 +-
 .../org/apache/james/transport/mailets/HeadersToHTTP.java    |  2 +-
 .../org/apache/james/transport/mailets/RemoveMimeHeader.java |  2 +-
 .../james/transport/matchers/AttachmentFileNameIs.java       |  2 +-
 .../org/apache/james/imap/api/process/SearchResUtil.java     |  2 +-
 .../org/apache/james/imap/decode/ImapRequestLineReader.java  |  4 ++--
 .../james/imap/processor/AbstractMessageRangeProcessor.java  |  2 +-
 .../james/imap/processor/AbstractSelectionProcessor.java     |  2 +-
 .../org/apache/james/imap/processor/SearchProcessor.java     | 10 +++++-----
 .../java/org/apache/james/imap/processor/StoreProcessor.java |  2 +-
 .../apache/james/imap/processor/fetch/EnvelopeBuilder.java   |  2 +-
 .../decode/parser/SearchCommandParserAndParenthesesTest.java |  4 ++--
 .../james/imap/decode/parser/SearchCommandParserNotTest.java |  4 ++--
 .../james/imap/decode/parser/SearchCommandParserOrTest.java  |  4 ++--
 .../parser/SearchCommandParserSearchKeySequenceSetTest.java  | 12 ++++++------
 .../decode/parser/SearchCommandParserTopLevelAndTest.java    |  4 ++--
 .../org/apache/james/protocols/pop3/core/QuitCmdHandler.java |  2 +-
 .../cli/src/main/java/org/apache/james/cli/ServerCmd.java    |  2 +-
 .../org/apache/james/user/lib/UsersRepositoryManagement.java |  2 +-
 .../org/apache/james/dnsservice/dnsjava/DNSJavaService.java  |  6 +++---
 .../james/dnsservice/library/netmatcher/NetMatcher.java      |  2 +-
 .../org/apache/james/mailetcontainer/impl/ProcessorUtil.java |  2 +-
 .../james/mailetcontainer/impl/jmx/MailetManagement.java     |  2 +-
 .../mailetcontainer/lib/AbstractStateCompositeProcessor.java |  2 +-
 .../mailets/remote/delivery/MailDelivrerToHost.java          |  8 +-------
 .../protocols/lib/netty/AbstractConfigurableAsyncServer.java |  2 +-
 .../james/pop3server/jmx/CommandHandlerResultJMXMonitor.java |  2 +-
 .../org/apache/james/smtpserver/fastfail/DNSRBLHandler.java  |  4 ++--
 .../james/smtpserver/jmx/CommandHandlerResultJMXMonitor.java |  2 +-
 32 files changed, 52 insertions(+), 58 deletions(-)

diff --git a/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java b/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
index 254f17b..abf56e3 100644
--- a/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
+++ b/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
@@ -397,19 +397,19 @@ public class MimeMessageBuilder {
         }
         ImmutableList<InternetAddress> fromAddresses = from.build();
         if (!fromAddresses.isEmpty()) {
-            mimeMessage.addFrom(fromAddresses.toArray(new InternetAddress[fromAddresses.size()]));
+            mimeMessage.addFrom(fromAddresses.toArray(InternetAddress[]::new));
         }
         List<InternetAddress> toAddresses = to.build();
         if (!toAddresses.isEmpty()) {
-            mimeMessage.setRecipients(Message.RecipientType.TO, toAddresses.toArray(new InternetAddress[toAddresses.size()]));
+            mimeMessage.setRecipients(Message.RecipientType.TO, toAddresses.toArray(InternetAddress[]::new));
         }
         List<InternetAddress> ccAddresses = cc.build();
         if (!ccAddresses.isEmpty()) {
-            mimeMessage.setRecipients(Message.RecipientType.CC, ccAddresses.toArray(new InternetAddress[ccAddresses.size()]));
+            mimeMessage.setRecipients(Message.RecipientType.CC, ccAddresses.toArray(InternetAddress[]::new));
         }
         List<InternetAddress> bccAddresses = bcc.build();
         if (!bccAddresses.isEmpty()) {
-            mimeMessage.setRecipients(Message.RecipientType.BCC, bccAddresses.toArray(new InternetAddress[bccAddresses.size()]));
+            mimeMessage.setRecipients(Message.RecipientType.BCC, bccAddresses.toArray(InternetAddress[]::new));
         }
 
         MimeMessage wrappedMessage = MimeMessageWrapper.wrap(mimeMessage);
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
index 204381f..f13af64 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
@@ -287,7 +287,7 @@ public class UnionMailboxACLResolver implements MailboxACLResolver {
                 result.add(new Rfc4314Rights(right));
             }
         }
-        return result.toArray(new Rfc4314Rights[result.size()]);
+        return result.toArray(Rfc4314Rights[]::new);
     }
 
     @Override
diff --git a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
index 5d95dd7..ff86117 100644
--- a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
+++ b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
@@ -989,7 +989,7 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
         // add the uid sorting as last so if no other sorting was able to do the job it will get sorted by the uid
         fields.add(UID_SORT);
         Sort sort = new Sort();
-        sort.setSort(fields.toArray(new SortField[0]));
+        sort.setSort(fields.toArray(SortField[]::new));
         return sort;
     }
 
diff --git a/mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java b/mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java
index ff535e7..e375b3a 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java
@@ -63,7 +63,7 @@ public final class StringUtils {
                 list.add(prev.substring(0, prev.length() - 1) + pattern + array[i]);
             }
         }
-        return list.toArray(new String[list.size()]);
+        return list.toArray(String[]::new);
     }
 
     public static String listToString(List<String> strings) {
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
index abb1d74..3a3cfac 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
@@ -141,7 +141,7 @@ public class HeadersToHTTP extends GenericMailet {
     private String httpPost(HashSet<NameValuePair> pairs) throws IOException {
 
         try (CloseableHttpClient client = HttpClientBuilder.create().build()) {
-            HttpUriRequest request = RequestBuilder.post(url).addParameters(pairs.toArray(new NameValuePair[0])).build();
+            HttpUriRequest request = RequestBuilder.post(url).addParameters(pairs.toArray(NameValuePair[]::new)).build();
             try (CloseableHttpResponse clientResponse = client.execute(request)) {
                 String result = clientResponse.getStatusLine().getStatusCode() + ": " + clientResponse.getStatusLine();
                 LOGGER.debug("HeadersToHTTP: {}", result);
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
index c0797da..a70b473 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
@@ -64,7 +64,7 @@ public class RemoveMimeHeader extends GenericMailet {
     public void service(Mail mail) throws MessagingException {
         MimeMessage message = mail.getMessage();
 
-        boolean hasHeadersToRemove = message.getMatchingHeaderLines(headers.toArray(new String[0]))
+        boolean hasHeadersToRemove = message.getMatchingHeaderLines(headers.toArray(String[]::new))
             .hasMoreElements();
 
         for (String header : headers) {
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
index 9d21236..1dd1515 100755
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
@@ -124,7 +124,7 @@ public class AttachmentFileNameIs extends GenericMatcher {
             mask.matchString = cleanFileName(mask.matchString);
             theMasks.add(mask);
         }
-        masks = theMasks.toArray(new Mask[theMasks.size()]);
+        masks = theMasks.toArray(Mask[]::new);
     }
 
     /** 
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/process/SearchResUtil.java b/protocols/imap/src/main/java/org/apache/james/imap/api/process/SearchResUtil.java
index 4e9c522..b5d5251 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/process/SearchResUtil.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/process/SearchResUtil.java
@@ -47,7 +47,7 @@ public class SearchResUtil {
      * Save the given sequence-set which you can refer to later with $.
      */
     public static void saveSequenceSet(ImapSession session, IdRange[] ranges) {
-        session.setAttribute(SEARCHRES_SAVED_SET, IdRange.mergeRanges(Arrays.asList(ranges)).toArray(new IdRange[0]));
+        session.setAttribute(SEARCHRES_SAVED_SET, IdRange.mergeRanges(Arrays.asList(ranges)).toArray(IdRange[]::new));
     }
     
     /**
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 dabe917..458f3e2 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
@@ -652,7 +652,7 @@ public abstract class ImapRequestLineReader {
         // merge the ranges to minimize the needed queries.
         // See IMAP-211
         List<IdRange> merged = IdRange.mergeRanges(rangeList);
-        return (IdRange[]) merged.toArray(new IdRange[merged.size()]);
+        return merged.toArray(IdRange[]::new);
     }
 
     /**
@@ -685,7 +685,7 @@ public abstract class ImapRequestLineReader {
         // merge the ranges to minimize the needed queries.
         // See IMAP-211
         List<UidRange> merged = UidRange.mergeRanges(rangeList);
-        return merged.toArray(new UidRange[merged.size()]);
+        return merged.toArray(UidRange[]::new);
     }
     
     /**
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
index 9e7a1c8..4574c76 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
@@ -104,7 +104,7 @@ public abstract class AbstractMessageRangeProcessor<R extends AbstractMessageRan
                 .sneakyThrow())
             .map(IdRange::from)
             .collect(Guavate.toImmutableList()))
-            .toArray(new IdRange[0]);
+            .toArray(IdRange[]::new);
 
         // get folder UIDVALIDITY
         UidValidity uidValidity = mailbox.getMailboxEntity().getUidValidity();
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
index 5441cc5..df3f61a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
@@ -260,7 +260,7 @@ abstract class AbstractSelectionProcessor<R extends AbstractMailboxSelectionRequ
                                         filteredUidSet.add(r);
                                     }
                                 }
-                                uidSet = filteredUidSet.toArray(new UidRange[0]);
+                                uidSet = filteredUidSet.toArray(UidRange[]::new);
 
                                 break;
                             }
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
index 16c80fb..80b16ad 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
@@ -127,13 +127,13 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
                 for (Long id: idList) {
                     idsAsRanges.add(new IdRange(id));
                 }
-                IdRange[] idRanges = IdRange.mergeRanges(idsAsRanges).toArray(new IdRange[0]);
+                IdRange[] idRanges = IdRange.mergeRanges(idsAsRanges).toArray(IdRange[]::new);
                 
                 List<UidRange> uidsAsRanges = new ArrayList<>();
                 for (MessageUid uid: uids) {
                     uidsAsRanges.add(new UidRange(uid));
                 }
-                UidRange[] uidRanges = UidRange.mergeRanges(uidsAsRanges).toArray(new UidRange[0]);
+                UidRange[] uidRanges = UidRange.mergeRanges(uidsAsRanges).toArray(UidRange[]::new);
                 
                 boolean esearch = false;
                 for (SearchResultOption resultOption : resultOptions) {
@@ -169,7 +169,7 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
                                 // Store the MAX
                                 savedRanges.add(new IdRange(max));
                             }
-                            SearchResUtil.saveSequenceSet(session, savedRanges.toArray(new IdRange[0]));
+                            SearchResUtil.saveSequenceSet(session, savedRanges.toArray(IdRange[]::new));
                         }
                     }
                     response = new ESearchResponse(min, max, count, idRanges, uidRanges, highestModSeq, request.getTag(), useUids, resultOptions);
@@ -435,7 +435,7 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
             }
         }
 
-        return SearchQuery.uid(ranges.toArray(new SearchQuery.UidRange[0]));
+        return SearchQuery.uid(ranges.toArray(SearchQuery.UidRange[]::new));
     }
     
     /**
@@ -471,7 +471,7 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
             }
         }
 
-        return SearchQuery.uid(ranges.toArray(new SearchQuery.UidRange[0]));
+        return SearchQuery.uid(ranges.toArray(SearchQuery.UidRange[]::new));
     }
 
     private Criterion or(List<SearchKey> keys, ImapSession session) throws MessageRangeException {
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
index 7671d89..79fe6fa 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
@@ -201,7 +201,7 @@ public class StoreProcessor extends AbstractMailboxProcessor<StoreRequest> {
                     for (long msn: failedMsns) {
                         ranges.add(new IdRange(msn));
                     }
-                    IdRange[] failedRanges = IdRange.mergeRanges(ranges).toArray(new IdRange[0]);
+                    IdRange[] failedRanges = IdRange.mergeRanges(ranges).toArray(IdRange[]::new);
                     // See RFC4551 3.2. STORE and UID STORE Commands
                     final StatusResponse response = getStatusResponseFactory().taggedOk(request.getTag(), request.getCommand(), HumanReadableText.FAILED, ResponseCode.condStore(failedRanges));
                     responder.respond(response);
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
index ab5862d..06bde4f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
@@ -145,7 +145,7 @@ public final class EnvelopeBuilder {
                     }
                 }
 
-                results = addresses.toArray(FetchResponse.Envelope.Address.EMPTY);
+                results = addresses.toArray(FetchResponse.Envelope.Address[]::new);
                 
 
             }
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserAndParenthesesTest.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserAndParenthesesTest.java
index 6e7834d..080dbc5 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserAndParenthesesTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserAndParenthesesTest.java
@@ -70,7 +70,7 @@ public class SearchCommandParserAndParenthesesTest {
     public static Input sequence() {
         IdRange[] range = { new IdRange(100, Long.MAX_VALUE), new IdRange(110),
                 new IdRange(200, 201), new IdRange(400, Long.MAX_VALUE) };
-        SearchKey key = SearchKey.buildSequenceSet(IdRange.mergeRanges(Arrays.asList(range)).toArray(new IdRange[0]));
+        SearchKey key = SearchKey.buildSequenceSet(IdRange.mergeRanges(Arrays.asList(range)).toArray(IdRange[]::new));
         return new Input("*:100,110,200:201,400:*", key);
     }
 
@@ -81,7 +81,7 @@ public class SearchCommandParserAndParenthesesTest {
                 new UidRange(MessageUid.of(200), MessageUid.of(201)), 
                 new UidRange(MessageUid.of(400), MessageUid.MAX_VALUE) 
                 };
-        SearchKey key = SearchKey.buildUidSet(UidRange.mergeRanges(Arrays.asList(range)).toArray(new UidRange[0]));
+        SearchKey key = SearchKey.buildUidSet(UidRange.mergeRanges(Arrays.asList(range)).toArray(UidRange[]::new));
         return new Input("UID *:100,110,200:201,400:*", key);
     }
 
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java
index b479d87..250ff78 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java
@@ -55,7 +55,7 @@ public class SearchCommandParserNotTest {
     public void testShouldParseNotSequence() throws Exception {
         IdRange[] range = { new IdRange(100, Long.MAX_VALUE), new IdRange(110),
                 new IdRange(200, 201), new IdRange(400, Long.MAX_VALUE) };
-        SearchKey notdKey = SearchKey.buildSequenceSet(IdRange.mergeRanges(Arrays.asList(range)).toArray(new IdRange[0]));
+        SearchKey notdKey = SearchKey.buildSequenceSet(IdRange.mergeRanges(Arrays.asList(range)).toArray(IdRange[]::new));
         SearchKey key = SearchKey.buildNot(notdKey);
         checkValid("NOT *:100,110,200:201,400:*\r\n", key);
     }
@@ -68,7 +68,7 @@ public class SearchCommandParserNotTest {
                 new UidRange(MessageUid.of(200), MessageUid.of(201)), 
                 new UidRange(MessageUid.of(400), MessageUid.MAX_VALUE) 
                 };
-        SearchKey notdKey = SearchKey.buildUidSet(UidRange.mergeRanges(Arrays.asList(range)).toArray(new UidRange[0]));
+        SearchKey notdKey = SearchKey.buildUidSet(UidRange.mergeRanges(Arrays.asList(range)).toArray(UidRange[]::new));
         SearchKey key = SearchKey.buildNot(notdKey);
         checkValid("NOT UID *:100,110,200:201,400:*\r\n", key);
     }
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserOrTest.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserOrTest.java
index e157607..c1d587f 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserOrTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserOrTest.java
@@ -53,7 +53,7 @@ public class SearchCommandParserOrTest {
     public Input sequence() {
         IdRange[] range = { new IdRange(100, Long.MAX_VALUE), new IdRange(110),
                 new IdRange(200, 201), new IdRange(400, Long.MAX_VALUE) };
-        SearchKey key = SearchKey.buildSequenceSet(IdRange.mergeRanges(Arrays.asList(range)).toArray(new IdRange[0]));
+        SearchKey key = SearchKey.buildSequenceSet(IdRange.mergeRanges(Arrays.asList(range)).toArray(IdRange[]::new));
         return new Input("*:100,110,200:201,400:*", key);
     }
 
@@ -64,7 +64,7 @@ public class SearchCommandParserOrTest {
                 new UidRange(MessageUid.of(200), MessageUid.of(201)), 
                 new UidRange(MessageUid.of(400), MessageUid.MAX_VALUE) 
                 };
-        SearchKey key = SearchKey.buildUidSet(UidRange.mergeRanges(Arrays.asList(range)).toArray(new UidRange[0]));
+        SearchKey key = SearchKey.buildUidSet(UidRange.mergeRanges(Arrays.asList(range)).toArray(UidRange[]::new));
         return new Input("UID *:100,110,200:201,400:*", key);
     }
 
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserSearchKeySequenceSetTest.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserSearchKeySequenceSetTest.java
index cf291e6..ff31643 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserSearchKeySequenceSetTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserSearchKeySequenceSetTest.java
@@ -52,14 +52,14 @@ public class SearchCommandParserSearchKeySequenceSetTest {
                 new IdRange(16), new IdRange(25), new IdRange(36),
                 new IdRange(49), new IdRange(64), new IdRange(81),
                 new IdRange(100) };
-        checkSequence("2,4,9,16,25,36,49,64,81,100", IdRange.mergeRanges(Arrays.asList(range)).toArray(new IdRange[0]));
+        checkSequence("2,4,9,16,25,36,49,64,81,100", IdRange.mergeRanges(Arrays.asList(range)).toArray(IdRange[]::new));
     }
 
     @Test
     public void testEndStarSequence() throws Exception {
         IdRange[] range = { new IdRange(8), new IdRange(10,11),
                 new IdRange(17), new IdRange(100, Long.MAX_VALUE) };
-        checkSequence("8,10:11,17,100:*", IdRange.mergeRanges(Arrays.asList(range)).toArray(new IdRange[0]));
+        checkSequence("8,10:11,17,100:*", IdRange.mergeRanges(Arrays.asList(range)).toArray(IdRange[]::new));
     }
 
     @Test
@@ -69,7 +69,7 @@ public class SearchCommandParserSearchKeySequenceSetTest {
                 new IdRange(15),
                 new IdRange(799, 820) 
                 };
-        checkSequence("*:9,15,799:820", IdRange.mergeRanges(Arrays.asList(range)).toArray(new IdRange[0]));
+        checkSequence("*:9,15,799:820", IdRange.mergeRanges(Arrays.asList(range)).toArray(IdRange[]::new));
     }
 
 
@@ -87,7 +87,7 @@ public class SearchCommandParserSearchKeySequenceSetTest {
                 new UidRange(MessageUid.of(64)), 
                 new UidRange(MessageUid.of(81)),
                 new UidRange(MessageUid.of(100)) };
-        checkUid("2,4,9,16,25,36,49,64,81,100", UidRange.mergeRanges(Arrays.asList(range)).toArray(new UidRange[0]));
+        checkUid("2,4,9,16,25,36,49,64,81,100", UidRange.mergeRanges(Arrays.asList(range)).toArray(UidRange[]::new));
     }
 
     @Test
@@ -97,7 +97,7 @@ public class SearchCommandParserSearchKeySequenceSetTest {
                 new UidRange(MessageUid.of(10),MessageUid.of(11)),
                 new UidRange(MessageUid.of(17)), 
                 new UidRange(MessageUid.of(100), MessageUid.MAX_VALUE) };
-        checkUid("8,10:11,17,100:*", UidRange.mergeRanges(Arrays.asList(range)).toArray(new UidRange[0]));
+        checkUid("8,10:11,17,100:*", UidRange.mergeRanges(Arrays.asList(range)).toArray(UidRange[]::new));
     }
 
     @Test
@@ -107,7 +107,7 @@ public class SearchCommandParserSearchKeySequenceSetTest {
                 new UidRange(MessageUid.of(15)),
                 new UidRange(MessageUid.of(799), MessageUid.of(820)) 
                 };
-        checkUid("*:9,15,799:820", UidRange.mergeRanges(Arrays.asList(range)).toArray(new UidRange[0]));
+        checkUid("*:9,15,799:820", UidRange.mergeRanges(Arrays.asList(range)).toArray(UidRange[]::new));
     }
 
     
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserTopLevelAndTest.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserTopLevelAndTest.java
index e4cb20c..6a80f4a 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserTopLevelAndTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserTopLevelAndTest.java
@@ -56,7 +56,7 @@ public class SearchCommandParserTopLevelAndTest {
     public static Input sequence() {
         IdRange[] range = { new IdRange(100, Long.MAX_VALUE), new IdRange(110),
                 new IdRange(200, 201), new IdRange(400, Long.MAX_VALUE) };
-        SearchKey key = SearchKey.buildSequenceSet(IdRange.mergeRanges(Arrays.asList(range)).toArray(new IdRange[0]));
+        SearchKey key = SearchKey.buildSequenceSet(IdRange.mergeRanges(Arrays.asList(range)).toArray(IdRange[]::new));
         return new Input("*:100,110,200:201,400:*", key);
     }
 
@@ -67,7 +67,7 @@ public class SearchCommandParserTopLevelAndTest {
                 new UidRange(MessageUid.of(200), MessageUid.of(201)), 
                 new UidRange(MessageUid.of(400), MessageUid.MAX_VALUE) 
                 };
-        SearchKey key = SearchKey.buildUidSet(UidRange.mergeRanges(Arrays.asList(range)).toArray(new UidRange[0]));
+        SearchKey key = SearchKey.buildUidSet(UidRange.mergeRanges(Arrays.asList(range)).toArray(UidRange[]::new));
         return new Input("UID *:100,110,200:201,400:*", key);
     }
 
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
index f61714d..345dd0b 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
@@ -68,7 +68,7 @@ public class QuitCmdHandler implements CommandHandler<POP3Session> {
         List<String> toBeRemoved = session.getAttachment(POP3Session.DELETED_UID_LIST, State.Transaction).orElse(ImmutableList.of());
         Mailbox mailbox = session.getUserMailbox();
         try {
-            String[] uids = toBeRemoved.toArray(new String[toBeRemoved.size()]);
+            String[] uids = toBeRemoved.toArray(String[]::new);
             mailbox.remove(uids);
             response = SIGN_OFF;
         } catch (Exception ex) {
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
index d43d56c..29b9ff4 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
@@ -257,7 +257,7 @@ public class ServerCmd {
             break;
         case LISTUSERMAILBOXES:
             Collection<String> mailboxes = mailboxProbe.listUserMailboxes(arguments[1]);
-            print(mailboxes.toArray(new String[0]), printStream);
+            print(mailboxes.toArray(String[]::new), printStream);
             break;
         case DELETEMAILBOX:
             mailboxProbe.deleteMailbox(arguments[1], arguments[2], arguments[3]);
diff --git a/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java b/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java
index dded302..8f28b55 100644
--- a/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java
+++ b/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java
@@ -98,7 +98,7 @@ public class UsersRepositoryManagement extends StandardMBean implements UsersRep
             throw new Exception(e.getMessage());
 
         }
-        return userNames.toArray(new String[userNames.size()]);
+        return userNames.toArray(String[]::new);
     }
 
     @Override
diff --git a/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java b/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
index 5fde4a2..39ea180 100644
--- a/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
+++ b/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
@@ -175,7 +175,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, Configurable
             }
         }
 
-        searchPaths = sPaths.toArray(new Name[sPaths.size()]);
+        searchPaths = sPaths.toArray(Name[]::new);
 
         if (dnsServers.isEmpty()) {
             LOGGER.info("No DNS servers have been specified or found by autodiscovery - adding 127.0.0.1");
@@ -207,7 +207,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, Configurable
         }
 
         // Create the extended resolver...
-        final String[] serversArray = dnsServers.toArray(new String[dnsServers.size()]);
+        final String[] serversArray = dnsServers.toArray(String[]::new);
 
         if (LOGGER.isInfoEnabled()) {
             for (String aServersArray : serversArray) {
@@ -252,7 +252,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, Configurable
      */
     @Override
     public String[] getDNSServers() {
-        return dnsServers.toArray(new String[dnsServers.size()]);
+        return dnsServers.toArray(String[]::new);
     }
 
     /**
diff --git a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
index 38f92b9..ac201ec 100644
--- a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
+++ b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
@@ -143,7 +143,7 @@ public class NetMatcher {
      *            a Collection which holds all networks
      */
     private void initInetNetworks(Collection<String> nets) {
-        initInetNetworks(nets.toArray(new String[nets.size()]));
+        initInetNetworks(nets.toArray(String[]::new));
     }
 
     /**
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java
index 7f1786b..fda19fd 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java
@@ -77,7 +77,7 @@ public class ProcessorUtil {
      */
     public static void verifyMailAddresses(Collection<MailAddress> col) throws MessagingException {
         try {
-            MailAddress[] addresses = col.toArray(new MailAddress[col.size()]);
+            MailAddress[] addresses = col.toArray(MailAddress[]::new);
 
             // Why is this here? According to the javadoc for
             // java.util.Collection.toArray(Object[]), this should
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/jmx/MailetManagement.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/jmx/MailetManagement.java
index 76e8518..5ae8171 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/jmx/MailetManagement.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/jmx/MailetManagement.java
@@ -77,7 +77,7 @@ public final class MailetManagement extends StandardMBean implements MailetManag
             String value = config.getInitParameter(name);
             parameterList.add(name + "=" + value);
         }
-        return parameterList.toArray(new String[parameterList.size()]);
+        return parameterList.toArray(String[]::new);
     }
 
     @Override
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 0aeb08c..c38f616 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
@@ -115,7 +115,7 @@ public abstract class AbstractStateCompositeProcessor implements MailProcessor,
     }
 
     public String[] getProcessorStates() {
-        return processors.keySet().toArray(new String[processors.size()]);
+        return processors.keySet().toArray(String[]::new);
     }
 
     /**
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/MailDelivrerToHost.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/MailDelivrerToHost.java
index b414ab5..238a357 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/MailDelivrerToHost.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/MailDelivrerToHost.java
@@ -68,7 +68,7 @@ public class MailDelivrerToHost {
             transport = (SMTPTransport) session.getTransport(outgoingMailServer);
             transport.setLocalHost(props.getProperty("mail.smtp.localhost", configuration.getHeloNameProvider().getHeloName()));
             connect(outgoingMailServer, transport);
-            transport.sendMessage(adaptToTransport(mail.getMessage(), transport), toArray(addr));
+            transport.sendMessage(adaptToTransport(mail.getMessage(), transport), addr.toArray(InternetAddress[]::new));
             LOGGER.debug("Mail ({})  sent successfully to {} at {} from {} for {}", mail.getName(), outgoingMailServer.getHostName(),
                 outgoingMailServer.getHost(), props.get("mail.smtp.from"), mail.getRecipients());
         } finally {
@@ -77,12 +77,6 @@ public class MailDelivrerToHost {
         return ExecutionResult.success();
     }
 
-    private InternetAddress[] toArray(Collection<InternetAddress> addr) {
-        InternetAddress[] addresses = new InternetAddress[addr.size()];
-        addr.toArray(addresses);
-        return addresses;
-    }
-
     private Properties getPropertiesForMail(Mail mail) {
         Properties props = session.getProperties();
         props.put("mail.smtp.from", mail.getMaybeSender().asString());
diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
index 0e87781..77a63a1 100644
--- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
+++ b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
@@ -186,7 +186,7 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
 
             bindAddresses.add(address);
         }
-        setListenAddresses(bindAddresses.toArray(new InetSocketAddress[bindAddresses.size()]));
+        setListenAddresses(bindAddresses.toArray(InetSocketAddress[]::new));
 
         jmxName = config.getString("jmxName", getDefaultJMXName());
         int ioWorker = config.getInt("ioWorkerCount", DEFAULT_IO_WORKER_COUNT);
diff --git a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/CommandHandlerResultJMXMonitor.java b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/CommandHandlerResultJMXMonitor.java
index 4358455..ce00891 100644
--- a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/CommandHandlerResultJMXMonitor.java
+++ b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/CommandHandlerResultJMXMonitor.java
@@ -36,7 +36,7 @@ public class CommandHandlerResultJMXMonitor extends AbstractCommandHandlerResult
         Collection<String> col = handler.getImplCommands();
         String cName = handler.getClass().getName();
 
-        return new POP3CommandHandlerStats(getJMXName(), cName, col.toArray(new String[col.size()]));
+        return new POP3CommandHandlerStats(getJMXName(), cName, col.toArray(String[]::new));
     }
 
     @Override
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/DNSRBLHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/DNSRBLHandler.java
index 0caac3b..eae575e 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/DNSRBLHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/DNSRBLHandler.java
@@ -48,13 +48,13 @@ public class DNSRBLHandler extends org.apache.james.protocols.smtp.core.fastfail
 
         Collections.addAll(rblserverCollection, handlerConfiguration.getStringArray("rblservers.whitelist"));
         if (rblserverCollection.size() > 0) {
-            setWhitelist(rblserverCollection.toArray(new String[rblserverCollection.size()]));
+            setWhitelist(rblserverCollection.toArray(String[]::new));
             rblserverCollection.clear();
             validConfig = true;
         }
         Collections.addAll(rblserverCollection, handlerConfiguration.getStringArray("rblservers.blacklist"));
         if (rblserverCollection.size() > 0) {
-            setBlacklist(rblserverCollection.toArray(new String[rblserverCollection.size()]));
+            setBlacklist(rblserverCollection.toArray(String[]::new));
             rblserverCollection.clear();
             validConfig = true;
         }
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/CommandHandlerResultJMXMonitor.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/CommandHandlerResultJMXMonitor.java
index 61d8df8..99e6fea 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/CommandHandlerResultJMXMonitor.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/CommandHandlerResultJMXMonitor.java
@@ -35,7 +35,7 @@ public class CommandHandlerResultJMXMonitor extends AbstractCommandHandlerResult
         Collection<String> col = handler.getImplCommands();
         String cName = handler.getClass().getName();
 
-        return new SMTPCommandHandlerStats(getJMXName(), cName, col.toArray(new String[col.size()]));
+        return new SMTPCommandHandlerStats(getJMXName(), cName, col.toArray(String[]::new));
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org