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

Impossible to use Java 8 OffsetTime datatype

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 2.4.2
    • Fix Version/s: None
    • Component/s: JDBC 4.2 compatibility
    • Labels:
      None
    • Environment:
      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

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

              Dates

              Created:
              Updated: