apache > db
Apache DB Project
Font size:      

Apache Derby Release


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- [PGP] [MD5]
db-derby- [PGP] [MD5]

db-derby- [PGP] [MD5]
db-derby- [PGP] [MD5]

db-derby- [PGP] [MD5]
db-derby- [PGP] [MD5]

db-derby- [PGP] [MD5]
db-derby- [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

These notes describe the difference between Derby release and the preceding release


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 These issues are not addressed in the preceding, deprecated release. Most significantly, Derby carries the fix to the wrong-results bug which caused the community to abandon DERBY-4331

Issue IdDescription
DERBY-4331Join 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-4312SQLException 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-4306NullPointerException 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-4292creation 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-4270Make 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-4186After master stop, test fails when it succeeds in connecting (rebooting) shut-down ex-slave
DERBY-4185Make timeout settable or increase default for one replication message layer protocol.
DERBY-4175Instability 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-3921Replication: 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 These issues are not addressed in the preceding 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-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


Compared with the previous release (, Derby release 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


Rationale for Change

The change was made to fix a regression introduced in version 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 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


% pgp -ka KEYS
% pgp db-derby-X.Y.tar.gz.asc


% 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.