Initialize Map with correct size in RequestPredicates
Prior to this commit, the `RequestPredicates` would add new attributes to the existing request attributes by creating a new `LinkedHashMap` with the total number of elements as its new initial capacity. This would not achieve optimal performance as initial resize or rehash operations could be expected. Consistently using `CollectionUtils#newLinkedHashMap` avoids this problem. Closes gh-32201
This commit is contained in:
parent
9698dbc232
commit
d5cb1d9adb
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2023 the original author or authors.
|
* Copyright 2002-2024 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -49,6 +49,7 @@ import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||||
import org.springframework.lang.NonNull;
|
import org.springframework.lang.NonNull;
|
||||||
import org.springframework.lang.Nullable;
|
import org.springframework.lang.Nullable;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.MimeTypeUtils;
|
import org.springframework.util.MimeTypeUtils;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.web.bind.WebDataBinder;
|
import org.springframework.web.bind.WebDataBinder;
|
||||||
|
|
@ -325,7 +326,7 @@ public abstract class RequestPredicates {
|
||||||
return left;
|
return left;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Map<K, V> result = new LinkedHashMap<>(left.size() + right.size());
|
Map<K, V> result = CollectionUtils.newLinkedHashMap(left.size() + right.size());
|
||||||
result.putAll(left);
|
result.putAll(left);
|
||||||
result.putAll(right);
|
result.putAll(right);
|
||||||
return result;
|
return result;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2023 the original author or authors.
|
* Copyright 2002-2024 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -51,6 +51,7 @@ import org.springframework.http.server.RequestPath;
|
||||||
import org.springframework.lang.NonNull;
|
import org.springframework.lang.NonNull;
|
||||||
import org.springframework.lang.Nullable;
|
import org.springframework.lang.Nullable;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.MimeTypeUtils;
|
import org.springframework.util.MimeTypeUtils;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.validation.BindException;
|
import org.springframework.validation.BindException;
|
||||||
|
|
@ -324,7 +325,7 @@ public abstract class RequestPredicates {
|
||||||
return left;
|
return left;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Map<K, V> result = new LinkedHashMap<>(left.size() + right.size());
|
Map<K, V> result = CollectionUtils.newLinkedHashMap(left.size() + right.size());
|
||||||
result.putAll(left);
|
result.putAll(left);
|
||||||
result.putAll(right);
|
result.putAll(right);
|
||||||
return result;
|
return result;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue