Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Code
-
Low
-
Normal
-
User Report
-
All
-
None
-
Description
cassandra-all library consumers of the CQLSSTableWriter class cannot easily create an appropriate instance of the LocalDate class in order to write SSTables including dates, and the current implementation no longer accepts a int value as a valid input as previous versions of the class would - we used to use ((AbstractType)columnSpecification.type).decompose(value); in order to serialize the value, but now we use the type codec's .serialize method. Unfortunately, this doesn't work when the consumer can't easily create the type needed (serialize, in the case of dates, takes a LocalDate instance which is not easy to construct outside of Cassandra internal code).
This can be worked around by catching the resulting ClassCastException thrown from the serialize call and falling back to the older decompose implementation, which would maintain backwards-compatibility with other users of the CQLSSTableWriter in cases where they are passing integers for date fields, which used to work.