Apache Derby 10.5.3.0 Release
Distributions
Use the links below to download a distribution of Apache Derby. You should always verify the integrity of distribution files downloaded from a mirror.
There are four different distributions:
- bin distribution - contains the documentation, javadoc, and jar files for Derby.
- lib distribution - contains only the jar files for Derby.
- lib-debug distribution - contains jar files for Derby with source line numbers.
- src distribution - contains the Derby source tree at the point which the binaries were built.
db-derby-10.5.3.0-bin.zip [PGP] [MD5]
db-derby-10.5.3.0-bin.tar.gz [PGP] [MD5]
db-derby-10.5.3.0-lib.zip [PGP] [MD5]
db-derby-10.5.3.0-lib.tar.gz [PGP] [MD5]
db-derby-10.5.3.0-lib-debug.zip [PGP] [MD5]
db-derby-10.5.3.0-lib-debug.tar.gz [PGP] [MD5]
db-derby-10.5.3.0-src.zip [PGP] [MD5]
db-derby-10.5.3.0-src.tar.gz [PGP] [MD5] (Note that, due to long filenames, you will need gnu tar to unravel this tarball.)
There are two separate Eclipse plugins for Derby:
- derby_core_plugin - provides the Derby jar files to other plugins in Eclipse.
- derby_ui_plugin - provides an Apache Derby Nature in Eclipse for easy database application development.
derby_core_plugin_10.5.3.zip [PGP] [MD5]
derby_ui_doc_plugin_1.1.2.zip [PGP] [MD5]
Please note: both plugins must be installed for full functionality. For information on installing and using the Derby plugins for Eclipse, please see the Using the 10 Core and 1.1 UI Derby plug-ins page.
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:
- Embedded engine with JDBC drivers
- Network Server
- Network client JDBC drivers
- Command line tools: ij (SQL scripting), dblook (schema dump) and sysinfo (system info)
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 Id | Description |
DERBY-4331 | Join returns results in wrong order |
DERBY-4328 | The 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-4324 | The 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-4310 | Closing 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-4305 | Make 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-4155 | jdbcapi/XATest.java doesn't seem to be running anywhere |
DERBY-3921 | Replication: Test replication of encrypted databases |
DERBY-3814 | failure in testAssertFailureThreadDump with weme 6.1 / JSR 169 |
DERBY-3710 | cannot 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 Id | Description |
DERBY-4287 | call to System.getProperty in BCClass.java is not wrapped in a priv block so may fail when running under SecurityManager |
DERBY-4278 | Batch inserts with Clobs fails with the embedded driver |
DERBY-4276 | Update demo's to remove references to com.ibm.db2.jcc.DB2Driver |
DERBY-4274 | SYSCS_UPDATE_STATISTICS takes unnecessary table lock |
DERBY-4273 | A lock could not be obtained within the time requested error in testBTreeForwardScan_fetchRows_resumeAfterWait_nonUnique_split |
DERBY-4271 | testBootSameDbDifferentSubSubProtocol(org.apache.derbyTesting.functionTests.tests.memorydb.BasicInMemoryDbTest)java.sql.SQLException: Database 'BSDDSSP' not found. |
DERBY-4268 | "SECURITY" is reserved as SQL keyword. |
DERBY-4245 | Sorting a table containing a CLOB fails after upgrade to 10.5 |
DERBY-4239 | corruption with storerecovery oc_rec? tests. ERROR XSLA7: Cannot redo operation null in the log when compress occurs during checkpoint, then jvm exits |
DERBY-4232 | XAResource.setTransactionTimeout() makes XAResource.start() fail with the client driver |
DERBY-4230 | DatabaseMetaData.getColumns() returns extra column from view with group by and expression in SELECT list |
DERBY-4229 | encryptionKeyLength connection attribute should be documented |
DERBY-4221 | Provide message localizations for 10.5 |
DERBY-4218 | "Table/View 'MAX_SCAN' does not exist" in org.apache.derbyTesting.functionTests.tests.store.IndexSplitDeadlockTest |
DERBY-4212 | Prepared statement with OFFSET/FETCH gives different results on subsequent execute |
DERBY-4206 | Documentation: Release versions in output need updating |
DERBY-4205 | Developer's Guide: Permissions topic contains wrong info after 10.3 |
DERBY-4204 | Runtime statistics not collected on re-execution of statement |
DERBY-4198 | When using the FOR UPDATE OF clause with SUR (Scroll-insensive updatable result sets), the updateRow() method crashes |
DERBY-4196 | Document initiation of replication from cleanly shut down database |
DERBY-4193 | ASSERT FAILED Scan position already saved with multi-threaded insert/update/delete |
DERBY-4182 | SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE does not reclaim space lost from an aborted insert |
DERBY-4171 | Connections to on-disk db go to in-memory db if in-memory db with same name is booted |
DERBY-4165 | Document the effect of shutdown on in progress transactions and open connections. |
DERBY-4164 | Make REVOKE statement description mention what happens for open result sets/cursors |
DERBY-4161 | SQL Roles - Clarify documentation regarding the SET ROLE |
DERBY-4154 | DboPowersTest should not hard upgrade the system/wombat database |
DERBY-4142 | java.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-4118 | ComparisonFailure 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-4053 | Network 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-4034 | Document database name and attribute length and character set limitations for network client |
DERBY-4018 | ArrayIndexOutOfBoundsException in TopService.inService under heavy multithreaded use of EmbeddedDriver |
DERBY-4001 | Sequence comparison with "ALL" does not yield correct results |
DERBY-3991 | Clob.truncate(0) throws exception |
DERBY-3926 | Incorrect ORDER BY caused by index |
DERBY-3887 | Embedded Derby fails under JBoss because of JMX-related conflicts |
DERBY-3846 | The list of supported message libraries looks wrong |
DERBY-3737 | Document 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-3669 | ClientXADataSource fetched from JNDI not identical as originally bound; some properties have String "null" instead of null |
DERBY-3598 | Modify ReleaseNoteGenerator and ChangesGenerator to exclude issues that are fixed in earlier releases |
DERBY-3468 | Example in documentation of ij.exceptionTrace is wrong |
DERBY-3417 | slave side stop in a client server mode results in SQLState printed without proper error message |
DERBY-3296 | Importing to table in default schema fails when another table with the same name exists in a different schema |
DERBY-2821 | emphasize that derby encryption only supports NoPadding option |
DERBY-2447 | ejbql and floattypes in org.apache.derbyTesting.functionTests.tests.lang.LangScripts intermittently fails with 'expected:<0.0 > but was:<-0.0 ' |
DERBY-2074 | NullPointerException when two threads load sort factory concurrently |
DERBY-1923 | XML operators - Xalan requirement |
DERBY-1209 | It 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: In order to see the fix for DERBY-4230 for a view created with a previous release, users must drop and recreate the view.
-
Note for DERBY-3991: Clob.truncate now presents a more specific error message for a negative length.
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;
- Now: XJ071: Negative length argument '-2' passed in a BLOB or CLOB method.
- Before: XJ070: Negative or zero position argument '-2' passed in a Blob or Clob method.
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:
- Branch - Source code came from the 10.5 branch.
- Machine - Mac OS X 10.5.7 on Macbook Pro 3,1.
- Ant - Apache Ant version 1.7.1 compiled on June 27 2008
- J2ME/JSR 169 - Sun's phoneME Advanced MR2
- JDK 1.4 - Apple's Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_21-b01-324)
- Java 5 - Apple's Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-304)
- Java 6 - Apple's Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211)
- Compiler - The Apple Java 5 compiler was used to compile all classes. Platform-specific code was compiled against the corresponding platform libraries listed above.
Verifying releases
It is essential that you verify the integrity of the downloaded files using the PGP and MD5 signatures. MD5 verification ensures the file was not corrupted during the download process. PGP verification ensures that the file came from a certain person.
The PGP signatures can be verified using PGP or GPG. First download the Apache Derby KEYS as well as the asc signature file for the particular distribution. It is important that you get these files from the ultimate trusted source - the main ASF distribution site, rather than from a mirror. Then verify the signatures using ...
% pgpk -a KEYS % pgpv db-derby-X.Y.tar.gz.asc or % pgp -ka KEYS % pgp db-derby-X.Y.tar.gz.asc or % gpg --import KEYS % gpg --verify db-derby-X.Y.tar.gz.asc
To verify the MD5 signature on the files, you need to use a program called md5 or md5sum, which is included in many unix distributions. It is also available as part of GNU Textutils. Windows users can get binary md5 programs from here, here, or here.
We strongly recommend you verify your downloads with both PGP and MD5.