MessageHeaderAccessor handle self-copy correctly
1. Revert changes in setHeader from 5.2.9 that caused regression on self-copy. 2. Update copyHeaders to ensure it still gets a copy of native headers. 3. Exit if source and target are the same instance, as an optimization. Closes gh-26155
This commit is contained in:
@@ -241,4 +241,14 @@ public class NativeMessageHeaderAccessorTests {
|
||||
assertThat(((NativeMessageHeaderAccessor) accessor).getNativeHeader("foo")).containsExactly("bar", "baz");
|
||||
}
|
||||
|
||||
@Test // gh-26155
|
||||
void copySelf() {
|
||||
NativeMessageHeaderAccessor accessor = new NativeMessageHeaderAccessor();
|
||||
accessor.addNativeHeader("foo", "bar");
|
||||
accessor.setHeader("otherHeader", "otherHeaderValue");
|
||||
accessor.setLeaveMutable(true);
|
||||
|
||||
// Does not fail with ConcurrentModificationException
|
||||
accessor.copyHeaders(accessor.getMessageHeaders());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user