diff --git a/CHANGES.txt b/CHANGES.txt index ab72cd3875..b363a96e7c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -113,6 +113,7 @@ * GossiperTest.testHasVersion3Nodes didn't take into account trunk version changes, fixed to rely on latest version (CASSANDRA-16651) * Update JNA library to 5.9.0 and snappy-java to version 1.1.8.4 (CASSANDRA-17040) Merged from 4.0: + * Fix timestamp tz parsing (CASSANDRA-17467) * Suppress CVE-2021-44521 from driver (CASSANDRA-17459) * Upgrade jackson to 2.13.2 (CASSANDRA-17460) * Make sstableloader honour native port option (CASSANDRA-17210) diff --git a/src/java/org/apache/cassandra/serializers/TimestampSerializer.java b/src/java/org/apache/cassandra/serializers/TimestampSerializer.java index 80091b904c..71782e5434 100644 --- a/src/java/org/apache/cassandra/serializers/TimestampSerializer.java +++ b/src/java/org/apache/cassandra/serializers/TimestampSerializer.java @@ -55,9 +55,10 @@ public class TimestampSerializer extends TypeSerializer final String[] offsetFormats = new String[] { " z", - "X", " zzzz", - "XXX" + " X", + "X", + "XXX", }; for (String dateTimeFormat: dateTimeFormats) diff --git a/test/unit/org/apache/cassandra/serializers/TimestampSerializerTest.java b/test/unit/org/apache/cassandra/serializers/TimestampSerializerTest.java index 64a1b11f25..e8abbae1a8 100644 --- a/test/unit/org/apache/cassandra/serializers/TimestampSerializerTest.java +++ b/test/unit/org/apache/cassandra/serializers/TimestampSerializerTest.java @@ -129,7 +129,11 @@ public class TimestampSerializerTest final long cstOffset = 6 * ONE_HOUR; validateStringTimestamp("1970-01-01 00:00:00 Central Standard Time", cstOffset); validateStringTimestamp("1970-01-01 00:00:00 CST", cstOffset); + validateStringTimestamp("1970-01-01 00:00:00 -0600", cstOffset); + validateStringTimestamp("1970-01-01 00:00:00-0600", cstOffset); validateStringTimestamp("1970-01-01T00:00:00 GMT-06:00", cstOffset); + validateStringTimestamp("1970-01-01T00:00:00 -0600", cstOffset); + validateStringTimestamp("1970-01-01T00:00:00-0600", cstOffset); } @Test