These notes describe the difference between Derby release 10.3.0.0 and the preceding release 10.2.2.0.
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)
This is a minor release. The following new features were added:
The following issues are addressed by Derby release 10.3.0.0. These issues are not addressed in the preceding 10.2.2.0 release.
Issue Id Description DERBY-2684 NSinSameJVM regression test failure, "> FAIL: Should have gotten exception" DERBY-2673 If derby.system.home does not exist Derby should only attempt to create that specific folder, not any missing parents (ie. use File.mkdir(), not File.mkdirs()) DERBY-2671 Errors/messages early in starting the network server through NetworkServerControl.start() are not reported to the PrintWriter passed into start(). DERBY-2662 DITA error in adminguide/cadminservlet98430.dita DERBY-2644 multiple junit failures during nightly of the form: 2) Encryption Algorithm: defaultjava.security.AccessControlException: Access denied (java.util.PropertyPermission derby.system.home read) DERBY-2633 Authorization error codes have been moved. Translated messages must be moved accordingly. DERBY-2631 Expose existing auto-generated key functionality through more JDBC APIs in embedded mode. DERBY-2613 upgrade test problem when attempting to test 10.0.2.1 - DERBY-2610 Queries in metadata.properties allow tablepattern for JDBC methods that do not allow patterns DERBY-2608 Compilation Error of manual in Apache FOP DERBY-2606 Derby should print the parameters to failed statements to the derby.log when it logs the error DERBY-2605 You can create BOOLEAN columns in 10.3 DERBY-2603 Minor erratum in page of VARCHAR in Derby Reference manual DERBY-2600 Remove temporary code added to enable testing of CLOB locator related stored procedures. DERBY-2598 new upgrade test failures after change 528033 DERBY-2597 Language result sets should not reuse current isolation level across executions DERBY-2594 Revoking a privilege from an SQL Object should invalidate statements dependent on that object DERBY-2591 DataDictionaryImpl.getSystemSQLName() may generate duplicates DERBY-2586 BlobClob4BlobTest.tesPositionAgressive takes very long time DERBY-2584 Creating a database with JPOX SchemaTool sometimes gives ArrayIndexOutOfBoundsException when getIndexInfo() is called DERBY-2583 At code generation time, look at collation type to determine what kind of DVD should get generated for character types. DERBY-2581 Callers of SanityManager.THROWASSERT should chain the exceptions when possible DERBY-2580 SanityManager.THROWASSERT(String,Throwable) ignores message argument DERBY-2579 AssertFailure class should use JDK's built-in chaining of exceptions DERBY-2578 Change CurrentDatetimeOperatorNode to use ExpressionClassBuilder to generate code for DVD rather than going directly though TypeCompiler DERBY-2566 OutOfMemory/Sanity-assert failed when updating database DERBY-2565 BrokeredConnection needs to forward implementations of locator related methods in EngineConnection to the underlying physical connection DERBY-2558 client trhows ArrayIndexOutOfBounds exception instead of parameter out of range DERBY-2556 Code paths for db restore do not use doPrivileged-calls, causing SecurityException DERBY-2551 Global Xid value garbled in syscs_diag.transaction_table. DERBY-2549 ArrayIndexOutOfBoundsException in SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE DERBY-2540 Restructure code for Blob/Clob length in client to prepare for locator implementation DERBY-2538 Update documentation to describe the expected behavior when a JDBC 4 app creates a JDBC 3 datasource. DERBY-2521 Building derby outputs (from ant) various information messages that are marked as warning severity. DERBY-2511 reference manual's description of JDBC4 features has misleading sections DERBY-2506 Adding the locator information to FD:OCA descriptor (FDODSC) andFD:OCA data (FDODTA) of the SQLDTA objects DERBY-2501 Batch scripts in bin\ report extraneous errors when DERBY_HOME is invalid DERBY-2500 Assertion failure preparing query with AND and OR in where clause DERBY-2495 Create framework for calling locator related stored procedures from client DERBY-2493 Use unsynchronized collections in BackingStoreHashtable DERBY-2489 Document the policy-reloading system procedure. DERBY-2488 When loaded by jvm1.6 - EmbeddedConnectionPoolDataSource is not returning a JDBC 4 compliant PooledConnection object DERBY-2480 DriverManager.getConnection leaks memory when connecting to a non-existent database DERBY-2473 Compilation of reference manual translated into pt_BR seems to be failed DERBY-2466 Allow dynamic reloading of the security policy file DERBY-2462 org.apache.derby.impl.store.access.BackingStoreHashTableFromScan does not honor ResultSet holdability DERBY-2456 File stream is left open when an exception occurs while setting up a character stream for data export. DERBY-2450 Clob.Position returning wrong value when operating on Reader DERBY-2444 Implement not implemented methods Blob.getBinaryStream(long pos, long length) and Clob. getCharacterStream(long pos, long length) in the Network Client DERBY-2435 network server boot fails indicating authentication must be set up even when authentication is fully defined in derby.properties DERBY-2431 Documentation for DatabaseMetaData should reflect that getColumnPrivileges and getTablePrivileges are implemented DERBY-2430 setObject(int targetType, Blob source) and setObject(int targetType, Clob source) should disallow updates on all targetTypes except BLOB and CLOB respectively DERBY-2425 ResultSetMetaData.getColumnDisplaySize() returns a negative value for BLOB columns for client DERBY-2406 XAResource.end does not set the XA transaction state correctly when the XAException is thrown DERBY-2400 Javadoc - clean up Cloudscape references in javadoc DERBY-2391 "Derby and standards" section of Developer's Guide needs reorganization DERBY-2387 DOCs - Reorder the topics in the Ref Manual into Alphabetical order - functions, procedures DERBY-2386 timestampdiff function fails when using SQL_TSI_FRAC_SECOND for datepart parameter, except for very small intervals DERBY-2383 ReuseFactory should use the constants in java.lang.Boolean DERBY-2381 ParameterMappingTest fails due to ArrayIndexOutOfBoundsException executing a procedure DERBY-2376 Patch available to make .classpath entries portable - relative to ECLIPSE_HOME DERBY-2372 Document the secure-by-default network server DERBY-2371 Setting a default value for a VARCHAR column fails when column contains data DERBY-2370 EXISTS may return the wrong value for sub-queries involving set operations DERBY-2369 NetworkServerControl.shutdown() takes at least 1.5 seconds, could be faster. DERBY-2365 Brushing up pages for MAX and MIN in Derby Reference Manual DERBY-2361 Documentation should give examples for using the different security mechanisms DERBY-2356 Make SSL server authentication optional DERBY-2355 Wrong URL in Eclipse-Plugin Lab Example Jays.java DERBY-2347 Add code to support request and return of locators over DRDA DERBY-2345 truncate on a Blob does not work when the Blob is in memory DERBY-2342 convert importExport.java to junit DERBY-2341 derby.language.statementCacheSize is ignored when it is set as a database property. DERBY-2339 org.apache.derbyTesting.functionTests.suites.All is extremely CPU intensive since ~svn 507489 DERBY-2336 Enable collation based ordering for CHAR data type. DERBY-2328 Reduce monitor contention in SinglePool DERBY-2327 Reduce monitor contention in LockSet DERBY-2323 Update Graphic in Dev Guide - Embedded deployment application overview DERBY-2301 Documentation of different executeBatch error handling between embedded and DerbyNetClient needed DERBY-2296 getProperties method deprecated on ClientDataSource DERBY-2281 Update the Tuning Guide figure about using the statement cache DERBY-2279 JDBC3 driver is loaded instead of JDBC4 when running with jdk1.7 DERBY-2275 XSLT changes for PDF output DERBY-2263 Update the copyright dita files to mark Derby logo images as non-substantive images (for accessibility) DERBY-2262 DatabaseMetaData.getTypeInfo returns incorrect MAXIMUM_SCALE value for DECIMAL and NUMERIC types DERBY-2260 DatabaseMetaData.getTypeInfo() returns incorrect precision for VARCHAR FOR BIT DATA DERBY-2259 DatabaseMetaData.getTypeInfo() SEARCHABLE column returns incorrect information for types that cannot be searched. DERBY-2258 DatabaseMetaData.getTypeInfo() does not list supported Derby SQL types correctly. DERBY-2257 Implementing the stored procedures called by the LOB related JDBC methods DERBY-2256 Wrong Results: Use of decimal values in an IN-list with INTEGER left operand can lead to extra rows. DERBY-2244 DatabaseMetaData.supportsExpressionsInOrderBy() returns false DERBY-2243 DatabaseMetaData.supportsANSI92EntryLevelSQL() returns false for embedded, true for client driver DERBY-2237 Cleanup copyrights in the DITA source and generated docs DERBY-2228 Support Derby on J2ME/CDC/Foundation 1.1 DERBY-2226 Move column bitset computation to IndexToBaseRowNode DERBY-2223 Let BasePage.fetchFieldFromSlot use the special single-col FetchDescriptor ctor DERBY-2222 'show indexes in SCHEMANAME' does not work with the client driver DERBY-2220 Uncommitted transactions executed throught XAResource will held locks after the application terminates (or crashes during the transaction). DERBY-2218 Null Pointer Exception when an untyped NULL subquery ("values null") appears outside of the FROM list in a SELECT query. DERBY-2217 Convert upgrade tests to Junit DERBY-2216 Allow demo SimpleApp to work in J2ME environment DERBY-2214 Fix Getting Started file to reflect classpath change DERBY-2208 setNetworkServerCP scripts need not add derby.jar into the CLASSPATH DERBY-2202 DROP PROCEDURE depends on SET SCHEMA DERBY-2195 Nested triggers not working properly after maximum trigger count exception is thrown DERBY-2194 A few more problems with Working with Derby manual DERBY-2193 [import] ERROR 38000: StringIndexOutOfBoundsException was thrown while evaluating an expression. DERBY-2191 Cleanup of FormatableBitSet DERBY-2183 Trigger recompilation problem when trigger action has its table not qualified with a schema DERBY-2166 Implement proper handling of SocketTimeoutException in DRDAConnThread DERBY-2152 Support diagnostic vti tables that take parameters, such as SpaceTable DERBY-2150 Reduce use of synchronized collections in GenericLanguageConnectionContext DERBY-2149 Replace Vectors and Hashtables with ArrayLists and HashMaps in RAMTransaction DERBY-2147 LIKE predicate does not accept a pure column reference as righthand operand (gives ERROR 42824) DERBY-2141 BlobClob4BlobTest.testPositionBlob() fails with NullPointerException DERBY-2138 Remove DataDictionaryContext and associated code DERBY-2137 CALL (PROCEDURE) statement documentation in reference manual has incomplete syntax for arguments DERBY-2135 add comment to messages.xml to ensure translations are kept in sync or removed when adding/removing parameters DERBY-2123 Remove workaround for old JIT bug from StoredPage DERBY-2122 Optimize ContainerLock.isCompatible() DERBY-2121 Remove JDK 1.3 build dependency in network server DERBY-2114 Let Clock embed a HashMap rather than inherit from Hashtable DERBY-2112 Nullpointer on executeBatchRequestX when preparedStatement has no parameters DERBY-2108 Implement SSL/TLS communication between client and server DERBY-2107 Move page latching out of the lock manager DERBY-2103 After a Lexical Error due to syntax error , even a simple create table does not work on the same connection. DERBY-2099 Make BasePage.getPageId() final DERBY-2096 Change the Parser.parserStatement() to return the more specific StatementNode instead of QueryTreeNode. DERBY-2093 Error in initSlotTable() can cause NPE or ASSERT rather than reporting page number in corrupt page message. DERBY-2088 Update the documentation templates. Add comment about changing the reference ID DERBY-2083 Shutting down a database loaded from a jar leaves an open file reference to the jar file containing the database. DERBY-2067 Assert failure in EmbedConnection.restoreContextStack() when running lang/closed.java DERBY-2060 SET CURRENT ISOLATION in ref.man refers java.sql.Connection.setTransactionLevel instead of java.sql.Connection.setTransactionIsolation DERBY-2057 SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE documentation or implementation error on its arguments. DERBY-2053 Dev Guide: Syntax errors in SQL tips -> Tricks of the VALUES clause -> Multiple rows DERBY-2050 Manipulating CachedItems could be more efficient DERBY-2046 Make class org.apache.derby.iapi.store.raw.PageKey final DERBY-2042 Provide documentation for new RENAME COLUMN statement DERBY-2025 convert lang/updatableResultSet.java to Junit DERBY-2022 jdbcapi.LobStreamsTest runs only in client (not embedded) but its suite() method gives no reason why. DERBY-2019 IJ's describe command does not handle quotes very well DERBY-2018 NullPointerException in CREATE VIEW ... VALUES NULL; DERBY-2001 Add DITA templates for the 3 topic types into the trunk DERBY-1995 Add base schema scripts for order entry DERBY-1993 Check in the demo used by the Java in the Database session at Apachecon 2006 DERBY-1985 Use Calendar.setTimeInMillis(long) instead of Calendar.setTime(Date) for performance. DERBY-1983 Change build system so that base level is JDK 1.4 DERBY-1979 convert jdbcapi/characterStreams.java to Junit DERBY-1975 SQLAuthorizationPropTest cannot be run twice against the same database. DERBY-1965 NetworkServerControlImpl never closes the socket or streams it opens in setUpSocket. DERBY-1959 10.2 'Derby Developer's Guide' error/ambiguity. DERBY-1956 Remove stale code from the statement classes in the client driver DERBY-1955 Unquoted path in .bat files may cause errors (Win) DERBY-1953 Make FOR EACH clause and MODE DB2SQL in CREATE TRIGGER statement optional DERBY-1949 locate function documentation should clarify behavior when first parameter is empty string DERBY-1947 OutOfMemoryError after repeated calls to boot and shutdown a database DERBY-1935 Reference Manual - Derby Limitations DERBY-1934 Reference Manual updates - J2EE Compliance: Java Transaction API and javax.sql Extensions DERBY-1930 Move JDBC implementation notes into the published javadoc DERBY-1929 SYSTABLEPERMS and SYSCOLPERMS documentation needs to be updated DERBY-1928 Update table "Support for SQL-92 Features: Basic schema manipulation" for GRANT/REVOKE DERBY-1926 Provide documentation for ALTER TABLE DROP COLUMN DERBY-1922 readme.html under frameworks does not mention about Derby client and some minor typos in example.html DERBY-1920 DOCS - Improve topic titles for vague and duplicate topics DERBY-1919 Top level index.html page should link to release notes and other items in top-level of a release. DERBY-1918 INCREMENT of IDENTITY column described as allowing a value of zero in reference manual DERBY-1917 Clob.position fails with Embedded driver and large Clobs DERBY-1909 ALTER TABLE DROP COLUMN needs to update GRANTed column privileges DERBY-1895 Convert jdbcapi/blobclob4BLOB.java to Junit DERBY-1890 improve XSDFI error message DERBY-1879 Save meta data related information for an EmbedResultSet at the plan level instead of the ResultSet level improves performance. DERBY-1868 Merge argument descriptors into SQLState strings so that SQLState documentation can be generated by a program DERBY-1861 Column ordering ASSERT when combining column references and expressions in same ORDER BY DERBY-1852 Wrong results: duplicate rows returned for nested UNIONs when they should be eliminated. DERBY-1847 SELECT statement asserts with XJ001 when attempted to select a newly added column in SQL authorization mode DERBY-1828 Access rule violations should use a SQL state starting with '42' according to the SQL standard. DERBY-1822 LOCK TABLE example and description in reference manual should get replaced by a 'real' example DERBY-1816 Client's ResultSet.getTime() on a SQL TIMESTAMP column loses the sub-second resolution and always has a milli-second value of zero. DERBY-1805 Links to element ids inside a topic are broken in PDFs and HTML Books DERBY-1795 Graphics not copied over for PDF and HTML-single manuals DERBY-1765 Update ALTER TABLE documentation to reflect DERBY-119 (ALTER COLUMN [NOT]NULL) DERBY-1753 Doc for SYSCS_INPLACE_COMPRESS_TABLE has incorrect procedure name in the java examples. DERBY-1752 Fix javadoc to account for changes required by new licence header policy. DERBY-1709 Deprecate scripts in frameworks directory DERBY-1704 Allow more concurrency in the lock manager DERBY-1673 Compling with jikes not longer works due to recent changes that added -target -source command line flags to each compile DERBY-1665 Incorrect JavaDoc for Qualifier interface DERBY-1662 Document derbyrun.jar DERBY-1644 NPE when inserting values to a table that has a column declared as generated by default as identity DERBY-1624 use of direct column name rather than alias make aggregation fail (Hibernate depends on that) DERBY-1590 Consolidate the *conrefs.dita files in the documentation source tree to a single file. DERBY-1589 CREATE TABLE throws NullPointerException in Derby SQL Standard Authorization after DROPs and REVOKES DERBY-1588 Link "Getting Started...." and "Apache Derby Server ...." in demo.html needs to be linked to actual documents instead of manuals page DERBY-1570 The derby configuration, logging and diagnostic properties such as derby.language.logStatementText are hard to find in the documentation DERBY-1535 Trial 2 for DERBY-550, improve use of Engine from NetworkServer and reduce memory usage DERBY-1526 build should be able to locate the Java runtime libraries from properties not sourced from ${user.home}, but inside the current subversion checkout. DERBY-1520 Document new SYSCS_DIAG tables DERBY-1501 PreparedStatement#setNull(int parameterIndex, int sqlType) throws SQL Exception if given sqlType is LONGVARBINARY in embedded mode DERBY-1494 PreparedStatement.setNull(int, int) checks type compatibility on embedded, but not on the client DERBY-1490 Provide ALTER TABLE RENAME COLUMN functionality DERBY-1489 Provide ALTER TABLE DROP COLUMN functionality DERBY-1484 Client and embedded behave differently when the table name is null in DatabaseMetaData methods DERBY-1434 Client can send incorrect database name to server after having made multiple connections to different databases. DERBY-1275 Provide a way to enable client tracing without changing the application DERBY-1132 Truncation Error with Concat DERBY-1054 Starting Derby with the NetServlet inside of tomcat does not allow binding to non localhost interface. DERBY-931 Until DERBY-911 gets fixed, document the difference in behavior between Nework Client Driver and Embedded Driver for setReadOnly
Compared with the previous release (10.2.2.0), Derby release 10.3.0.0 introduces the following new features and incompatibilities. These merit your special attention.
- Note for DERBY-2610: ???
- Note for DERBY-2386: ???
- Note for DERBY-2296: ClientDataSource now supports the createDatabase and shutdownDatabase properties.
- Note for DERBY-2108: ???
- Note for DERBY-1852: ???
- Note for DERBY-1828: Most authorization failures have new error codes.
- Note for DERBY-1501: ???
- Note for DERBY-1484: The table name can no longer be a pattern in calls to DatabaseMetaData methods getBestRowIdentifier, getColumnPrivileges, getIndexInfo, getVersionColumns, getPrimaryKeys, getImportedKeys and getExportedKeys.
- Note for DERBY-729: ???
- Note for DERBY-415: Sysinfo now presents separate command switches to check the classpath for the presence of the Derby client and the DB2 JCC driver.
- Note for DERBY-119: The ALTER TABLE statement now includes the additional ability to alter the NULL / NOT NULL constraint on a column in a table.
Note for DERBY-2610
Note for DERBY-2386
Note for DERBY-2296
Summary of Change
ClientDataSource now supports the createDatabase and shutdownDatabase properties.
Symptoms Seen by Applications Affected by Change
The functionality is new for ClientDataSources. Previously, applications could not call these methods. Now these methods work:
- setCreateDatabase (String)
- getCreateDatabase()
- setShutdownDatabase (String)
- getShutdownDatabase()
These methods should behave similarly to the ones in Embedded, i.e. only valid value for setCreateDatabase is "create", and for setShutdownDatabase is "shutdown". In essence, at connection time, if set to a valid value, the property is passed on to the server side with the ConnectionAttributes.
Note, that the result for setting contradicting properties for createDatabase and ShutdownDatabase, whether through setCreateDatabase("create") and setShutdownDatabase("shutdown") or via setConnectionAttributes("create=true") or ("shutdown=true") is undefined.Incompatibilities with Previous Release
No incompatibilities were introduced.
Rationale for Change
With version 10.2.1.6 an incompatibility with 10.1.1.0 was introduced - since revision 393003, the undocumented, non-standard but previously public method, getProperties for Client DataSources was removed for security reasons. This left only the setConnectionAttributes method available for creating or shutting down a database, and caused hardship for applications that had previously taken advantage of the getProperties method. For instance, in Geronimo the getProperties method was previously used to inquire and set whether a create=true was set for a database.
Support for the four methods already existing for EmbeddedDataSource was requested for ClientDataSource to compensate for the disappearance of getProperties as a public method.Application Changes Required
Application code will need to be adjusted if they want to take advantage of these new methods for ClientDataSources.
Note for DERBY-2108
Note for DERBY-1852
Note for DERBY-1828
Summary of Change
Most authorization failures have new error codes.
Symptoms Seen by Applications Affected by Change
In the previous release, authorization failures had error codes 2850x and 04501. In this release, most of these errors have new error codes. The code changes are: 04501, 2850H, 2850I and 2850J are now 08004. 28506-2850G are now 42500-4250A, 28501 is now 4250B, 28503-28505 are now 4250C-4250E. Only the error codes have been changed; error messages are not affected.
Incompatibilities with Previous Release
Applications that are dependant on authorization error codes may fail.
Rationale for Change
The old error codes violated the SQL standard. The new error codes are correct.
Application Changes Required
Applications that are dependant on authorization error codes must be recoded to expect the new codes.
Note for DERBY-1501
Note for DERBY-1484
Summary of Change
The table name can no longer be a pattern in calls to DatabaseMetaData methods getBestRowIdentifier, getColumnPrivileges, getIndexInfo, getVersionColumns, getPrimaryKeys, getImportedKeys and getExportedKeys.
Symptoms Seen by Applications Affected by Change
In the previous release, the methods returned information on all tables that matched the pattern in the schema. A table name value of null was treated as a wildcard. Table names now have to match what is stored in the database. Furthermore, Derby now raises an SQLException if the table name is null.
Incompatibilities with Previous Release
Calls to the specified methods now fail if the table name parameter is null (SQLException is thrown) or is a pattern (no information is returned).
Rationale for Change
The previous behavior violated the JDBC standard. The new behavior is correct.
Application Changes Required
Users must recode applications to specify the table names. When information on multiple tables is required, the application first has to get the table names, e.g. by using the DatabaseMetaData method getTables(), and then use the returned table names as input to the method in question.
Note for DERBY-729
Note for DERBY-415
Summary of Change
Sysinfo now presents separate command switches to check the classpath for the presence of the Derby client and the DB2 JCC driver.
Symptoms Seen by Applications Affected by Change
Previously, if you ran "java org.apache.derby.tools.sysinfo -cp client SimpleApp.class" you got a message indicating that the DB2 JCC driver was not found in your classpath, even though you had the Derby Client library in your classpath. Now "-cp client" only checks for the presence of the Derby client. To check for the presence of the DB2 JCC driver jar, you can pass the new "-cp db2driver" argument.
Incompatibilities with Previous Release
To check for the presence of the DB2 JCC driver, you must use the new "-cp db2driver" argument.
Rationale for Change
The behavior has changed in order to eliminate a confusing diagnostic message.
Application Changes Required
Users who want to check for the presence of the DB2 JCC driver will need to use the new command switch.
Note for DERBY-119
Summary of Change
The ALTER TABLE statement now includes the additional ability to alter the NULL / NOT NULL constraint on a column in a table.
Symptoms Seen by Applications Affected by Change
The syntax is:
ALTER TABLE table ALTER [COLUMN] column [NOT] NULLYou cannot remove the NOT NULL constraint if the column is used in a PRIMARY KEY or UNIQUE constraint.
In addition, you cannot add the NOT NULL constraint if there are existing NULL values for the column in the table.
Rationale for Change
Users have requested this feature and other databases support it.
Derby release 10.3.0.0 was built using the following environment:
- Branch - Source code came from the 10.3 branch.
- Machine - Cygwin on Microsoft Windows XP Professional Version 2002 Service Pack 2.
- Ant - Apache Ant version 1.6.5 compiled on June 2 2005.
- JDK 1.4 - Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_12-b03).
- Java 6 - Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-b105).
- OSGi - The osgi.jar was used to build org.apache.derby.osgi.EmbeddedActivator.
- Compiler - The 1.4.2_12-b03 javac was used to compile all classes except for the JDBC4 drivers. The JDBC4 driver classes were compiled using the 1.6.0-b105 javac.
- JSR 169 - J2ME support was built using java.sun.com/j2me (j2me_cdc_fp-1_0_2).