Jaybird 4.0.0-beta-1 available for testing

The first beta for Jaybird 4 is available for testing.

We’d really appreciate it if you take the time to test this version of Jaybird with your applications. 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.

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:

  • Wire encryption support (backported to Jaybird 3.0.4)
  • Database encryption support (backported to Jaybird 3.0.4)
  • Authentication plugin improvements
  • Firebird 4 DECFLOAT support
  • Firebird 4 extended numeric precision support
  • Firebird 4 time zone support
  • JDBC RowId support
  • JDBC DatabaseMetaData.getPseudoColumns implemented
  • JDBC DatabaseMetaData.getVersionColumns implemented
  • Improved JDBC function escape support
  • New JDBC protocol prefix jdbc:firebird:
  • Generated keys support improvements

Jaybird 4.0.0-beta-1 is for testing purposes only, and not intended for production use.

See also:

Jaybird 3.0.5 has been released.

The Firebird JDBC team is happy to announce the release of Jaybird 3.0.5.

This release is largely a bugfix release, but contains additional support for Firebird 3.0.4 and Firebird 4.

Jaybird 3.0.5 contains the following fixes and changes:

  • 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 Jaybird 3.0.5 release notes for more information. Jaybird 3.0.5 can be downloaded from the JDBC Driver page.

Jaybird 2.2.4 released

The Firebird JDBC team is happy to announce the release of Jaybird 2.2.4.

This release contains the following fixes:

  • Fixed: Exceptions during statement preparation leave connection and transaction open after explicit close (JDBC-311)
  • Fixed batch update (or insert) with blob set through setBinaryStream() sets empty blob for all but the first batch entry (JDBC-312)
  • Fixed incomplete checks of database, transaction, statement and blob handle validity before continuing with actions. These incomplete checks could lead to unexpected exceptions (for example a NullPointerException in iscDatabaseInfo) (JDBC-313)
  • Fixed error when setting connection charset equal to "file.encoding" java property (JDBC-314)
  • Fixed connection character set not correctly set when specifying the Java connection characterset (charSet or localEncoding property)  (JDBC-315)
  • Fixed incorrect lengths and/or radix reported by getTypeInfo and getColumns metadata (JDBC-317, JDBC-318)
  • Initial Java 8 / JDBC 4.2 support (JDBC-319)
  • Firebird 3 BOOLEAN type support, see Support for Firebird 3 BOOLEAN type in the release notes for more details (JDBC-321)
  • Added fallback of loading GDSFactoryPlugin implementations to prevent NullPointerException in Hibernate reverse engineering wizard in NetBeans (JDBC-325)
  • Fixed: Jaybird should specify dialect 3 in dpb when no explicit dialect was set (JDBC-327)
  • Fixed: several DatabaseMetaData methods defined by JDBC to only accept the actual table name also accepted a LIKE-pattern or empty string or null. This was changed to conform to JDBC. This change can break applications that relied on the incorrect behavior (JDBC-331)
    Affected methods are: getPrimaryKeys, getBestRowIdentifier, getImportedKeys, getExportedKeys and getCrossReference. As part of this change getIndexInfo now handles names in the wrong case slightly different.
    Jaybird 3.0 will further modify and restrict the pattern matching and case sensitivity of metadata methods. See Future changes to Jaybird in the release notes for more details.

Downloads available from JDBC driver section on the Firebird website.

The release is also available on maven(*):

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

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

New snapshot of Jaybird 2.2.4 with support for: Firebird 3.0 Boolean and Java 8

Mark Rottevee announced new snapshot of Jaybird driver :
I have just uploaded a new snapshot version for Jaybird 2.2.4 to
sourceforge and the sonatype snapshots repository for Maven.

Most notable changes are support for the Firebird 3.0 alpha 1 BOOLEAN
type and support for Java 8. For other changes see
http://tracker.firebirdsql.org/browse/JDBC/fixforversion/10531

This snapshot is intended only for testing purposes and has not been
tested with the native or embedded subprotocols.

Download area (Java 5, 6, 7 and 8):
https://sourceforge.net/projects/firebird/files/firebird-jca-jdbc-driver/2.2.4-SNAPSHOT/

Maven snapshot repository:
https://oss.sonatype.org/content/repositories/snapshots/

groupId: org.firebirdsql.jdbc
artifactId: jaybird-jdk1x (where x = 5, 6, 7 or 8)
version: 2.2.4-SNAPSHOT

If you have any problems, let me know in the Firebird-Java list. Bugs
can be reported in the tracker http://tracker.firebirdsql.org/browse/JDBC

Jaybird 2.2.3 (Firebird JDBC) released

The Firebird JDBC team is happy to announce the release of Jaybird 2.2.3.

See http://www.firebirdsql.org/en/jdbc-driver/ for the downloadlinks.

The release is also available on maven:
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.3</version>

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

The following has been changed or fixed in Jaybird 2.2.3:

  • Fixed incorrect synchronization in native and embedded protocol (JNI) implementation for iscBlobInfo and iscSeekBlob (JDBC-300)
  • Fixed holdable ResultSet is closed on auto-commit (JDBC-304, JDBC-305)
  • Fixed table names missing or padded with spaces in Database view of IntelliJ IDEA (JDBC-308, IDEA-100786)
  • Fixed incorrect JDBC minor version reported under Java 7; this resulted in an incorrect column name (for Java 7) in the metadata of DatabaseMetaData.getColumns(…) (JDBC-309)
  • Added IOException to cause of GDSException with error 335544721; “Unable to complete network request to host “”” for further investigation (JDBC-306)

More details are available in the Jaybird 2.2.3 releasenotes.

Jaybird 2.2.2 Released

The Firebird JDBC team is happy to announce the release of Jaybird 2.2.2.

See http://www.firebirdsql.org/en/jdbc-driver/ for the downloadlinks.

The release is also available on maven:
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.2</version>

The artifactId depends on your target Java version: jaybird-jdk15,
jaybird-jdk16 or jaybird-jdk17

The following has been changed or fixed in Jaybird 2.2.2:

  • Fixed: FBMaintenanceManager.listLimboTransactions() reports incorrect transaction id when the result contains multi-site transactions in limbo (JDBC-266)
  • Fixed: Calling PreparedStatement.setClob(int, Clob) with a non-Firebird Clob (eg like Hibernate does) or calling PreparedStatement.setClob(int, Reader) throws FBSQLException: “You can’t start before the beginning of the blob” (JDBC-281)
  • Fixed: Connection property types not properly processed from isc_dpb_types.properties (JDBC-284)
  • Fixed: JNI implementation of parameter buffer writes incorrect integers (JDBC-285, JDBC-286)
  • Changed: Throw SQLException when calling execute, executeQuery, executeUpdate and addBatch methods accepting a query string on a PreparedStatement or CallableStatement as required by JDBC 4.0 (JDBC-288)
    NOTE: Be aware that this change can break existing code if you depended on the old, non-standard behavior! With addBatch(String) the old behavior lead to a memory leak and unexpected results.
  • Fixed: LIKE escape character JDBC escape ({escape ‘<char>’}) doesn’t work (JDBC-290)
  • Added: Support for a connect timeout using connection property connectTimeout. This property can be specified in the JDBC URL or Properties object or on the DataSource. If the connectTimeout property is not specified, the general DriverManager property loginTimeout is used. The value is the timeout in seconds. (JDBC-295)
    For the Java wire protocol the connect timeout will detect unreachable hosts. In the JNI implementation (native protocol) the connect timeout works as the DPB item isc_dpb_connect_timeout which only works after connecting to the server for the op_accept phase of the protocol. This means that – for the native protocol – the connect timeout will not detect unreachable hosts within the timeout. As that might be unexpected, an SQLWarning is added to the connection if the property is specified with the native protocol.
  • As part of the connect timeout change, hostname handling (if the hostname is an IP-address) in the Java wire protocol was changed. This should not have an impact in recent Java versions, but on older Java versions (Java 5 up to update 5) this might result in a delay in connecting using an IP-address, if that address can’t be reverse-resolved to a hostname. Workaround is to add an entry for that IP-address to the /etc/hosts or %WINDIR%\System32\Drivers\etc\hosts file.
1 2 3 4 5