Skip to content

Commit eab4a67

Browse files
garyrussellartembilan
authored andcommitted
GH-1843: Delegating EH - use isAssignable()
Resolves #1842
1 parent df92ec5 commit eab4a67

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

spring-kafka/src/main/java/org/springframework/kafka/listener/ConditionalDelegatingBatchErrorHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ protected void doHandle(Exception thrownException, ConsumerRecords<?, ?> records
9494
if (cause != null) {
9595
Class<? extends Throwable> causeClass = cause.getClass();
9696
for (Entry<Class<? extends Throwable>, ContainerAwareBatchErrorHandler> entry : this.delegates.entrySet()) {
97-
if (entry.getKey().equals(causeClass)) {
97+
if (entry.getKey().isAssignableFrom(causeClass)) {
9898
entry.getValue().handle(thrownException, records, consumer, container, invokeListener);
9999
return;
100100
}

spring-kafka/src/main/java/org/springframework/kafka/listener/ConditionalDelegatingErrorHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void handle(Exception thrownException, @Nullable List<ConsumerRecord<?, ?
8282
if (cause != null) {
8383
Class<? extends Throwable> causeClass = cause.getClass();
8484
for (Entry<Class<? extends Throwable>, ContainerAwareErrorHandler> entry : this.delegates.entrySet()) {
85-
if (entry.getKey().equals(causeClass)) {
85+
if (entry.getKey().isAssignableFrom(causeClass)) {
8686
handled = true;
8787
entry.getValue().handle(thrownException, records, consumer, container);
8888
return;

spring-kafka/src/test/java/org/springframework/kafka/listener/ConditionalDelegatingErrorHandlerTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
import org.apache.kafka.clients.consumer.ConsumerRecords;
2929
import org.junit.jupiter.api.Test;
3030

31+
import org.springframework.kafka.KafkaException;
32+
3133
/**
3234
* @author Gary Russell
3335
* @since 2.7.4
@@ -48,7 +50,7 @@ void testRecordDelegates() {
4850
eh.handle(wrap(new IOException()), Collections.emptyList(), mock(Consumer.class),
4951
mock(MessageListenerContainer.class));
5052
verify(def).handle(any(), any(), any(), any());
51-
eh.handle(wrap(new RuntimeException()), Collections.emptyList(), mock(Consumer.class),
53+
eh.handle(wrap(new KafkaException("test")), Collections.emptyList(), mock(Consumer.class),
5254
mock(MessageListenerContainer.class));
5355
verify(three).handle(any(), any(), any(), any());
5456
eh.handle(wrap(new IllegalArgumentException()), Collections.emptyList(), mock(Consumer.class),
@@ -72,7 +74,7 @@ void testBatchDelegates() {
7274
eh.handle(wrap(new IOException()), mock(ConsumerRecords.class), mock(Consumer.class),
7375
mock(MessageListenerContainer.class), mock(Runnable.class));
7476
verify(def).handle(any(), any(), any(), any(), any());
75-
eh.handle(wrap(new RuntimeException()), mock(ConsumerRecords.class), mock(Consumer.class),
77+
eh.handle(wrap(new KafkaException("test")), mock(ConsumerRecords.class), mock(Consumer.class),
7678
mock(MessageListenerContainer.class), mock(Runnable.class));
7779
verify(three).handle(any(), any(), any(), any(), any());
7880
eh.handle(wrap(new IllegalArgumentException()), mock(ConsumerRecords.class), mock(Consumer.class),

0 commit comments

Comments
 (0)