Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
-
None
Description
Trying to read from a nullable TIMESTAMP field with null value:
{{java.lang.NullPointerException: null
at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.binaryDate(MariaSelectResultSet.java:3259)
at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1440)
at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1351)
at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1363)}}
The NPE is thrown here while trying to create new Date from null because rawBytes.length==0
if you look at binaryTimestamp(...), there is already the following:
{{if (rawBytes.length == 0)
{ return null; }}}
So i guess it is just missing in this method
Edit: oh god, jira formatting is a mess.
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Description |
Trying to read from a nullable TIMESTAMP field with null value:
{{ java.lang.NullPointerException: null at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.binaryDate(MariaSelectResultSet.java:3259) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1440) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1351) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1363) }} The NPE is thrown [here|https://github.com/MariaDB/mariadb-connector-j/blob/master/src/main/java/org/mariadb/jdbc/internal/queryresults/resultset/MariaSelectResultSet.java#L3260] while trying to create {{new Date}} from null because rawBytes.length==0 if you look at {{binaryTimestamp(...)}}, there is already the following: {{ if (rawBytes.length == 0) { return null; } }} So i guess it is just missing in this method |
Trying to read from a nullable TIMESTAMP field with null value:
{{ java.lang.NullPointerException: null at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.binaryDate(MariaSelectResultSet.java:3259) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1440) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1351) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1363) }} The NPE is thrown [here|https://github.com/MariaDB/mariadb-connector-j/blob/master/src/main/java/org/mariadb/jdbc/internal/queryresults/resultset/MariaSelectResultSet.java#L3260] while trying to create new Date from null because rawBytes.length==0 if you look at {{binaryTimestamp(...)}}, there is already the following: {{ if (rawBytes.length == 0) { return null; } }} So i guess it is just missing in this method Edit: oh god, jira formatting is a mess. |
Description |
Trying to read from a nullable TIMESTAMP field with null value:
{{ java.lang.NullPointerException: null at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.binaryDate(MariaSelectResultSet.java:3259) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1440) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1351) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1363) }} The NPE is thrown [here|https://github.com/MariaDB/mariadb-connector-j/blob/master/src/main/java/org/mariadb/jdbc/internal/queryresults/resultset/MariaSelectResultSet.java#L3260] while trying to create new Date from null because rawBytes.length==0 if you look at {{binaryTimestamp(...)}}, there is already the following: {{ if (rawBytes.length == 0) { return null; } }} So i guess it is just missing in this method Edit: oh god, jira formatting is a mess. |
Trying to read from a nullable TIMESTAMP field with null value:
{{java.lang.NullPointerException: null at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.binaryDate(MariaSelectResultSet.java:3259) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1440) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1351) at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.getDate(MariaSelectResultSet.java:1363)}} The NPE is thrown [here|https://github.com/MariaDB/mariadb-connector-j/blob/master/src/main/java/org/mariadb/jdbc/internal/queryresults/resultset/MariaSelectResultSet.java#L3260] while trying to create new Date from null because rawBytes.length==0 if you look at {{binaryTimestamp(...)}}, there is already the following: {{if (rawBytes.length == 0) { return null; }}} So i guess it is just missing in this method Edit: oh god, jira formatting is a mess. |
Fix Version/s | 1.4.6 [ 22036 ] |
Status | Open [ 1 ] | Confirmed [ 10101 ] |
Component/s | Failover [ 12200 ] | |
Resolution | Fixed [ 1 ] | |
Status | Confirmed [ 10101 ] | Closed [ 6 ] |
Component/s | Other [ 12201 ] | |
Component/s | Failover [ 12200 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Summary | NPE while loading a null from TIMESTAMP field | NPE while loading a null from TIMESTAMP field using Resultset.getDate() |
Workflow | MariaDB v3 [ 75954 ] | MariaDB v4 [ 134881 ] |
You're right, thanks for reporting !
This can occur with resultset.getDate() or resulset.getTime() (not resultset.getTimestamp() ) from a null timestamp field.
correction in commit : https://github.com/MariaDB/mariadb-connector-j/commit/b12536f0c301fb72070982f883957f2e21e4c327
a new correction version 1.4.6 will be released quickly.