Skip to content

Commit 02d4df8

Browse files
Revert "GH-3880: The DefaultHandler resolves an incorrect value for the parameter annotated with @Header."
This reverts commit 6bffcec. Signed-off-by: chickenchickenlove <[email protected]>
1 parent 3e81536 commit 02d4df8

File tree

2 files changed

+6
-46
lines changed

2 files changed

+6
-46
lines changed

spring-kafka/src/main/java/org/springframework/kafka/listener/adapter/HandlerAdapter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ public Object invoke(Message<?> message, @Nullable Object... providedArgs) throw
8181
}
8282
else if (Objects.requireNonNull(this.delegatingHandler).hasDefaultHandler()) {
8383
// Needed to avoid returning raw Message which matches Object
84-
return this.delegatingHandler.invoke(message, providedArgs);
84+
Object[] args = new Object[providedArgs.length + 1];
85+
args[0] = message.getPayload();
86+
System.arraycopy(providedArgs, 0, args, 1, providedArgs.length);
87+
return this.delegatingHandler.invoke(message, args);
8588
}
8689
else {
8790
return this.delegatingHandler.invoke(message, providedArgs);

spring-kafka/src/test/java/org/springframework/kafka/annotation/EnableKafkaIntegrationTests.java

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,7 @@
184184
* @author Wang Zhiyang
185185
* @author Borahm Lee
186186
* @author Sean Sullivan
187-
* @author Sanghyeok An
188187
*/
189-
190188
@SpringJUnitConfig
191189
@DirtiesContext
192190
@EmbeddedKafka(topics = {"annotated1", "annotated2", "annotated3", "annotated3x",
@@ -201,7 +199,7 @@
201199
"annotated29", "annotated30", "annotated30reply", "annotated31", "annotated32", "annotated33",
202200
"annotated34", "annotated35", "annotated36", "annotated37", "foo", "manualStart", "seekOnIdle",
203201
"annotated38", "annotated38reply", "annotated39", "annotated40", "annotated41", "annotated42",
204-
"annotated43", "annotated43reply", "seekToComputeFn", "headerMapTopic", "default33"})
202+
"annotated43", "annotated43reply", "seekToComputeFn", "headerMapTopic"})
205203
@TestPropertySource(properties = "spel.props=fetch.min.bytes=420000,max.poll.records=10")
206204
public class EnableKafkaIntegrationTests {
207205

@@ -295,9 +293,6 @@ public class EnableKafkaIntegrationTests {
295293
@Autowired
296294
private RecordFilterStrategy<Integer, String> lambdaAll;
297295

298-
@Autowired
299-
private DefaultHandlerListenerBean defaultHandlerListenerBean;
300-
301296
@Test
302297
public void testAnonymous() {
303298
assertThat(this.embeddedKafka).isInstanceOf(EmbeddedKafkaKraftBroker.class);
@@ -592,22 +587,7 @@ public void testMultiJson() throws Exception {
592587
assertThat(this.multiJsonListener.bar).isInstanceOf(Qux.class);
593588
assertThat(this.multiJsonListener.validated).isNotNull();
594589
assertThat(this.multiJsonListener.validated.isValidated()).isTrue();
595-
assertThat(this.multiJsonListener.validated.valCount).isEqualTo(2);
596-
}
597-
598-
@Test
599-
void testDefaultHandler() throws InterruptedException {
600-
// GIVEN
601-
String topic = "default33";
602-
String message = "hello-message";
603-
604-
// WHEN
605-
this.template.send(topic, 1, message);
606-
607-
// THEN
608-
assertThat(this.defaultHandlerListenerBean.latch1.await(10, TimeUnit.SECONDS)).isTrue();
609-
assertThat(this.defaultHandlerListenerBean.header).isEqualTo(topic);
610-
assertThat(this.defaultHandlerListenerBean.message).isEqualTo(message);
590+
assertThat(this.multiJsonListener.validated.valCount).isEqualTo(1);
611591
}
612592

613593
@Test
@@ -1620,11 +1600,6 @@ public HeaderMapListenerBean headerMapListener() {
16201600
return new HeaderMapListenerBean();
16211601
}
16221602

1623-
@Bean
1624-
public DefaultHandlerListenerBean defaultHandlerListenerBean() {
1625-
return new DefaultHandlerListenerBean();
1626-
}
1627-
16281603
@Bean
16291604
public MultiListenerNoDefault multiNoDefault() {
16301605
return new MultiListenerNoDefault();
@@ -2822,24 +2797,6 @@ public void defaultHandler(Bar bar) {
28222797

28232798
}
28242799

2825-
@KafkaListener(id = "defaultHandlerListener", topics = "default33")
2826-
static class DefaultHandlerListenerBean {
2827-
2828-
final CountDownLatch latch1 = new CountDownLatch(1);
2829-
2830-
String header;
2831-
2832-
String message;
2833-
2834-
@KafkaHandler(isDefault = true)
2835-
public void defaultHandler(@Header("kafka_receivedTopic") String receivedTopic, String message) {
2836-
this.latch1.countDown();
2837-
this.header = receivedTopic;
2838-
this.message = message;
2839-
}
2840-
2841-
}
2842-
28432800
@KafkaListener(id = "headerMap", topics = "headerMapTopic")
28442801
static class HeaderMapListenerBean {
28452802

0 commit comments

Comments
 (0)