Avoid resizing of fixed-size HashSet/LinkedHashSet variants
Add helpers to CollectionUtils for building HashSets and LinkedHashSets that can hold an expected number of elements without needing to resize/rehash. Closes gh-32291
This commit is contained in:
committed by
Sam Brannen
parent
6383a0d7ca
commit
e1a32d4ba9
@@ -29,6 +29,7 @@ import org.springframework.transaction.interceptor.AbstractFallbackTransactionAt
|
||||
import org.springframework.transaction.interceptor.TransactionAttribute;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
/**
|
||||
* Implementation of the
|
||||
@@ -92,7 +93,7 @@ public class AnnotationTransactionAttributeSource extends AbstractFallbackTransa
|
||||
public AnnotationTransactionAttributeSource(boolean publicMethodsOnly) {
|
||||
this.publicMethodsOnly = publicMethodsOnly;
|
||||
if (jta12Present || ejb3Present) {
|
||||
this.annotationParsers = new LinkedHashSet<>(4);
|
||||
this.annotationParsers = CollectionUtils.newLinkedHashSet(3);
|
||||
this.annotationParsers.add(new SpringTransactionAnnotationParser());
|
||||
if (jta12Present) {
|
||||
this.annotationParsers.add(new JtaTransactionAnnotationParser());
|
||||
|
||||
@@ -18,11 +18,11 @@ package org.springframework.transaction.interceptor;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.transaction.support.DefaultTransactionDefinition;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.util.StringValueResolver;
|
||||
|
||||
@@ -216,7 +216,7 @@ public class DefaultTransactionAttribute extends DefaultTransactionDefinition im
|
||||
if (this.qualifier != null) {
|
||||
this.qualifier = resolver.resolveStringValue(this.qualifier);
|
||||
}
|
||||
Set<String> resolvedLabels = new LinkedHashSet<>(this.labels.size());
|
||||
Set<String> resolvedLabels = CollectionUtils.newLinkedHashSet(this.labels.size());
|
||||
for (String label : this.labels) {
|
||||
resolvedLabels.add(resolver.resolveStringValue(label));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user