We are happy to announce the release of Jaybird 5.0.2.
The following has been fixed since Jaybird 5.0.1:
Fixed: Reconnect transaction with a transaction id exceeding 0x7FFF_FFFF did not work (jaybird#734)
New feature: add connection property parallelWorkers to set Firebird 5.0 isc_dpb_parallel_workers (jaybird#737)
New feature: add MaintenanceManager.upgradeOds() for the Firebird 5.0 gfix/service repair action to perform a minor ODS upgrade of a database (jaybird#738)
New feature: add parallel workers support for BackupManager (jaybird#739)
New feature: add parallel workers support for sweep in MaintenanceManager (jaybird#740)
Fixed: DatabaseConnectionProperties.setServerBatchBufferSize(int) ignored provided value and always set default (0, or “use server-side maximum”) (jaybird#741)
New feature: add MaintenanceManager.fixIcu() for the Firebird 3.0 gfix/service repair action “ICU” to update or rebuild collations and indexes when the ICU version changed (jaybird#744)
Fixed: The first call to getTableStatistics() of a FBTableStatisticsManager instance returned only a few or even no tables; if no tables were returned, subsequent calls would also return no tables (jaybird#747)
Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17 and 20 (support for Java 11 and higher using the Java 11 version of the driver).
Jaybird 5 is – from a JDBC perspective – an incremental change from Jaybird 4. However, internally, Jaybird underwent some major changes, the biggest was the removal of JCA (Java Connector Architecture) support.
The major changes and new features in Jaybird 5 are:
The following has been changed or fixed since Jaybird 4.0.7:
Improvement: Backported new generated keys parser from Jaybird 5 to remove dependency on ANTLR (jaybird#718) With this change, Jaybird no longer relies on antlr-runtime-4.7.2.jar, if you don’t need it yourself, you can remove this library from the classpath. See New parser for generated keys handling for more information.
Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 17 and 19 using the Java 11 version of the driver).
The following has been changed or fixed since Jaybird 4.0.6:
Improvement: (VAR)CHAR is now sent to the server with blr_varying2 or blr_text2 which includes the character set information (jaybird#692)
Changed: Usages of String.toUpperCase and String.toLowerCase now use Locale.ROOT to prevent locale-sensitivity issues (jaybird#697)
New feature: Support for NBackup “clean history” option (jaybird#706) The org.firebirdsql.management.NBackupManager interface has three new methods: setCleanHistory(boolean) to enable (or disable) cleaning of history during backup, and setKeepDays(int) and setKeepRows(int) to specify the number of days or rows to keep history. These options require Firebird 4.0.3 or higher. This feature was backported from Jaybird 5.
Fixed: Calling PreparedStatement.setClob or PreparedStatement.setBlob with a null Clob, Reader, Blob, or InputStream would result in a NullPointerException (jaybird#712) As part of this change the behaviour of setClob methods accepting a Reader was changed to be identical to setCharacterStream, and setBlob accepting an InputStream to setBinaryStream. The end result before and after this change is identical, but it can result in different memory and performance characteristics, as the stream is now consumed on execute, and not on set.
Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 17 and using the Java 11 version of the driver).
The following has been changed or fixed since Jaybird 4.0.5:
Improvement: Connection.isValid(int) now uses the timeout as a network timeout, if possible (jaybird#685) This is only supported for pure Java connections. For native connections, the timeout is ignored (and a SQLWarning is registered).
NativeResourceUnloadWebListener would fail in Servlet containers with a NoClassDefFoundError if JNA wasn’t on the classpath (jaybird#686)
Fixed: Calling isBeforeFirst(), isAfterLast(), isFirst(), or isLast() on a closed result set resulted in a NullPointerException instead of a SQLException (jaybird#689)
Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11 and 17 (support for Java 17 using the Java 11 version of the driver).