This is an automated email from the ASF dual-hosted git repository. cpoerschke pushed a commit to branch branch_9x in repository https://gitbox.apache.org/repos/asf/solr.git
commit 2f82431095aea56cac4325667eea53b40676f4d8 Author: Christine Poerschke <[email protected]> AuthorDate: Tue Sep 20 15:14:28 2022 +0100 reduce array allocation in ExtendedDismaxQParser.UserFields (#1017) (cherry picked from commit b35ccf8efa0b11bbb03b9e534b316af553288d6c) --- .../src/java/org/apache/solr/search/ExtendedDismaxQParser.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java b/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java index a3d9bb66a6a..5e3ba654b25 100644 --- a/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java +++ b/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java @@ -21,7 +21,6 @@ import com.google.common.collect.Multimaps; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -1564,11 +1563,14 @@ public class ExtendedDismaxQParser extends QParser { if (!userFieldsMap.containsKey(MagicFieldName.QUERY.field)) { userFieldsMap.put("-" + MagicFieldName.QUERY.field, null); } - Collections.sort(dynUserFields); dynamicUserFields = dynUserFields.toArray(new DynamicField[dynUserFields.size()]); - Collections.sort(negDynUserFields); + Arrays.sort(dynamicUserFields); + // Avoid creating the array twice by converting to an array first and using Arrays.sort(), + // rather than Collections.sort() then converting to an array, since Collections.sort() + // copies to an array first, then sets each collection member from the array. negativeDynamicUserFields = negDynUserFields.toArray(new DynamicField[negDynUserFields.size()]); + Arrays.sort(negativeDynamicUserFields); } /**
