Fix LinkedCaseInsensitiveMap collection methods

Ensure that results returned from keySet, entrySet & values are tracked
to remove case insensitive keys from the source map.

Closes gh-22821
This commit is contained in:
Phillip Webb
2019-04-25 15:36:18 -07:00
parent c4bd5abc3b
commit 55ac110f7b
3 changed files with 338 additions and 11 deletions

View File

@@ -562,7 +562,6 @@ public class HttpHeadersTests {
}
@Test
@Ignore("Disabled until gh-22821 is resolved")
public void removalFromKeySetRemovesEntryFromUnderlyingMap() {
String headerName = "MyHeader";
String headerValue = "value";
@@ -573,11 +572,10 @@ public class HttpHeadersTests {
headers.keySet().removeIf(key -> key.equals(headerName));
assertTrue(headers.isEmpty());
headers.add(headerName, headerValue);
assertEquals(headerValue, headers.get(headerName));
assertEquals(headerValue, headers.get(headerName).get(0));
}
@Test
@Ignore("Disabled until gh-22821 is resolved")
public void removalFromEntrySetRemovesEntryFromUnderlyingMap() {
String headerName = "MyHeader";
String headerValue = "value";
@@ -588,7 +586,7 @@ public class HttpHeadersTests {
headers.entrySet().removeIf(entry -> entry.getKey().equals(headerName));
assertTrue(headers.isEmpty());
headers.add(headerName, headerValue);
assertEquals(headerValue, headers.get(headerName));
assertEquals(headerValue, headers.get(headerName).get(0));
}
}