Skip to content

Commit c9c360e

Browse files
Addressing PR review
Signed-off-by: Sanghyeok An <ojt90902@naver.com>
1 parent 13267dc commit c9c360e

File tree

3 files changed

+11
-13
lines changed

3 files changed

+11
-13
lines changed

spring-kafka/src/main/java/org/springframework/kafka/support/AbstractKafkaHeaderMapper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ public void addRawMappedHeader(String name, boolean toString) {
196196
/**
197197
* Add patterns for matching multi-value headers under the same key.
198198
* @param patterns the patterns for header.
199+
* @since 4.0
199200
*/
200201
public void setMultiValueHeaderPatterns(String ... patterns) {
201202
this.multiValueHeaderMatchers.addAll(Arrays
@@ -268,6 +269,7 @@ protected Object headerValueToAddOut(String key, Object value) {
268269
* Check whether the header value should be mapped to multiple values.
269270
* @param headerName the header name.
270271
* @return True for multiple values at the same key.
272+
* @since 4.0
271273
*/
272274
protected boolean doesMatchMultiValueHeader(String headerName) {
273275
for (HeaderMatcher headerMatcher : this.multiValueHeaderMatchers) {
@@ -283,7 +285,7 @@ protected boolean doesMatchMultiValueHeader(String headerName) {
283285
* @param headerName the header name.
284286
* @param header the header instance.
285287
* @param headers the target headers.
286-
* @since 4.0.0
288+
* @since 4.0
287289
*/
288290
protected void fromUserHeader(String headerName, Header header, final Map<String, Object> headers) {
289291
if (!doesMatchMultiValueHeader(headerName)) {
@@ -294,7 +296,7 @@ protected void fromUserHeader(String headerName, Header header, final Map<String
294296
List<Object> headerValues = (List<Object>)
295297
headers.computeIfAbsent(headerName, key -> new ArrayList<>());
296298
headerValues.add(headerValueToAddIn(header));
297-
headers.put(headerName, headerValues);
299+
// headers.put(headerName, headerValues);
298300
}
299301
}
300302

spring-kafka/src/main/java/org/springframework/kafka/support/DefaultKafkaHeaderMapper.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -268,14 +268,12 @@ public void fromHeaders(MessageHeaders headers, Headers target) {
268268
headers.forEach((key, rawValue) -> {
269269
if (matches(key, rawValue)) {
270270
if (doesMatchMultiValueHeader(key)) {
271-
Iterable<?> valuesToMap;
272-
if (rawValue instanceof Iterable<?> iterable) {
273-
valuesToMap = iterable;
271+
if (rawValue instanceof Iterable<?> valuesToMap) {
272+
valuesToMap.forEach(o -> fromHeader(key, o, jsonHeaders, headerObjectMapper, target));
274273
}
275274
else {
276-
valuesToMap = List.of(rawValue);
275+
fromHeader(key, rawValue, jsonHeaders, headerObjectMapper, target);
277276
}
278-
valuesToMap.forEach(o -> fromHeader(key, o, jsonHeaders, headerObjectMapper, target));
279277
}
280278
else {
281279
fromHeader(key, rawValue, jsonHeaders, headerObjectMapper, target);
@@ -341,7 +339,7 @@ private void fromHeader(String key, Object rawValue, Map<String, String> jsonHea
341339
else {
342340
target.add(new RecordHeader(key, headerObjectMapper.writeValueAsBytes(valueToAdd)));
343341
}
344-
jsonHeaders.put(key, className);
342+
jsonHeaders.putIfAbsent(key, className);
345343
}
346344
catch (Exception e) {
347345
logger.error(e, () -> "Could not map " + key + " with type " + rawValue.getClass().getName());

spring-kafka/src/main/java/org/springframework/kafka/support/SimpleKafkaHeaderMapper.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,12 @@ public void fromHeaders(MessageHeaders headers, Headers target) {
9797
headers.forEach((key, value) -> {
9898
if (!NEVER.contains(key)) {
9999
if (doesMatchMultiValueHeader(key)) {
100-
Iterable<?> valuesToMap;
101-
if (value instanceof Iterable<?> iterable) {
102-
valuesToMap = iterable;
100+
if (value instanceof Iterable<?> valuesToMap) {
101+
valuesToMap.forEach(o -> fromHeader(key, o, target));
103102
}
104103
else {
105-
valuesToMap = List.of(value);
104+
fromHeader(key, value, target);
106105
}
107-
valuesToMap.forEach(o -> fromHeader(key, o, target));
108106
}
109107
else {
110108
fromHeader(key, value, target);

0 commit comments

Comments
 (0)