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

Impossible to use Java 8 OffsetTime datatype

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 2.4.2
    • None
    • JDBC 4.2 compatibility
    • None
    • All

    Description

      org.mariadb.jdbc.internal.com.send.parameters.OffsetTimeParameter seems to be broken. It contains the following code:

          ZoneId zoneId = options.useLegacyDatetimeCode ? ZoneOffset.systemDefault() : 
      serverZoneId;
          if (zoneId instanceof ZoneOffset) {
            throw new SQLException("cannot set OffsetTime, since server time zone is set to '"
                + serverZoneId.toString() + "' (check server variables time_zone and system_time_zone)");
          }
          this.time = offsetTime.withOffsetSameInstant((ZoneOffset) zoneId);
      

      I am not sure how it is supposed to work but atm it does not seem to be possible to pass in any zoneId that would be accepted. First a validation makes sure that the zoneId is not ZoneOffset and granted that validation is passed, it is then immediately cast to ZoneOffset which fails. So - neither ZoneRegion nor ZoneOffset work here.

      org.mariadb.jdbc.internal.com.send.parameters.ZonedDateTimeParameter does not seem to have the validation block, so maybe this is unnecessary also here?

      When I implemented my own ParameterHolder and set it on the Statement using setParameter, it was possible to save Java 8 Time types to the DB

      Attachments

        Activity

          People

            diego dupin Diego Dupin
            tarmo Tarmo Randma
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

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