mjsax commented on code in PR #17005: URL: https://github.com/apache/kafka/pull/17005#discussion_r1735363445
########## streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java: ########## @@ -531,15 +531,33 @@ public class StreamsConfig extends AbstractConfig { public static final String DEFAULT_CLIENT_SUPPLIER_CONFIG = "default.client.supplier"; public static final String DEFAULT_CLIENT_SUPPLIER_DOC = "Client supplier class that implements the <code>org.apache.kafka.streams.KafkaClientSupplier</code> interface."; - /** {@code default.deserialization.exception.handler} */ + /** + * {@code default.deserialization.exception.handler} + * @deprecated since 4.0; use {@link #DESERIALIZATION_EXCEPTION_HANDLER_CLASS_CONFIG} instead + */ @SuppressWarnings("WeakerAccess") + @Deprecated public static final String DEFAULT_DESERIALIZATION_EXCEPTION_HANDLER_CLASS_CONFIG = "default.deserialization.exception.handler"; + @Deprecated public static final String DEFAULT_DESERIALIZATION_EXCEPTION_HANDLER_CLASS_DOC = "Exception handling class that implements the <code>org.apache.kafka.streams.errors.DeserializationExceptionHandler</code> interface."; - /** {@code default.production.exception.handler} */ + /** {@code deserialization.exception.handler} */ @SuppressWarnings("WeakerAccess") + public static final String DESERIALIZATION_EXCEPTION_HANDLER_CLASS_CONFIG = "deserialization.exception.handler"; + static final String DESERIALIZATION_EXCEPTION_HANDLER_CLASS_DOC = "Exception handling class that implements the <code>org.apache.kafka.streams.errors.DeserializationExceptionHandler</code> interface."; + + /** + * {@code default.production.exception.handler} + * @deprecated since 4.0. Use {@link #PRODUCTION_EXCEPTION_HANDLER_CLASS_CONFIG} instead Review Comment: ```suggestion * @deprecated since 4.0; use {@link #PRODUCTION_EXCEPTION_HANDLER_CLASS_CONFIG} instead ``` ########## streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java: ########## @@ -1910,11 +1938,45 @@ public TimestampExtractor defaultTimestampExtractor() { return getConfiguredInstance(DEFAULT_TIMESTAMP_EXTRACTOR_CLASS_CONFIG, TimestampExtractor.class); } + public DeserializationExceptionHandler deserializationExceptionHandler() { + if (originals().containsKey(DESERIALIZATION_EXCEPTION_HANDLER_CLASS_CONFIG) && + originals().containsKey(DEFAULT_DESERIALIZATION_EXCEPTION_HANDLER_CLASS_CONFIG)) { + log.warn("Both the deprecated and new config for deserialization exception handler are configured. " + + "The deprecated one will be ignored."); + } + if (originals().containsKey(DESERIALIZATION_EXCEPTION_HANDLER_CLASS_CONFIG)) { + return getConfiguredInstance(DESERIALIZATION_EXCEPTION_HANDLER_CLASS_CONFIG, DeserializationExceptionHandler.class); + } else { + return defaultDeserializationExceptionHandler(); + } + } + + /** + * @deprecated as of kafka 4.0; use {@link #deserializationExceptionHandler()} instead Review Comment: ```suggestion * @deprecated since 4.0; use {@link #deserializationExceptionHandler()} instead ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org