Contact Us | Site Map
Firebird is used by approximately 1 million of software developers worldwide. High compatibility with industry standards on many fronts makes Firebird the obvious choice for developing interoperable applications for homogeneous and hybrid environments.
Join Firebird!
Join Firebird Foundation to support Firebird SQL development and receive multiple bonuses
Follow Us
Select your media preference
Google+ Twitter Facebook RSS
Newsletter
Subscribe to Firebird’s Newsletter to receive the latest news
Status Page

V.2.2.4 Release

Jaybird 2.2.4 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.

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.

V.2.2.3 Release

Jaybird 2.2.3 release contains the following fixes:

  • Fixed incorrect synchronization in native and embedded protocol (JNI) implementation for iscBlobInfo and iscSeekBlob (JDBC-300)

WARNING: Although Jaybird strives for correct synchronization, a JDBC Connection, and its dependent objects should be used from a single Thread at a time, sharing on multiple threads concurrently is not advisable. 

  • 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)

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.

V.2.2.2 Release

Jaybird 2.2.2 release contains the following fixes:
  • 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)
  • 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)
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.

V.2.2.1 Release

Jaybird 2.2.1 release contains the following fixes:
  • Fixed: UnsatisfiedLinkError in libjaybird22(_x64).so undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE on Linux (JDBC-259)
  • Added connection property columnLabelForName for backwards compatible behavior of ResultSetMetaData#getColumnName(int) and compatibility with bug in com.sun.rowset.CachedRowSetImpl (JDBC-260)
Set property to true for backwards compatible behavior (getColumnName() returns the column label); don't set the property or set it to false for JDBC-compliant behavior (recommended).
  • Fixed: setString(column, null) on “? IS (NOT) NULL” condition does not set parameter to NULL (JDBC-264)
  • The charSet connection property now accepts all aliases of the supported Java character sets (eg instead of only Cp1252 now windows-1252 is also accepted) (JDBC-267)
  • Fixed: values of charSet property are case-sensitive (JDBC-268)
  • Fixed: setting a parameter as NULL with the native protocol does not work when Firebird describes the parameter as not nullable (JDBC-271)
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.1</version>

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

V.2.2.0 Release


Jaybird 2.2.0 release contains the following changes:
  • Enhanced support for JDBC 4.0 (Java 6)
  • Support for JDBC 4.1 (Java 7) — including try-with-resources support,
  • Implementation of getGeneratedKeys(),
  • Enhanced support for the services API,
  • Support for 64 bit native libraries for Type 2 / Embedded,
  • A number of bug fixes.
The release is also available on maven(*):
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.0</version>

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

V.2.1.6 Release (Critical)

Jaybird 2.1.6 released, with the following fixes:

  • JDBC-97: Blob.getBytes() method should not allow position below 1 — not critical 
  • JDBC-108: Problems with record resultset to call primary composite — critical 
  • JDBC-119: updateRow() primary key violation issue — critical 
  • JDBC-118: Remote PID and process name for FB 2.1 monitoring tables — not critical

Due to critical fixes in JDBC-108 and JDBC-119, everybody using Jaybird versions between 2.1.2 and 2.1.5 is advised to upgrade to this new version to avoid data corruption when doing updates via ResultSet.updateRow() when the table has a composite primary key. Cases where table's primary key has only one column or there is no primary key at all are not affected.

Comments to JDBC-118:

The only platform independent solution turns out to be via the -D property, therefore two new properties are implemented: org.firebirdsql.jdbc.pid and org.firebirdsql.jdbc.processName. If they are specified, values are passed to Firebird 2.1. Also one can use "normal" properties passed via URL or data source configuration. In this case, the property names are process_id and process_name.

With versions of Firebird prior to Fb 2.1, using these properties will cause an exception while connecting to Firebird. A more intelligent solution will be implemented in Jaybird 2.2.
Home About Firebird Documentation Downloads Community Support Development Case Studies Back to Top
This site and the pages contained within are Copyright © 2000-2014, Firebird Project. Firebird® is a registered trademark of Firebird Foundation Incorporated. Developed by DQ Team.