diff --git a/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java b/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java index c7587bb128..fc5d905416 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java +++ b/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java @@ -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. @@ -72,11 +72,11 @@ class BaseCodecConfigurer implements CodecConfigurer { public List> getReaders() { List> result = new ArrayList<>(); - result.addAll(this.defaultCodecs.getTypedReaders()); result.addAll(this.customCodecs.getTypedReaders()); + result.addAll(this.defaultCodecs.getTypedReaders()); - result.addAll(this.defaultCodecs.getObjectReaders()); result.addAll(this.customCodecs.getObjectReaders()); + result.addAll(this.defaultCodecs.getObjectReaders()); result.addAll(this.defaultCodecs.getCatchAllReaders()); return result; @@ -96,11 +96,11 @@ class BaseCodecConfigurer implements CodecConfigurer { protected List> getWritersInternal(boolean forMultipart) { List> result = new ArrayList<>(); - result.addAll(this.defaultCodecs.getTypedWriters(forMultipart)); result.addAll(this.customCodecs.getTypedWriters()); + result.addAll(this.defaultCodecs.getTypedWriters(forMultipart)); - result.addAll(this.defaultCodecs.getObjectWriters(forMultipart)); result.addAll(this.customCodecs.getObjectWriters()); + result.addAll(this.defaultCodecs.getObjectWriters(forMultipart)); result.addAll(this.defaultCodecs.getCatchAllWriters()); return result; diff --git a/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java b/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java index 29df90465d..6799d8e844 100644 --- a/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java +++ b/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java @@ -125,6 +125,8 @@ public class CodecConfigurerTests { List> readers = this.configurer.getReaders(); assertEquals(15, readers.size()); + assertSame(customDecoder1, getNextDecoder(readers)); + assertSame(customReader1, readers.get(this.index.getAndIncrement())); assertEquals(ByteArrayDecoder.class, getNextDecoder(readers).getClass()); assertEquals(ByteBufferDecoder.class, getNextDecoder(readers).getClass()); assertEquals(DataBufferDecoder.class, getNextDecoder(readers).getClass()); @@ -132,13 +134,11 @@ public class CodecConfigurerTests { assertEquals(StringDecoder.class, getNextDecoder(readers).getClass()); assertEquals(ProtobufDecoder.class, getNextDecoder(readers).getClass()); assertEquals(FormHttpMessageReader.class, readers.get(this.index.getAndIncrement()).getClass()); - assertSame(customDecoder1, getNextDecoder(readers)); - assertSame(customReader1, readers.get(this.index.getAndIncrement())); + assertSame(customDecoder2, getNextDecoder(readers)); + assertSame(customReader2, readers.get(this.index.getAndIncrement())); assertEquals(Jackson2JsonDecoder.class, getNextDecoder(readers).getClass()); assertEquals(Jackson2SmileDecoder.class, getNextDecoder(readers).getClass()); assertEquals(Jaxb2XmlDecoder.class, getNextDecoder(readers).getClass()); - assertSame(customDecoder2, getNextDecoder(readers)); - assertSame(customReader2, readers.get(this.index.getAndIncrement())); assertEquals(StringDecoder.class, getNextDecoder(readers).getClass()); } @@ -165,19 +165,19 @@ public class CodecConfigurerTests { List> writers = this.configurer.getWriters(); assertEquals(14, writers.size()); + assertSame(customEncoder1, getNextEncoder(writers)); + assertSame(customWriter1, writers.get(this.index.getAndIncrement())); assertEquals(ByteArrayEncoder.class, getNextEncoder(writers).getClass()); assertEquals(ByteBufferEncoder.class, getNextEncoder(writers).getClass()); assertEquals(DataBufferEncoder.class, getNextEncoder(writers).getClass()); assertEquals(ResourceHttpMessageWriter.class, writers.get(index.getAndIncrement()).getClass()); assertEquals(CharSequenceEncoder.class, getNextEncoder(writers).getClass()); assertEquals(ProtobufHttpMessageWriter.class, writers.get(index.getAndIncrement()).getClass()); - assertSame(customEncoder1, getNextEncoder(writers)); - assertSame(customWriter1, writers.get(this.index.getAndIncrement())); + assertSame(customEncoder2, getNextEncoder(writers)); + assertSame(customWriter2, writers.get(this.index.getAndIncrement())); assertEquals(Jackson2JsonEncoder.class, getNextEncoder(writers).getClass()); assertEquals(Jackson2SmileEncoder.class, getNextEncoder(writers).getClass()); assertEquals(Jaxb2XmlEncoder.class, getNextEncoder(writers).getClass()); - assertSame(customEncoder2, getNextEncoder(writers)); - assertSame(customWriter2, writers.get(this.index.getAndIncrement())); assertEquals(CharSequenceEncoder.class, getNextEncoder(writers).getClass()); }