Skip to content

@mrotteveel mrotteveel released this Aug 11, 2020 · 80 commits to master since this release

What's new

Jaybird 4.0.1 is the first maintenance release of Jaybird 4, and introduces support for INT128 (a new type in Firebird 4), improves support for the Firebird 4 WITH TIME ZONE types by adding support for java.time.ZonedDateTime and making some of the derivation rules more consistent with Firebird. It also provides some bug fixes and other changes.

The following has been changed or fixed since Jaybird 4.0.0

  • Fixed: Changes to the transaction configuration (transaction parameter buffer configuration) of one connection are no longer propagated to other connections with the same connection properties (JDBC-386)
    This change introduces a binary incompatibility as method setTransactionParameters(int, TransactionParameterBuffer) in FBManagedConnection can now throw ResourceException where previously it did not. Under the assumption that most users of Jaybird are not directly using this class, the change should not break anything.
  • Fixed: Search index of Javadoc in Java 11 version used incorrect links (JDBC-619)
  • Fixed: The cleanup of native resources didn't dispose the native library held by JNA, as a change in implementation no longer allowed directly access to the JNA NativeLibrary (JDBC-620)
  • Fixed: When updating a row through an updatable result set, selected but not updated blob fields were set to NULL (JDBC-623)
  • Added: Support for type INT128 (reported as JDBC type NUMERIC) (JDBC-624
    See also Firebird 4 INT128 support.
  • Added: A static utility method FBDriver.normalizeProperties which, given a JDBC url and a Properties object, returns a Map<String, String> containing the merged properties normalized to common property name. (JDBC-627)
    The current implementation normalizes known property names to the long-form isc_dpb name, and removes the database property. These are both implementation details that might change in future versions.
    This feature is also backported to Jaybird 3.0.10.
  • Fixed: Use of isc_dpb_no_db_triggers no longer logs a warning (JDBC-628)
  • Incompatible change: While making changes to time zone support, the API of org.firebirdsql.gds.ng.tz.TimeZoneDatatypeCoder was made almost entirely private. This should not affect normal user code.
    Although we try to avoid these types of incompatible changes in point releases, we explicitly allow them for the org.firebirdsql.gds.ng package and sub-packages.
  • Changed: conversions from TIME WITH TIME ZONE now use 2020-01-01 as base date for named zones (JDBC-629)
    There are some caveats with this conversion, especially between OffsetTime and OffsetDateTime for named zones. For OffsetTime, we will always use the offset as it was on 2020-01-01, while for OffsetDateTime we will first rebase the time in the named zone to the current date, and then derive the offset.
    See also jdp-2020-06 OffsetTime derivation for named zone
  • New feature: Added support for java.time.ZonedDateTime for the WITH TIME ZONE types (JDBC-630)
    To preserve named zones, we have added support for getting and setting both TIME WITH TIME ZONE and TIMESTAMP WITH TIME ZONE as a ZonedDateTime.
    For TIME WITH TIME ZONE, the returned value is rebased on the current date.
  • Fixed: Connection.setNetworkTimeout incorrectly used the provided Executor to set the timeout (JDBC-631)
    This caused a race condition where the timeout was possibly applied too late, and when connection.close() was called immediately after, this could trigger a NullPointerException that would bubble up into the executor.

Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker http://tracker.firebirdsql.org/browse/JDBC.

See also the full Jaybird 4.0.1 release notes.

Maven

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.1.javaXX</version>

* The version depends on your target Java version: 4.0.0.java7, 4.0.0.java8 or 4.0.0.java11.

Assets 5

@mrotteveel mrotteveel released this May 22, 2020 · 451 commits to master since this release

The following has been changed or fixed since Jaybird 3.0.8

  • Fixed: changes to the transaction configuration (transaction parameter buffer configuration) of one connection are no longer propagated to other connections with the same connection properties (JDBC-386)
    This change introduce a binary incompatibility as method setTransactionParameters(int, TransactionParameterBuffer) in FBManagedConnection can now throw ResourceException where previously it did not. Under the assumption that most users of Jaybird are not directly using this class, the change should not break anything.
  • New feature: Firebird 4 data type bind configuration support (JDBC-603)
    This change also removes the timeZoneBind and decfloatBind connection properties introduced in Jaybird 3.0.6 as the corresponding DPB items were removed from Firebird 4. This feature requires Firebird 4 beta 2 or snapshot Firebird 4.0.0.1683 or higher.
    See also Limited support for new Firebird 4 data types.
  • New feature: Jaybird now supports UTF-8 URL encoding for connection properties in the JDBC url. (JDBC-604)
    This introduce a minor incompatibility, see also URL encoding in query part of JDBC URL.
  • Fixed: When updating a row through an updatable result set, selected but not updated blob fields were set to NULL (JDBC-623)

See the full release notes for more information.

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>3.0.9</version>

* The artifactId depends on your target Java version: jaybird-jdk18 for Java 8 and higher, or jaybird-jdk17 for Java 7

Assets 4

@mrotteveel mrotteveel released this Mar 14, 2020 · 80 commits to master since this release

What's new

Jaybird 4.0.0 is the first release of Jaybird 4.

Jaybird 4 is - compared to Jaybird 3 - an incremental release that builds on the foundations of Jaybird 3. The focus of this release has been on further improving JDBC support and adding support for the new data types and features of Firebird 4.

The main new features are:

Upgrading from Jaybird 3 to 4 should be simple, but please make sure to read Compatibility changes before using Jaybird 4. See also Upgrading from Jaybird 3 to Jaybird 4.

Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker http://tracker.firebirdsql.org/browse/JDBC.

See also the full Jaybird 4.0.0 release notes.

Maven

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.0.javaXX</version>

* The version depends on your target Java version: 4.0.0.java7, 4.0.0.java8 or 4.0.0.java11.

Assets 5
Pre-release
Pre-release

@mrotteveel mrotteveel released this Jan 19, 2020 · 96 commits to master since this release

IMPORTANT

This version is provided for testing purposes only. We'd appreciate your feedback, but we'd like to emphasize that this version is not intended for production.

What's new

Jaybird 4 is - compared to Jaybird 3 - an incremental release that builds on the foundations of Jaybird 3. The focus of this release has been on further improving JDBC support and adding support for the new data types and features of Firebird 4.

The main new features are:

Upgrading from Jaybird 3 to 4 should be simple, but please make sure to read Compatibility changes before using Jaybird 4. See also Upgrading from Jaybird 3 to Jaybird 4.

Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker http://tracker.firebirdsql.org/browse/JDBC.

See also the full Jaybird 4.0.0-beta-2 release notes.

Maven

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>4.0.0.javaXX-beta-2</version>

* The version depends on your target Java version: 4.0.0.java7-beta-2, 4.0.0.java8-beta-2 or 4.0.0.java11-beta-2.

Assets 5

@mrotteveel mrotteveel released this Nov 25, 2019 · 451 commits to master since this release

The following has been changed or fixed since Jaybird 3.0.7

  • Fixed: On Firebird 3 and 4 with WireCrypt = Enabled, the connection could hang or throw exceptions like "Unsupported or unexpected operation code". (JDBC-599)

See the full release notes for more information.

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>3.0.8</version>

* The artifactId depends on your target Java version: jaybird-jdk18 for Java 8 and higher, or jaybird-jdk17 for Java 7

Assets 4

@mrotteveel mrotteveel released this Nov 10, 2019 · 451 commits to master since this release

The following has been changed or fixed since Jaybird 3.0.6

  • Fixed: attempts to use a blob after it was freed or after transaction end could throw a NullPointerException or just work depending on whether the connection had a new transaction. (JDBC-587)
  • Fixed: Instances of java.sql.Blob and java.sql.Clob obtained from a result set were freed after calls to ResultSet.next(). (JDBC-588)
  • New feature: added FBEventManager.createFor(Connection) to create an EventManager for an existing connection. Backported from Jaybird 4. (JDBC-594)

See the full release notes for more information.

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>3.0.7</version>

* The artifactId depends on your target Java version: jaybird-jdk18 for Java 8 and higher, or jaybird-jdk17 for Java 7

Assets 4

@mrotteveel mrotteveel released this May 25, 2019 · 451 commits to master since this release

The following has been changed or fixed since Jaybird 3.0.5

  • Fixed: Exceptions during fetch of cached result sets (holdable over commit, scrollable and metadata) prevented prepared statement reuse/re-execute with error "Statement state CURSOR_OPEN only allows next states [CLOSING, PREPARED, ERROR], received EXECUTING" (JDBC-531)
  • Improvement: Added FBManager.setDefaultCharacterSet to set default database character set during database creation (JDBC-541)
  • New feature: Support for Firebird 3 case sensitive user names (JDBC-549)
  • Fixed: Savepoints did not work in connection dialect 1 as savepoint names were always quoted (JDBC-556)
  • Changed: The DatabaseMetaData statement cache introduced in Jaybird 3 was unlimited, it is now limited to 12 prepared statements; the least recently used statement will be closed and removed when a new statement is added (JDBC-557)
  • Fixed: UPDATE OR INSERT with existing RETURNING clause handled incorrectly for generated keys (JDBC-566)
  • Fixed: Exceptions during initialization of result sets would not properly close the database cursor leading to error "Current statement state (CURSOR_OPEN) does not allow call to prepare" on reuse of the statement (or errors similar to described for JDBC-531 above). (JDBC-571)
    A stopgap measure has been added to prevent similar problems from occurring. This will log its use on debug-level with message "ensureClosedCursor has to close a cursor at" and a stacktrace.
  • New feature: boolean connection property ignoreProcedureType to disable usage of metadata for stored procedure types in CallableStatement. When set to true, call escapes and EXECUTE PROCEDURE will default to use EXECUTE PROCEDURE and not switch to SELECT for selectable stored procedures. (JDBC-576)
  • New feature: connection properties timeZoneBind and sessionTimeZone for limited support for Firebird 4 TIME(STAMP) WITH TIME ZONE types, and decfloatBind for limited support for Firebird 4 DECFLOAT types. (JDBC-538)
  • Fixed: Connection property defaultIsolation/isolation did not work through DriverManager, but only on DataSource implementations. (JDBC-584)

See the full release notes for more information.

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>3.0.6</version>

* The artifactId depends on your target Java version: jaybird-jdk18 for Java 8 and higher, or jaybird-jdk17 for Java 7

Assets 4
Pre-release
Pre-release

@mrotteveel mrotteveel released this Apr 27, 2019 · 216 commits to master since this release

IMPORTANT

This version is provided for testing purposes only. We'd appreciate your feedback, but we'd like to emphasize that this version is not intended for production.

What's new

Jaybird 4 is - compared to Jaybird 3 - an incremental release that builds on the foundations of Jaybird 3. The focus of this release has been on further improving JDBC support and adding support for the new data types and features of Firebird 4.

The main new features are:

Upgrading from Jaybird 3 to 4 should be simple, but please make sure to read Compatibility changes before using Jaybird 4. See also Upgrading from Jaybird 3 to Jaybird 4.

Bug reports about undocumented changes in behavior are appreciated. Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker http://tracker.firebirdsql.org/browse/JDBC.

See also the full Jaybird 4.0.0-beta-1 release notes.

Maven

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-XX</artifactId>
<version>4.0.0-beta-1</version>

* The artifactId depends on your target Java version: jaybird-jdk17, jaybird-jdk18 or jaybird-java11.

Assets 5

@mrotteveel mrotteveel released this Apr 6, 2019 · 1280 commits to master since this release

Jaybird 2.2.15 is the final version of Jaybird 2.2.x, we recommend switching to Jaybird 3.

The following has been changed or fixed in Jaybird 2.2.15:

  • Fixed: Exceptions during fetch of cached result sets (holdable over commit, scrollable and metadata) prevented prepared statement reuse/re-execute with error "Attempt to reopen an open cursor" (JDBC-531)
  • Fixed: Jaybird cannot parse Firebird version numbers with revisions (JDBC-534)
  • Fixed: Incorrect parsing of Firebird version numbers (JDBC-535)

See the full release notes for more information.

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.15</version>

* The artifactId depends on your target Java version: jaybird-jdk18, jaybird-jdk17, or jaybird-jdk16.

Assets 5

@mrotteveel mrotteveel released this Sep 7, 2018 · 451 commits to master since this release

The following has been changed or fixed since Jaybird 3.0.4

  • Fixed: FBManager does not accept page size of 32768 (Firebird 4 and higher) (JDBC-468)
  • Fixed: Jaybird cannot parse Firebird version numbers with revisions (JDBC-534)
  • Fixed: Incorrect parsing of Firebird version numbers (JDBC-535)
  • New feature: Added support for the Srp256 authentication plugin (JDBC-536)
  • Fixed: Incorrect warning "Specified statement was not created by this connection" logged for statements that fail with an exception on prepare (JDBC-538)
  • Fixed: Remote close of event channel (eg on Firebird server stop or crash) leads to high CPU usage and excessive error logging as socket channel is not removed from selector (JDBC-542)
  • Fixed: Properties wireCrypt and dbCryptConfig not available on FBEventManager (JDBC-544)
  • Documentation: wire protocol encryption requires unlimited strength Cryptographic Jurisdiction Policy (or equivalent), this was previously not documented (JDBC-545)

See the full release notes for more information.

The release is also available on maven(*):

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>3.0.5</version>

* The artifactId depends on your target Java version: jaybird-jdk18 for Java 8 and higher, or jaybird-jdk17 for Java 7

Assets 4
You can’t perform that action at this time.