Uploaded image for project: 'MariaDB Connector/J'
  1. MariaDB Connector/J
  2. CONJ-312

NPE while loading a null from TIMESTAMP field using Resultset.getDate()

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • None
    • 1.4.6
    • Other
    • 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

          kromit Roman Kliewer created issue -
          kromit Roman Kliewer made changes -
          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.
          kromit Roman Kliewer made changes -
          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.
          diego dupin Diego Dupin made changes -
          Fix Version/s 1.4.6 [ 22036 ]
          diego dupin Diego Dupin made changes -
          Status Open [ 1 ] Confirmed [ 10101 ]
          diego dupin Diego Dupin added a comment - - edited

          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.

          diego dupin Diego Dupin added a comment - - edited 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.
          diego dupin Diego Dupin made changes -
          Component/s Failover [ 12200 ]
          Resolution Fixed [ 1 ]
          Status Confirmed [ 10101 ] Closed [ 6 ]
          diego dupin Diego Dupin made changes -
          Component/s Other [ 12201 ]
          Component/s Failover [ 12200 ]
          diego dupin Diego Dupin made changes -
          Priority Major [ 3 ] Critical [ 2 ]
          diego dupin Diego Dupin made changes -
          Summary NPE while loading a null from TIMESTAMP field NPE while loading a null from TIMESTAMP field using Resultset.getDate()
          serg Sergei Golubchik made changes -
          Workflow MariaDB v3 [ 75954 ] MariaDB v4 [ 134881 ]

          People

            diego dupin Diego Dupin
            kromit Roman Kliewer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.