Greg Harris created KAFKA-16288:
-----------------------------------
Summary: Values.convertToDecimal throws ClassCastExceptions on
String inputs
Key: KAFKA-16288
URL: https://issues.apache.org/jira/browse/KAFKA-16288
Project: Kafka
Issue Type: Bug
Components: connect
Affects Versions: 1.1.0
Reporter: Greg Harris
Assignee: Greg Harris
The convertToDecimal function does a best-effort conversion of an arbitrary
Object to a BigDecimal. Generally when a conversion cannot take place (such as
when an unknown subclass is passed-in) the function throws a DataException.
However, specifically for String inputs with valid number within, a
ClassCastException is thrown.
This is because there is an extra "doubleValue" call in the implementation:
[https://github.com/apache/kafka/blob/ead2431c37ace9255df88ffe819bb905311af088/connect/api/src/main/java/org/apache/kafka/connect/data/Values.java#L427]
which immediately causes a ClassCastException in the caller:
[https://github.com/apache/kafka/blob/ead2431c37ace9255df88ffe819bb905311af088/connect/api/src/main/java/org/apache/kafka/connect/data/Values.java#L305]
This appears accidental, because the case for String is explicitly handled, it
just behaves poorly. Instead of the ClassCastException, the number should be
parsed correctly.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)