You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Nadav Har'El (Jira)" <ji...@apache.org> on 2026/10/09 12:18:00 UTC

[jira] [Created] (CASSANDRA-21738) NullPointerException when an empty value is bound to USING TIMESTAMP

Nadav Har'El created CASSANDRA-21738:
----------------------------------------

             Summary: NullPointerException when an empty value is bound to USING TIMESTAMP
                 Key: CASSANDRA-21738
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21738
             Project: Apache Cassandra
          Issue Type: Bug
            Reporter: Nadav Har'El


When a prepared statement's {{USING TIMESTAMP ?}} bind marker is given an empty (zero-length) value, the request fails with a server error caused by a NullPointerException:

{code:sql}
CREATE TABLE ks.t (k int PRIMARY KEY, v int);
-- prepare, and bind ? to an empty (0-byte) value:
INSERT INTO ks.t (k, v) VALUES (1, 1) USING TIMESTAMP ?;
{code}

{noformat}
Server error: java.lang.NullPointerException: Cannot invoke "java.lang.Long.longValue()" because the return value of ... is null
{noformat}

Reproduced on Cassandra 5.0.9 and 6.0-alpha2.

CASSANDRA-17822 fixed the same NPE for {{USING TTL ?}}: {{Attributes.getTimeToLive()}} now treats an empty value like null, i.e. no TTL ({{InsertTest.testEmptyTTL}}). But {{Attributes.getTimestamp()}} has no such check. It validates the empty buffer, and {{LongType.instance.compose()}} returns null for it, which is then unboxed into a long.

Expected: an InvalidRequestException, like the one for a null value ("Invalid null value of timestamp"), instead of a server error.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org