Fix BaseCodecConfigurer clone bug

Prior to this commit, ExchangeStrategies custom codec's reader and
writer were not registered due to a bug in BaseCodecConfigurer.

This commit fixes this by correcting the implementation of the
DefaultCustomCodecs constructor used within BaseCodecConfigurer.

Closes gh-25149
This commit is contained in:
dlsrb6342
2020-05-28 19:15:25 +09:00
committed by Sam Brannen
parent e25e6a68cf
commit 6c5129b829
2 changed files with 21 additions and 5 deletions

View File

@@ -273,7 +273,7 @@ public class CodecConfigurerTests {
}
@Test
public void cloneCustomCodecs() {
public void cloneEmptyCustomCodecs() {
this.configurer.registerDefaults(false);
CodecConfigurer clone = this.configurer.clone();
@@ -288,6 +288,22 @@ public class CodecConfigurerTests {
assertEquals(2, clone.getWriters().size());
}
@Test
public void cloneCustomCodecs() {
CodecConfigurer from = new TestCodecConfigurer();
from.registerDefaults(false);
from.customCodecs().register(new Jackson2JsonEncoder());
from.customCodecs().register(new Jackson2JsonDecoder());
from.customCodecs().register(new ServerSentEventHttpMessageReader());
from.customCodecs().register(new ServerSentEventHttpMessageWriter());
CodecConfigurer clone = from.clone();
assertEquals(2, from.getReaders().size());
assertEquals(2, from.getWriters().size());
assertEquals(2, clone.getReaders().size());
assertEquals(2, clone.getWriters().size());
}
@Test
public void cloneDefaultCodecs() {
CodecConfigurer clone = this.configurer.clone();