1616
1717package org .springframework .kafka .support .converter ;
1818
19+ import java .util .ArrayList ;
20+ import java .util .Collections ;
21+ import java .util .List ;
22+
1923import org .apache .kafka .clients .consumer .ConsumerRecord ;
2024
2125import org .springframework .kafka .KafkaException ;
@@ -33,6 +37,8 @@ public class ConversionException extends KafkaException {
3337
3438 private final ConsumerRecord <?, ?> record ;
3539
40+ private final List <ConsumerRecord <?, ?>> records = new ArrayList <>();
41+
3642 private final Message <?> message ;
3743
3844 /**
@@ -59,6 +65,20 @@ public ConversionException(String message, ConsumerRecord<?, ?> record, Throwabl
5965 this .message = null ;
6066 }
6167
68+ /**
69+ * Construct an instance with the provided properties.
70+ * @param message A text message describing the reason.
71+ * @param records the consumer records.
72+ * @param cause the cause.
73+ * @since 2.7.2
74+ */
75+ public ConversionException (String message , List <ConsumerRecord <?, ?>> records , Throwable cause ) {
76+ super (message , cause );
77+ this .record = record ;
78+ this .records .addAll (records );
79+ this .message = null ;
80+ }
81+
6282 /**
6383 * Construct an instance with the provided properties.
6484 * @param message A text message describing the reason.
@@ -82,6 +102,16 @@ public ConversionException(String message, Message<?> msg, Throwable cause) {
82102 return this .record ;
83103 }
84104
105+ /**
106+ * Return the consumer record, if available.
107+ * @return the record.
108+ * @since 2.7.2
109+ */
110+ @ Nullable
111+ public List <ConsumerRecord <?, ?>> getRecords () {
112+ return Collections .unmodifiableList (this .records );
113+ }
114+
85115 /**
86116 * Return the {@link Message}, if available.
87117 * @return the message.
0 commit comments