Release Notes for Derby 10.5.3.0

These notes describe the difference between Derby release 10.5.3.0 and the preceding release 10.5.1.1.

Overview

Derby is a pure Java relational database engine using standard SQL and JDBC as its APIs.

Derby functionality includes:

New Features

This is a bug fix release and also provides localization of new 10.5 messages. No new features were added.

Bug Fixes

The following issues are addressed by Derby release 10.5.3.0. These issues are not addressed in the preceding, deprecated 10.5.2.0 release. Most significantly, Derby 10.5.3.0 carries the fix to the wrong-results bug which caused the community to abandon 10.5.2.0: DERBY-4331

Issue IdDescription
DERBY-4331 Join returns results in wrong order
DERBY-4328The Developer's Guide falsely claims that you can use SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY to change the boot password on an encrypted database.
DERBY-4324The Reference Guide lists wrong lengths for the GRANTOR and GRANTEE columns in SYSCOLPERMS, SYSROUTINEPERMS, and SYSTABLEPERMS.
DERBY-4312 SQLException XJ215 on insert with setCharacterStream() and autocommit off in mailjdbc test
DERBY-4310Closing a prepared statement with an embedded XAConnection can cause the statement to be reprepared and errors related to missing dependencies. This can interfere with network server closeSession()
DERBY-4306 NullPointerException in JMXManagementService.unregisterMBean when running jdbcapi._Suite
DERBY-4305Make changes to test harness class j9_foundation11 to support newer version of IBM's JSR169 implementation
DERBY-4292 creation of FileInputStream in org.apache.derby.impl.tools.ij.Main not wrapped in privilege block which can cause problems running under SecurityManager
DERBY-4246 '.replicationTests.ReplicationRun_Local_3_p5).testReplication_Local_3_p5_DERBY_3878()' fails w/ "Could not perform operation 'stopSlave' because the database '...' has not been booted".
DERBY-4270 Make replication tests save derby.log and database when a failure occurs.
DERBY-4203 (partial) Change mailjdbc system test to be able to restart with the existing database instead of creating a new one so it can be used for upgrade testing
DERBY-4186 After master stop, test fails when it succeeds in connecting (rebooting) shut-down ex-slave
DERBY-4185 Make timeout settable or increase default for one replication message layer protocol.
DERBY-4175 Instability in some replication tests under load, since tests don't wait long enough for final state or anticipate intermediate states
DERBY-4166 (partial) improvements to the mailjdbc test
DERBY-4155jdbcapi/XATest.java doesn't seem to be running anywhere
DERBY-3921 Replication: Test replication of encrypted databases
DERBY-3814failure in testAssertFailureThreadDump with weme 6.1 / JSR 169
DERBY-3710cannot access a database using AES encryption with encryptionKeyLength=192 after it's been shutdown

The following additional issues are addressed by Derby release 10.5.3.0. These issues are not addressed in the preceding 10.5.1.1 release.

Issue IdDescription
DERBY-4287call to System.getProperty in BCClass.java is not wrapped in a priv block so may fail when running under SecurityManager
DERBY-4278Batch inserts with Clobs fails with the embedded driver
DERBY-4276Update demo's to remove references to com.ibm.db2.jcc.DB2Driver
DERBY-4274SYSCS_UPDATE_STATISTICS takes unnecessary table lock
DERBY-4273A lock could not be obtained within the time requested error in testBTreeForwardScan_fetchRows_resumeAfterWait_nonUnique_split
DERBY-4271testBootSameDbDifferentSubSubProtocol(org.apache.derbyTesting.functionTests.tests.memorydb.BasicInMemoryDbTest)java.sql.SQLException: Database 'BSDDSSP' not found.
DERBY-4268"SECURITY" is reserved as SQL keyword.
DERBY-4245Sorting a table containing a CLOB fails after upgrade to 10.5
DERBY-4239corruption with storerecovery oc_rec? tests. ERROR XSLA7: Cannot redo operation null in the log when compress occurs during checkpoint, then jvm exits
DERBY-4232XAResource.setTransactionTimeout() makes XAResource.start() fail with the client driver
DERBY-4230DatabaseMetaData.getColumns() returns extra column from view with group by and expression in SELECT list
DERBY-4229encryptionKeyLength connection attribute should be documented
DERBY-4221Provide message localizations for 10.5
DERBY-4218"Table/View 'MAX_SCAN' does not exist" in org.apache.derbyTesting.functionTests.tests.store.IndexSplitDeadlockTest
DERBY-4212Prepared statement with OFFSET/FETCH gives different results on subsequent execute
DERBY-4206Documentation: Release versions in output need updating
DERBY-4205Developer's Guide: Permissions topic contains wrong info after 10.3
DERBY-4204Runtime statistics not collected on re-execution of statement
DERBY-4198When using the FOR UPDATE OF clause with SUR (Scroll-insensive updatable result sets), the updateRow() method crashes
DERBY-4196Document initiation of replication from cleanly shut down database
DERBY-4193ASSERT FAILED Scan position already saved with multi-threaded insert/update/delete
DERBY-4182SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE does not reclaim space lost from an aborted insert
DERBY-4171Connections to on-disk db go to in-memory db if in-memory db with same name is booted
DERBY-4165Document the effect of shutdown on in progress transactions and open connections.
DERBY-4164Make REVOKE statement description mention what happens for open result sets/cursors
DERBY-4161SQL Roles - Clarify documentation regarding the SET ROLE
DERBY-4154DboPowersTest should not hard upgrade the system/wombat database
DERBY-4142java.lang.VerifyError causing java.sql.SQLException: Cannot create an instance of generated class ... in lang.GeneratedColumnsTest and GeneratedColumnsPermsTest on IBM iseries
DERBY-4133'testTableFunctionInJar' fails w/ 'The class 'DummyVTI' does not exist or is inaccessible...' on jvm1.4
DERBY-4118ComparisonFailure in 'testSysinfo(org.apache.derbyTesting.functionTests.tests.derbynet.SysinfoTest)' on Derby 10.5 / Linux
DERBY-4097'testMixedInsertDelete(org.apache.derbyTesting.functionTests.tests.lang.NullableUniqueConstraintTest)org.apache.derby.client.am.BatchUpdateException'
DERBY-4053Network Server's failure to rollback local transactions on shutdown can cause hang on startup with message java.net.BindException: Address already in use: NET_Bind in derby.log
DERBY-4034Document database name and attribute length and character set limitations for network client
DERBY-4018ArrayIndexOutOfBoundsException in TopService.inService under heavy multithreaded use of EmbeddedDriver
DERBY-4001Sequence comparison with "ALL" does not yield correct results
DERBY-3991Clob.truncate(0) throws exception
DERBY-3926Incorrect ORDER BY caused by index
DERBY-3887Embedded Derby fails under JBoss because of JMX-related conflicts
DERBY-3846The list of supported message libraries looks wrong
DERBY-3737Document the new SignatureChecker lint tool in the Tools Guide
DERBY-3719'...replication.buffer.LogBufferFullException' causes failover to fail w/ 'XRE07, SQLERRMC: Could not perform operation because the database is not in replication master mode.'
DERBY-3669ClientXADataSource fetched from JNDI not identical as originally bound; some properties have String "null" instead of null
DERBY-3598Modify ReleaseNoteGenerator and ChangesGenerator to exclude issues that are fixed in earlier releases
DERBY-3468Example in documentation of ij.exceptionTrace is wrong
DERBY-3417slave side stop in a client server mode results in SQLState printed without proper error message
DERBY-3296Importing to table in default schema fails when another table with the same name exists in a different schema
DERBY-2821emphasize that derby encryption only supports NoPadding option
DERBY-2447ejbql and floattypes in org.apache.derbyTesting.functionTests.tests.lang.LangScripts intermittently fails with 'expected:<[0.0 ] > but was:<[-0.0] '
DERBY-2074NullPointerException when two threads load sort factory concurrently
DERBY-1923XML operators - Xalan requirement
DERBY-1209It would be good to add an example to the SYSCS_UTIL.SYSCS_CHECK_TABLE documentation for how to check all tables

Issues

Compared with the previous release (10.5.1.1), Derby release 10.5.3.0 introduces the following new features and incompatibilities. These merit your special attention.


Note for DERBY-4230

Summary of Change

In order to see the fix for DERBY-4230 for a view created with a previous release, users must drop and recreate the view.

Symptoms Seen by Applications Affected by Change

DERBY-4230 fixed an issue where an extra column might appear in DatabaseMetaData.getColumns() for a view that uses a group by and an expression in the select list. The problem occurred during create view with the old release. After updating your derby jars to a release that has the fix, if you still see the behavior, you will need to drop and recreate the view to get the fix.

Incompatibilities with Previous Release

none

Rationale for Change

The change was made to fix a regression introduced in version 10.3.1.4 by DERBY-681.

Application Changes Required

Users must drop an recreate affected views to see the fix for DERBY-4230.


Note for DERBY-3991

Summary of Change

Clob.truncate now presents a more specific error message for a negative length.

Symptoms Seen by Applications Affected by Change

Specifying a negative length will raise an SQLException with a different state;

Incompatibilities with Previous Release

Applications catching a specific exception based on SQLState may behave differently. The incompatibility can only be seen if the application calls Clob.truncate with a negative length using the embedded driver.

Rationale for Change

The embedded driver was changed to be consistent with the client driver for the error message raised when invoking Clob.truncate with a negative length.

Application Changes Required

Look for SQLState XJ071 instead of XJ070 when Clob.truncate is called to catch invocations specifying a negative length.

Build Environment

Derby release 10.5.3.0 was built using the following environment: