Remove unnecessary iteration over headers
The use of LinkedCaseInsensitiveMap, going back to 3.0, makes it unnecessary to iterate over keys which can cause ConcurrentModificationException. Closes gh-23460
This commit is contained in:
parent
6d8bf3466c
commit
a7bb5ca473
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -91,8 +91,11 @@ class HeaderValueHolder {
|
|||
* @param headers the Map of header names to HeaderValueHolders
|
||||
* @param name the name of the desired header
|
||||
* @return the corresponding HeaderValueHolder, or {@code null} if none found
|
||||
* @deprecated as of 5.1.10 in favor of using
|
||||
* {@link org.springframework.util.LinkedCaseInsensitiveMap}.
|
||||
*/
|
||||
@Nullable
|
||||
@Deprecated
|
||||
public static HeaderValueHolder getByName(Map<String, HeaderValueHolder> headers, String name) {
|
||||
Assert.notNull(name, "Header name must not be null");
|
||||
for (String headerName : headers.keySet()) {
|
||||
|
|
|
@ -1038,7 +1038,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
}
|
||||
|
||||
private void doAddHeaderValue(String name, @Nullable Object value, boolean replace) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
Assert.notNull(value, "Header value must not be null");
|
||||
if (header == null || replace) {
|
||||
header = new HeaderValueHolder();
|
||||
|
@ -1078,7 +1078,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
*/
|
||||
@Override
|
||||
public long getDateHeader(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
Object value = (header != null ? header.getValue() : null);
|
||||
if (value instanceof Date) {
|
||||
return ((Date) value).getTime();
|
||||
|
@ -1115,13 +1115,13 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
@Override
|
||||
@Nullable
|
||||
public String getHeader(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
return (header != null ? header.getStringValue() : null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<String> getHeaders(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
return Collections.enumeration(header != null ? header.getStringValues() : new LinkedList<>());
|
||||
}
|
||||
|
||||
|
@ -1132,7 +1132,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
|
||||
@Override
|
||||
public int getIntHeader(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
Object value = (header != null ? header.getValue() : null);
|
||||
if (value instanceof Number) {
|
||||
return ((Number) value).intValue();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -380,7 +380,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
|
||||
@Override
|
||||
public boolean containsHeader(String name) {
|
||||
return (HeaderValueHolder.getByName(this.headers, name) != null);
|
||||
return (this.headers.get(name) != null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -405,7 +405,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
@Override
|
||||
@Nullable
|
||||
public String getHeader(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
return (header != null ? header.getStringValue() : null);
|
||||
}
|
||||
|
||||
|
@ -419,7 +419,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
*/
|
||||
@Override
|
||||
public List<String> getHeaders(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
if (header != null) {
|
||||
return header.getStringValues();
|
||||
}
|
||||
|
@ -436,7 +436,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
*/
|
||||
@Nullable
|
||||
public Object getHeaderValue(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
return (header != null ? header.getValue() : null);
|
||||
}
|
||||
|
||||
|
@ -446,7 +446,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
* @return the associated header values, or an empty List if none
|
||||
*/
|
||||
public List<Object> getHeaderValues(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
if (header != null) {
|
||||
return header.getValues();
|
||||
}
|
||||
|
@ -614,7 +614,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
}
|
||||
|
||||
private void doAddHeaderValue(String name, Object value, boolean replace) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
Assert.notNull(value, "Header value must not be null");
|
||||
if (header == null) {
|
||||
header = new HeaderValueHolder();
|
||||
|
|
|
@ -1038,7 +1038,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
}
|
||||
|
||||
private void doAddHeaderValue(String name, @Nullable Object value, boolean replace) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
Assert.notNull(value, "Header value must not be null");
|
||||
if (header == null || replace) {
|
||||
header = new HeaderValueHolder();
|
||||
|
@ -1078,7 +1078,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
*/
|
||||
@Override
|
||||
public long getDateHeader(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
Object value = (header != null ? header.getValue() : null);
|
||||
if (value instanceof Date) {
|
||||
return ((Date) value).getTime();
|
||||
|
@ -1115,13 +1115,13 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
@Override
|
||||
@Nullable
|
||||
public String getHeader(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
return (header != null ? header.getStringValue() : null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<String> getHeaders(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
return Collections.enumeration(header != null ? header.getStringValues() : new LinkedList<>());
|
||||
}
|
||||
|
||||
|
@ -1132,7 +1132,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
|
||||
@Override
|
||||
public int getIntHeader(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
Object value = (header != null ? header.getValue() : null);
|
||||
if (value instanceof Number) {
|
||||
return ((Number) value).intValue();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -380,7 +380,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
|
||||
@Override
|
||||
public boolean containsHeader(String name) {
|
||||
return (HeaderValueHolder.getByName(this.headers, name) != null);
|
||||
return (this.headers.get(name) != null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -405,7 +405,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
@Override
|
||||
@Nullable
|
||||
public String getHeader(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
return (header != null ? header.getStringValue() : null);
|
||||
}
|
||||
|
||||
|
@ -419,7 +419,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
*/
|
||||
@Override
|
||||
public List<String> getHeaders(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
if (header != null) {
|
||||
return header.getStringValues();
|
||||
}
|
||||
|
@ -436,7 +436,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
*/
|
||||
@Nullable
|
||||
public Object getHeaderValue(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
return (header != null ? header.getValue() : null);
|
||||
}
|
||||
|
||||
|
@ -446,7 +446,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
* @return the associated header values, or an empty List if none
|
||||
*/
|
||||
public List<Object> getHeaderValues(String name) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
if (header != null) {
|
||||
return header.getValues();
|
||||
}
|
||||
|
@ -614,7 +614,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
|||
}
|
||||
|
||||
private void doAddHeaderValue(String name, Object value, boolean replace) {
|
||||
HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
|
||||
HeaderValueHolder header = this.headers.get(name);
|
||||
Assert.notNull(value, "Header value must not be null");
|
||||
if (header == null) {
|
||||
header = new HeaderValueHolder();
|
||||
|
|
Loading…
Reference in New Issue