Skip to content

Commit 4938831

Browse files
committed
Register custom before default codecs
Closes gh-22612
1 parent e9819b7 commit 4938831

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2018 the original author or authors.
2+
* Copyright 2002-2019 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -72,11 +72,11 @@ public CustomCodecs customCodecs() {
7272
public List<HttpMessageReader<?>> getReaders() {
7373
List<HttpMessageReader<?>> result = new ArrayList<>();
7474

75-
result.addAll(this.defaultCodecs.getTypedReaders());
7675
result.addAll(this.customCodecs.getTypedReaders());
76+
result.addAll(this.defaultCodecs.getTypedReaders());
7777

78-
result.addAll(this.defaultCodecs.getObjectReaders());
7978
result.addAll(this.customCodecs.getObjectReaders());
79+
result.addAll(this.defaultCodecs.getObjectReaders());
8080

8181
result.addAll(this.defaultCodecs.getCatchAllReaders());
8282
return result;
@@ -96,11 +96,11 @@ public List<HttpMessageWriter<?>> getWriters() {
9696
protected List<HttpMessageWriter<?>> getWritersInternal(boolean forMultipart) {
9797
List<HttpMessageWriter<?>> result = new ArrayList<>();
9898

99-
result.addAll(this.defaultCodecs.getTypedWriters(forMultipart));
10099
result.addAll(this.customCodecs.getTypedWriters());
100+
result.addAll(this.defaultCodecs.getTypedWriters(forMultipart));
101101

102-
result.addAll(this.defaultCodecs.getObjectWriters(forMultipart));
103102
result.addAll(this.customCodecs.getObjectWriters());
103+
result.addAll(this.defaultCodecs.getObjectWriters(forMultipart));
104104

105105
result.addAll(this.defaultCodecs.getCatchAllWriters());
106106
return result;

spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -125,20 +125,20 @@ public void defaultAndCustomReaders() {
125125
List<HttpMessageReader<?>> readers = this.configurer.getReaders();
126126

127127
assertEquals(15, readers.size());
128+
assertSame(customDecoder1, getNextDecoder(readers));
129+
assertSame(customReader1, readers.get(this.index.getAndIncrement()));
128130
assertEquals(ByteArrayDecoder.class, getNextDecoder(readers).getClass());
129131
assertEquals(ByteBufferDecoder.class, getNextDecoder(readers).getClass());
130132
assertEquals(DataBufferDecoder.class, getNextDecoder(readers).getClass());
131133
assertEquals(ResourceHttpMessageReader.class, readers.get(this.index.getAndIncrement()).getClass());
132134
assertEquals(StringDecoder.class, getNextDecoder(readers).getClass());
133135
assertEquals(ProtobufDecoder.class, getNextDecoder(readers).getClass());
134136
assertEquals(FormHttpMessageReader.class, readers.get(this.index.getAndIncrement()).getClass());
135-
assertSame(customDecoder1, getNextDecoder(readers));
136-
assertSame(customReader1, readers.get(this.index.getAndIncrement()));
137+
assertSame(customDecoder2, getNextDecoder(readers));
138+
assertSame(customReader2, readers.get(this.index.getAndIncrement()));
137139
assertEquals(Jackson2JsonDecoder.class, getNextDecoder(readers).getClass());
138140
assertEquals(Jackson2SmileDecoder.class, getNextDecoder(readers).getClass());
139141
assertEquals(Jaxb2XmlDecoder.class, getNextDecoder(readers).getClass());
140-
assertSame(customDecoder2, getNextDecoder(readers));
141-
assertSame(customReader2, readers.get(this.index.getAndIncrement()));
142142
assertEquals(StringDecoder.class, getNextDecoder(readers).getClass());
143143
}
144144

@@ -165,19 +165,19 @@ public void defaultAndCustomWriters() {
165165
List<HttpMessageWriter<?>> writers = this.configurer.getWriters();
166166

167167
assertEquals(14, writers.size());
168+
assertSame(customEncoder1, getNextEncoder(writers));
169+
assertSame(customWriter1, writers.get(this.index.getAndIncrement()));
168170
assertEquals(ByteArrayEncoder.class, getNextEncoder(writers).getClass());
169171
assertEquals(ByteBufferEncoder.class, getNextEncoder(writers).getClass());
170172
assertEquals(DataBufferEncoder.class, getNextEncoder(writers).getClass());
171173
assertEquals(ResourceHttpMessageWriter.class, writers.get(index.getAndIncrement()).getClass());
172174
assertEquals(CharSequenceEncoder.class, getNextEncoder(writers).getClass());
173175
assertEquals(ProtobufHttpMessageWriter.class, writers.get(index.getAndIncrement()).getClass());
174-
assertSame(customEncoder1, getNextEncoder(writers));
175-
assertSame(customWriter1, writers.get(this.index.getAndIncrement()));
176+
assertSame(customEncoder2, getNextEncoder(writers));
177+
assertSame(customWriter2, writers.get(this.index.getAndIncrement()));
176178
assertEquals(Jackson2JsonEncoder.class, getNextEncoder(writers).getClass());
177179
assertEquals(Jackson2SmileEncoder.class, getNextEncoder(writers).getClass());
178180
assertEquals(Jaxb2XmlEncoder.class, getNextEncoder(writers).getClass());
179-
assertSame(customEncoder2, getNextEncoder(writers));
180-
assertSame(customWriter2, writers.get(this.index.getAndIncrement()));
181181
assertEquals(CharSequenceEncoder.class, getNextEncoder(writers).getClass());
182182
}
183183

0 commit comments

Comments
 (0)