## IBM Toolbox for Java - JTOpen version

    Copyright (C) 1997-2008 International Business Machines Corporation and
    others. All rights reserved.

    File: CHANGES
    Last updated: April 25, 2008

    The term "JTOpen" refers to the open source software product
    "IBM Toolbox for Java" (formerly "AS/400 Toolbox for Java") plus any additional
    enhancements provided by the open source community. JTOpen, which is supported
    by IBM and governed by the IBM Public License, as well as its Java source code,
    is contained in the open source repository located off of:
    http://jt400.sourceforge.net/.

    The terms "Toolbox" and "Toolbox LPP" refer to the IBM Licensed Program
    Product "IBM Toolbox for Java" (formerly "AS/400 Toolbox for Java") which is
    supported by IBM and can be obtained from the IBM Toolbox for Java web site:
    http://www.ibm.com/systems/i/software/toolbox/.

### Contents

Fixes and enhancements in JTOpen 6.2
Fixes and enhancements in JTOpen 6.1
Fixes and enhancements in JTOpen 6.0
Fixes and enhancements in JTOpen 5.4
Fixes and enhancements in JTOpen 5.3
Fixes and enhancements in JTOpen 5.2
Fixes and enhancements in JTOpen 5.1.1
Fixes and enhancements in JTOpen 5.1
Fixes and enhancements in JTOpen 5.0
Fixes and enhancements in JTOpen 4.9
Fixes and enhancements in JTOpen 4.8
Fixes and enhancements in JTOpen 4.7
Fixes and enhancements in JTOpen 4.6
Fixes and enhancements in JTOpen 4.5.1
Fixes and enhancements in JTOpen 4.5
Fixes and enhancements in JTOpen 4.4
Fixes and enhancements in JTOpen 4.3.1
Fixes and enhancements in JTOpen 4.3
Fixes and enhancements in JTOpen 4.2
Fixes and enhancements in JTOpen 4.1
Fixes and enhancements in JTOpen 4.0

### Fixes and enhancements in JTOpen 6.2 (released 2008-04-30)

    - Various: Javadoc updates.
    - Various: Corrected EventSetDescriptor argument, to eliminate IntrospectionException on some JVMs.
    - Build: Fix for JTOpen bug 1924271: In build.xml, specify encoding for javac calls.
    - Build: Removed JDBC version designation.
    - Command call: When running programs/commands natively, set secondary language directory to match client locale.
    - Connection pool: Check for connection expiration when connection returned to pool.
    - Connection pool: Use SoftReference to eliminate circular reference and potential memory leak.
    - Connection pool: Added diagnostic trace for when an active but expired JDBC connection is closed.
    - Connection: Added null pointer check in AS400.getJobs().
    - Connection: Corrected misspelled constant name.
    - Connection: Use socket timeout when connecting if running in Java 1.4 or higher.
    - Data area: Added methods to read/write unconverted bytes.
    - Data conversion: Added setters and getters for numeral shaping, bidi expand alef.
    - Data conversion: Eliminated possible ArrayIndexOutOfBoundsException in ConvTableReader.fillCache(), for example when incorrect data CCSID is specified.
    - Data conversion: Made the Mlog class non-public.
    - IFS: Modifications for IFSFile.clearCachedAttributes() to clear all cached attributes.
    - IFS: Enable operation on files larger than 2GB: IFSFileOutputStreamImplRemote.write(), IFSRandomAccessFile.seek().
    - IFS: Updates to IFSFile.java and IFSJavaFile.java for symbolic link objects.
    - JDBC: Add text "Connection.rollback()" to "autocommit exception" property description.
    - JDBC: Add text "rollback" to "autocommit exception" property description and javadoc.
    - JDBC: AS400JDBCDriver: Added JDBC version indicator.
    - JDBC: Auto-commit property.
    - JDBC: Beginning with Version 6 Release 1 of i5/OS, you must have *JOBCTL special authority for setQueryTimeout().
    - JDBC: Change to not use sql package cache if the statement contains a lob since it could be a lob or lob locator on other connections.
    - JDBC: Close statements to avoid statement leak.
    - JDBC: Fix error when Statement.setMaxRows(count) is same number of rows in a resultset.
    - JDBC: Fix for setCharacterStream to take into account multi-byte chars.
    - JDBC: Fix for time when hour is 24 and minute is not 00.
    - JDBC: Fix to signal truncation of data in CCSID 5035.
    - JDBC: Get timeout property from DriverManager.getLoginTimeout.
    - JDBC: Implementation of Decfloat SNaN.
    - JDBC: Login timeout added to DriverManager properties.
    - JDBC: Login timeout in milliseconds.
    - JDBC: Make the 'autocommit exception' property effective for rollback.
    - JDBC: XA Connection fixed to close cursor after commit.
    - JDBC: Starting in V6R1, user must have *JOBCTL special authority to use query storage limit.
    - JDBC: Starting in JDK 1.5, for numeric and decimal column types, exploit BigDecimal.toPlainString().
    - NetServer: Fix for IseriesNetServer.java for authority check IOSYSCFG to include groups that a user belongs to.
    - Permission: Changes due to regression test. Permission.java
    - Permission: Updates to process QSYS IASP objects: Permission, PermissionAccessQSYS, and QSYSObjectPathName.
    - Print: Fix for JTOpen bug 1551918: PrintObjectList: openSynchronously() twice.
    - RLA: Fix for JTOpen bug 1847680: Introspection of Record fails due to bad RecordBeanInfo.java. Original problem reported in JTOpen bug 1779593: Correct EventSet for VetoablePropertyChange.
    - Trace: Added tracing of connection ID.
    - Trace: Added tracing of load source.
    - Trace: Fix for JTOpen bug 1889391: Synchronized access to static variable SimpleDateFormat.
    - Trace: Limit redundant checks for multiple Toolbox versions.
    - Utilities: AboutToolbox: Added check for supported JDBC version.

### Fixes and enhancements in JTOpen 6.1 (released 2008-01-04)

    - Various:  Javadoc updates.
    - AS400:  Eliminate swallowed NullPointerException.
    - AS400:  If no Properties class found, trace a Diagnostic instead of a Warning.
    - Command call:  Add support to follow proxy command chain. Exploit PTF if V5R4.
    - IFS:  Correctly recognize QSYS objects, particularly PRTF objects.
    - IFS:  Eliminate double close requests from finalizer.
    - JDBC:  Add check for closed resultset when checking holdability.
    - JDBC:  Client Functional Level update.
    - JDBC:  Fix for cursor holdability of stored procedures.
    - JDBC:  Fix timestamp so that 24:00 on day n does not advance to 24:00 on day n+1.
    - JDBC:  Fix to ignore some warnings when sqlState starts with 00 or 02.
    - JDBC:  Get scroll type from cursor attrs if exist.
    - JDBC:  Match Native driver truncation on future releases when PreparedStatement.setString() is used.
    - JDBC:  Method JDLobLocator.free() not supported on V5R4 or earlier releases of System i.
    - JDBC:  NVARCHAR length fix.
    - JDBC:  Return "NCHAR"  and "NVARCHAR" from getTypeName() for CCSIDs 13488 and 1200.
    - JDBC:  Return first occurrence of column when calling ResultSet.findColumn(String) when there are more than one column with same name.
    - JDBC:  Update getDatabaseMajorVersion and getDatabaseMinorVersion to reflect actual versions from host server.
    - JDBC:  isReadOnly method fix.
    - JDBC:  Fix for non-capitalized schema names in getProcedureColumns method.
    - JDBC:  Fix storesMixedCaseQuotedIdentifiers method to return false.
    - JDBC:  Do not re-use stale variables in reply datastream objects.
    - PCML:  Fix for JTOpen bug 1778759 - set the global isXPCML variable.
    - Permissions:  Permissions.commit() sensitivity of DLO object.
    - Print:  Add additional supported CPI values to SCS5553Writer.
    - RLA:  Add Note to readNextEqual() methods regarding locking.
    - RLA:  Change to ignore *NONE keys in addKeyFieldDescription().
    - RLA:  Corrected field length calculation for DBCS VARCHAR and VARGRAPHIC fields.
    - RLA:  Fix for JTOpen bug 1796143 - Writing to a multiple format file fails.
    - System pool:  Improve handling of shared pools.
    - Vaccess: Deprecated last remaining un-deprecated class in package com.ibm.as400.vaccess: AS400JDBCDataSourcePane.

### Fixes and enhancements in JTOpen 6.0 (released 2007-08-20)

    - Connection Pool:  Added a check to verify connection is not in use when checking the max lifetime and removing a connection from the pool.
    - Data Area:  Fix for JTOpen bug 1737692 - allow users to write data containing single-quote characters.
    - Data Conversion:  Updated various converter tables.
    - FTP:  Add support for EPSV and EPRT.
    - IFS:  Updated getCanonicalPath() to remove '.' and '..' from paths.
    - IFS:  Updated listObjectAttrs() to see if a file handle has already been opened.
    - IFS:  Replaced get32bit() call which was treating 4-byte byte stream fields as signed with BinaryConverter methods.
    - IFS:  Changes to IFSFile.enumerateFiles() to better handle when objects are filtered.
    - IFS:  Updated to search by restart name if accessing QSYS.LIB in an IASP.
    - JarMaker:  Updated AS400ToolboxJarMaker to extend ToolboxJarMaker.
    - JDBC:  Added various getters/setters to AS400JDBCDataSource to match URL style properties.
    - JDBC:  Added getServerJobIdentifier() to JDConnectionProxy.
    - JDBC:  Return names in DatabaseMetaData.getPrimaryKeys() instead of null.
    - JDBC:  Added new class AS400JDBCStatementListener.
    - JDBC:  Fix error when Double value is infinity and getFloat(x) is called.
    - JDBC:  Updated read/write flag for DataTruncation warnings and exceptions.
    - JDBC:  Updated DataSource getUser() method to retrieve user from AS400 object.
    - JDBC:  Added check for closed cursor in absolute method.
    - JDBC:  Updated setPoolable() method name in JDStatementProxy.
    - JDBC:  Allow delimited libraries in library list.
    - JDBC:  Updated DatabaseMetaData.getProcedures() to return correct procedure name.
    - JDBC:  Allow rollback to throw XAException on a non-zero return code.
    - JDBC:  Added "variable field compression" connection property.
    - JDBC:  Added statement listener support.
    - JDBC:  Throw exception on Connection.commit() if auto-commit is enabled.
    - JDBC:  Fix performace related bug that caused ResultSet not to close after cursor was implicitly closed.
    - JDBC:  Use SQLState instead of SQLCode for flag of errors/warnings.
    - JDBC:  Retrieve cursor attributes from a stored procedure.
    - JobList:  Fix for JTOpen Bug 1728765 - allow more than one value for the selection criteriat that are suppose to allow multiple values.
    - JobLog:  Added the ability to retrieve all attributes for a message.
    - JobLog:  Updated javadoc to list attributes that can be accessed for a QueuedMessage object.
    - ObjectDescription:  Modified exists() method to handle CPF9811 message.
    - ObjectList:  Fix for JTOpen Bug 1725312 - fix to allocate correct storage amount for getObjects().
    - ObjectList:  Updated javadoc for getObject() to indicate that the listOffset parameter may be greater than "or equal to" zero.
    - ObjectList:  Updated addObjectAuthorityCritiria() to enforce documented interface restrictions.
    - QueuedMessage:  Added the ability to retrieve all attributes for a Job Log message.
    - SystemPool:  Added the ability to set the "system-related pool identifier".
    - SystemStatus:  Added the ability to set the "system-related pool identifier".
    - Trace:  Fix to ensure tracing is off if a category is not set.

### Fixes and enhancements in JTOpen 5.4 (released 2007-04-18)

    - Various:  Updated iSeries and server references in comments, text.
    - Various:  Javadoc updates.
    - Connection: Support new messages from sign-on server.
    - Connection: Added additional change password return codes.
    - Data Conversion:  Fix array out of bounds error so we throw SQLException back with single character input.
    - File:  Fixed record cache so that positionCursor() works regardless of the blocking factor.
    - IFS:  Updatated javadoc for list, listFiles and enumerateFiles methods.
    - IFS:  Updated to throw an exception if access is denied to a directory and to search by restart name if accessing QSYS.LIB in an IASP.
    - JDBC:  Added Close on EOF support.
    - JDBC:  Added support for setting client information.
    - JDBC:  Added support to turn on/off database host server tracing.
    - JDBC:  Allow sort=job to not throw exception, but use default.
    - JDBC:  Added stored procedure support for getIndexInfo.
    - JDBC:  Added support for stored procedure result sets date and time format.
    - JDBC:  ResultSet.getRow() fix to return correct number after inserting new rows.
    - JDBC:  Updated data truncation exception support.
    - JDBC:  Strip out comments in statements greater than 2M in V5R4.
    - JDBC:  Added query storage limit connection property.
    - NetServer:  Fix to createPrintShare().
    - NetServer:  Fixed bug in parameter validation in setTextConversionEnablement()
    - ObjectDescription:  Added support to list objects in an auxiliary storage pool (ASP) and to get the object descriptions.
    - ObjectDescription:  Added support for returning the asp device name on the path.
    - ObjectList:  Added support to list objects in an auxiliary storage pool (ASP) and to get the object descriptions.
    - Permissions:  Updated setDataAuthority() for *AUTL.
    - Permissions:  Changes to allow DLOPermission to work with the QDLS root folder.
    - Print:  Retrieving invalid spooled file attributes.
    - Product:  Changes so that when running natively user space will use sockets instead of native method calls.
    - PTF:  Changes so that when running natively user space will use sockets instead of native method calls.
    - QSYSObjectPathName:  Fix parsing of eszett and other 1 to N uppercasing characters.
    - SaveFile:  Changes so that when running natively user space will use sockets instead of native method calls.
    - Security: Support new messages from sign-on server.
    - Security: Added additional change password return codes.
    - SpooledFile:  Retrieving invalid spooled file attributes.
    - UserSpace:  Changes so that when running natively user space will use sockets instead of native method calls to avoid error indicating that JT4PTF and JT4USRSPC user space could not be found.

### Fixes and enhancements in JTOpen 5.3 (released 2006-12-18)

    - Various:  Updated iSeries and server references in comments, text.
    - Various:  Javadoc updates.
    - Build:  Fixed various build warnings for JDK 1.5.
    - Connection:  Allow GSS credential to change.
    - Data Area: Provide more useful exception information, especially when PCML source document not found.
    - IFS:  Fixed bug that made IFSFile.setCCSID() a no-op.
    - JDBC:  Only send/update sort sequence if not set to default (hex).
    - JDBC:  Added query storage limit support.
    - JDBC:  Fixed JTOpen 1292204 - Garbage Collector impacts JDBC connection pool activity.
    - JDBC:  Added default column value support.
    - JDBC:  Updated max columns in group by support.
    - JDBC:  Updated query optimize goal documentation.
    - JDBC:  Fixed batch update support to use the correct information in a BatchUpdateException.
    - JDBC:  Various performance improvements.
    - JDBC:  Fix to allow a forward-only sensitive cursor.
    - NetServer:  Corrected behavior of getTextConversionEnablement()
    - PCML:  Provide more useful exception information, especially when PCML source document not found.
    - Program Call:  Provide more useful exception information, especially when PCML source document not found.
    - System Resource:  Provide more useful exception information, especially when PCML source document not found.
    - UDFS:  Added new classes IFSIoctlRep, IFSIoctlReq, and UDFS for user-defined file system support.

### Fixes and enhancements in JTOpen 5.2 (released 2006-08-28)

    - Various:  Updated iSeries and server references in comments, text.
    - Various:  Updated javadoc and property descriptions.
    - Build:  Updated for new cvs server access.
    - Build:  Updated for changes to the J2ME Toolkit.
    - Data conversion:  Enhanced trace messages.
    - Data conversion:  Fixed recently introduced inconsistency with java.io.Reader.
    - IFS:  Added new classes ErrnoException, FileAttributes, and ObjectReferences.
    - IFS:  Eliminated compareTo(Object) method for JDK 1.5 compatibility.
    - IFS:  Better handling of 'access denied errors.
    - IFS:  Fixed JTOpen bug 1481835: Tolerate zero-length writes and reads.
    - JDBC:  Fixed 'thread used' property to propagate it to AS400 object.
    - JDBC:  Various performance changes.
    - JDBC:  Updated client functional level.
    - JDBC:  Added 'metadata source' connection property.
    - JDBC:  Fix so convertFromRawBytes() is not called unexpectedly when using addBatch() with CallableStatement objects.
    - JDBC:  Fixed bug in USA time format.
    - JDBC:  Added clonable support to AS400JDBCDataSource.
    - JDBC:  Various tracing improvements.
    - JDBC:  Changes to not block data if a sensitive cursor is being used.
    - JDBC:  Close generated keys result set if Statement.close() is closed or if the statement is re-executed.
    - Object description:  Fixed bug where Boolean attributes are sometimes reported as Strings.
    - Object description:  Fix ClassCastException retrieving SAVE_SIZE.
    - Open list:  Renamed 'enum' variable.
    - PCML:  Removed performance bottleneck by un-synchronizing a method.
    - PCML:  Close opened streams in 'finally' clause.
    - PCML:  Allow leftmost bit to be on for byte field init values.
    - PCML:  Improved error messages.
    - Print:  CPU performance fix due to recursive paint events in SpooledFileViewer.
    - RFML:  Close opened streams in 'finally' clause.
    - PTFGroup:  Updated for Native support.
    - System value:  Various updates.
    - Trace:  Updated for JDK 1.5 misbehavior in LogManager.getLogger().

### Fixes and enhancements in JTOpen 5.1.1 (released 2006-04-26)

    - System pool:  Fixed incorrect ObjectDoesNotExistException from SystemPool objects generated from SystemStatus.
    - Trace:  Added milliseconds to timestamps.

### Fixes and enhancements in JTOpen 5.1 (released 2006-04-19)

    - Various:  Updated javadoc and code comments.
    - Connection:  Avoided potential StringIndexOutOfBoundsException in trace.
    - Connection:  Added new properties to prevent use of current user and Unix domain sockets.
    - Connection:  Improved warning messages.
    - Connection Pool:  Fixed JTOpen Bug 1459369:  Added support to terminate maintenance thread when pool is closed.
    - Data conversion:  Enhanced bidi support.
    - FTP:  Added support so FTP datastreams use CRLF.
    - IFS:  Added new IFSFile methods:  setSorted() and getOwnerName().
    - IFS:  Un-deprecated classes IFSTextFileInputStream and IFSTextFileOutputStream.
    - IFS:  Added support for files larger than 4 gigabytes.  This support is only available when running to the i5/OS release after V5R4.
    - JarMaker:  Deprecated class AS400ToolboxJarMaker; replaced by ToolboxJarMaker.
    - JDBC:  Added new classes AS400JDBCManagedConnectionPoolDataSource and AS400JDBCManagedDataSource.
    - JDBC:  Added self-managed pooling JDBC datasource.
    - JDBC:  Added new AS400JDBCDataSource method:  setProperties().
    - JDBC:  Added new 'translate boolean' connection property.
    - JDBC:  Various performance updates when searching for a field by field name.
    - JDBC:  Reset auto commit and the isolation level to the auto commit and isolation level being used before xa_start after xa_end is called.
    - JDBC:  Fix to calculate length correctly for a double-byte clob locator.
    - Object description:  Return LAST_USED_DATE as a Date type.
    - Program call:  Fix for JTOpen bug 1426019:  Document library list behavior.
    - RFML:  Added 'keyfield' attribute to RFML data element.
    - System pool:  Added additional properties.
    - System status:  Added additional properties.
    - Trace:  Do not map THREAD category to a Java logging level.

### Fixes and enhancements in JTOpen 5.0 (released 2006-01-16)

    - Various: Eliminated potential NullPointerExceptions.
    - Build: Include the AboutToolbox class in the native JAR.
    - Data conversioon:  Updated mappings for certain characters.
    - JDBC:  Added delimited name support.
    - JDBC:  Added 'XA loosely coupled support', 'keepAlive', 'sendBufferSize', and 'receiveBufferSize' connection properties.
    - JDBC:  Eliminated possible hang in AS400JDBCConnection.cancel().
    - JDBC:  Updated DatabaseMetaData.getMaxTablesInSelect() to return correct value by release.
    - JDBC:  Added support for ALIAS table types.
    - Job:  Eliminated possible division-by-zero error.
    - RFML:  Eliminated possible division-by-zero error.

### Fixes and enhancements in JTOpen 4.9 (released 2005-10-28)

    - Various: J2SE 5.0 compatibility: Added append() method, required by Appendable; renamed variables named 'enum'.
    - Various: Updated javadoc and code comments.
    - Build: Removed Unix domain sockets from jt400.jar
    - Build: Removed flawed check in build.xml for existence of 'cvs.exe'.
    - Connection: Fixed JTOpen bug 1224014: PasswordExpirationDate inexact when NOMAX.
    - Data conversion: Add Euro and Circled R.
    - Data queue: Fixed garbage in sender information.
    - FTP: Eliminated hang in get() if file member not found.
    - IFS: Fixed 'File In Use' error from IFSFileReader and IFSFileWriter.
    - IFS: Handle reading more that 16 megabytes of data.
    - JDBC: Accept 'Character' instance as argument to PreparedStatement.setObject() when setting CHAR column.
    - JDBC: Added 'char' to list returned by DatabaseMetaData.getStringFunctions().
    - JDBC: Added support in AS400JDBCInputStream for mark/reset.
    - JDBC: Avoid possible deadlock in AS400JDBCConnectionHandle.finalizer().
    - JDBC: Check for null column descriptors in ResultSetMetaData.
    - JDBC: Improved handling of delimited names.
    - JDBC: Improved handling of return codes 438 and 443 from stored procedures.
    - JDBC: Added 'ALIAS' to reported list of supported table type.
    - JarMaker: Updated dependency list for 'IFS' component.
    - JobList: Fixed JobList sort list field lengths.
    - Message queue: Fixed divide by zero when list empty.
    - Message queue: Fixed reply type in receive method.
    - PCML: Corrected error message in case of insufficient input data.
    - Print: Allow SpooledFile constucted with 5 attribute to behave like 8 attribute constructed if server version/release supports additional attributes.
    - Print: Do not output SVF or SHF at start of each page unless application specifically sets by using method setHorizontalFormat() and setVerticalFormat().
    - Print: Fixes to ISeriesPrinter and SpooledFileOpenList.
    - QSYSObjectPathName: Selectively uppercase characters when composing *NAME values.
    - RFML: Eliminated inaccurate precalculation of required byte array length.
    - RLA: Improved description text in NumberFormatExceptions from AS400PackedDecimal and AS400ZonedDecimal.
    - Trace: Added support for Java logging (JSR 47).
    - User space: Added trace for file server QTEMP.

### Fixes and enhancements in JTOpen 4.8 (released 2005-06-20)

    - Various: Call setThreadSafe() only if threadsafe property not set.
    - Various: Javadoc fixes and enhancements.
    - Various: Native method updates.
    - Data conversion: Additional bidi transform options.
    - IFS: Tolerate quotes within filenames.
    - JDBC: Added support for 2 MB SQL Statements, 128 byte column names, database host server trace, and added the query optimize goal property.
    - JDBC: Allow TMRESUME on a start() request if the server supports it.
    - JDBC: Allow a Timestamp to be retrieved from a TIME field.
    - JDBC: Allow extended column descriptors to be returned for a stored procedure result set.
    - JDBC: Allow retrieval of Aliases on a call to DatabaseMetaData.getTables().
    - JDBC: Catch ExtendedIllegalArgumentException from AS400PackedDecimal.toBytes() or AS400ZonedDecimal.toBytes(); convert to an SQLException.
    - JDBC: Catch StringIndexOutOfBoundsException when constructing a BigDecimal with a String.
    - JDBC: Changed the Internal Driver Error to a Data Type Mismatch error in convertToRawBytes().
    - JDBC: Fixed JTOpen Bug 1150395. Page backwards using relative() through a result set.
    - JDBC: Fixed JTOpen Bug 1155804. Improved collection pool cleanup logic.
    - JDBC: Pass the result set type to JDServerRowCache.
    - JDBC: Removed the literal space from the strip function.
    - JDBC: Reset data lengths and offsets based on the server format, if VLC compression was not used on a subsequent fetch.
    - JDBC: Retrieve the most recently used connection from the pool.
    - JDBC: Return VARCHAR for the Type Name and 12 for the type for a Long Varchar.
    - JDBC: Send a zero length package name when we ask for a normal prepare.
    - JDBC: Send empty Package name code point when doing a normal prepare and extended dynamic support is requested.
    - JDBC: Turn auto-commit back on and set the commitment control parser option when an XA transaction is ended.
    - Job: Added JOB_LOG_OUTPUT property.
    - JobList: Joblist.load() hangs with certain selection criteria.
    - Message queue: Fixed overflow in calculating receiver variable size.
    - Print: Added print attribute ATTR_PUBINF.
    - QSYS object types: Added new and missing object types.
    - RLA: Added Record.getFieldAsBytes() methods.
    - Resource: Deprecated package com.ibm.as400.resource
    - System status: Added getters for 4 additional properties.
    - System status: Added method getProcessorSharingAttribute().
    - System value: Corrected data type for QTHDRSCAFN.
    - Utilities: Deprecated class utilities.AS400ToolboxInstaller
    - Vaccess: Deprecated package com.ibm.as400.vaccess

### Fixes and enhancements in JTOpen 4.7 (released 2005-02-25)

    - Various: Deleted unnecessary static "Copyright" string.
    - Various: Javadoc updates, including those reported by Jack Woehr.
    - Connection: Added SecureAS400 constructor that takes a profile token.
    - Connection: Added pluggable signon handler (SignonHandler).
    - Connection: Attempt to detect and warn if multiple Toolbox versions on path.
    - IFS: Deprecated confusing IFSRandomAccessFile constructor, added a better one.
    - JDBC: Added a connect method.
    - JDBC: Added support for variable length field compression.
    - JDBC: Check for null SocketProperties before setting it on the AS400 object.
    - JDBC: Do not resend isolation level if it is same as current value.
    - JDBC: Fixed JTOpen Bug 4034. Use job CCSID if column label CCSID is 65535.
    - JDBC: Fixed JTOpen Bug 4121.  See if command contains "SELECT" after uppercasing.
    - JDBC: Fixed JTOpen Bug 4148. Always close PreparedStatement used to update row.
    - JDBC: Make sure serverCommitMode_ always maps to the JDBC isolation level.
    - JDBC: Output DISTINCT for TYPE_NAME of distinct column in DatabaseMetaData.getColumns().
    - JDBC: Return column name from data format when there is no column label.
    - JDBC: Send new isolation level for XA transactions.
    - JDBC: Throw SQLException when convert to raw bytes, except in some cases.
    - JavaApplicationCall: Added getCommandCall().
    - Job: Fixed JTOpen bug 1143395. Update max library list size.
    - Job: Throw exception when read-only value is specified on setValue().
    - Message queue: Retrieve user's message queue instead of assuming default path.
    - ObjectDescription: Added new method getValueAsString().
    - Permission: Preserve leading/trailing blanks in filename.
    - Print: Add ATTR_AUTOEND to attribute list.
    - Print: Added getInputStream() that takes a PrintParameterList as a parameter.
    - Print: Clarified that certain attributes are only available when a Writer is active to the Printer.
    - Print: Method getAttributeName(): Add AT_READ_BUFFERS_SEQ.
    - RFML: Fixed ArrayIndexOutOfBoundsException in RecordFormatDocument.toByteArray().
    - RFML: Improved error message when RFML doc is missing header.
    - RFML: Relocated excess-input check in setValues().
    - RLA: Enable authentication to DDM server with a profile token.
    - Security: CPF3C3C message from ProfileTokenCredential.
    - Subsystem: Added Subsystem class.

### Fixes and enhancements in JTOpen 4.6 (released 2004-10-25)

    - Various: Updated OS/400 and AS/400 references in comments, text.
    - Various: Minor documentation updates.
    - Various: Removed private getCopyright() method.
    - Build: Updated readme to refer to build.xml.
    - Build: Updated JDK level check in build.xml.
    - Connection: Fixed localhost IllegalStateException. (AS400)
    - CallStackEntry: Added new class CallStackEntry.
    - Data conversion: Fix mixed byte buffering problem. (ConvTableReader)
    - FTP: Use separate thread to monitor ServerSocket when in "active" mode.
    - IFS: Throw IOException instead of ClosedChannelException. (IFSFileInputStream)
    - IFS: Changed name of directory created by IFSFileSystemView.createNewFolder().
    - JDBC: Added check for locators when batching.
    - JDBC: Set the socket properties on AS400 object before getting a connection.
    - JDBC: Minor performance improvement. (JDProperties)
    - JDBC: Added "rollback cursor hold" property to hold a cursor over a rollback.
    - PCML: Eliminated performance bottleneck in PcmlDocument.
    - Permission: Fixed filename character conversion bug.
    - Print: Fixed JTOpen bugs 3686 and 3694.  NullPointerException when holding spooled file that is completed.
    - Print: Added spooled file attributes ATTR_JOBCCSID, ATTR_JOBCCSID.
    - Print: Spooled file save/restore.
    - RLA: Synchronized incrementation of DCLNAME. (AS400FileImplRemote)
    - User: Added setters to User class.
    - User: Added V5R3 "local password management" property.
    - User: Added ability to filter by name in UserList.

### Fixes and enhancements in JTOpen 4.5.1 (not announced publicly)

    - Various: Updated OS/400 and AS/400 references in comments, text.
    - Various: Added serialVersionUID where missing.
    - Connection: Added ability to specify NLV on AS400.setLocale().
    - Connection: Clarified javadoc for AS400.setLocale() method.
    - Connection: Specified units for get/set methods of SocketProperties class.
    - IFS: Added new classes IFSFileReader and IFSFileWriter.
    - IFS: Upgraded IFSFileSystemView class to work with newer JDK's.
    - IFS: Corrected behavior of IFSJavaFile.isAbsolute().
    - JDBC: Fixed JTOpen Bug 4025.  Accommodate *LIBL not included in list_ array.
    - JDBC: Fixed JTOpen Bug 4013.  Don't ignore "thread used" connection property.
    - JDBC: Clarified javadoc: "cursor hold" only applies to commits, not rollbacks.
    - JDBC: Added more toolbox trace support to data source interface.
    - JDBC: Fixed proxy tracing.
    - PCML: Added method ProgramCallDocument.serialize(OutputStream).
    - Print: Added PrintObject attributes ATTR_DATE_END and ATTR_TIME_END.
    - Save file: Added new component to represent "save files".
    - Security: Removed unnecessary serializability from AS400Certificate* classes.
    - System values: Added new system values.

### Fixes and enhancements in JTOpen 4.5 (released 2004-08-06)

    - Data conversion: Tolerate multiple versions of Toolbox in classpath (ConvTable1200).
    - FTP: Added support for active mode.
    - IFS: Improved error messages in IFSFileImplRemote.
    - IFS: Added method IFSFile.setCCSID().
    - IFS: Fixed behavior of IFSFile.getFreeSpace().
    - JDBC: Added new LOB locator support.
    - JDBC: Added option to not fully close statement until transaction boundary.
    - Job: Added method Job.loadInformation(attributes).
    - Object description: Don't automatically uppercase library & object names.

### Fixes and enhancements in JTOpen 4.4 (released 2004-06-30)

    - CommandHelpRetriever: Use relative column widths on syntax summary table.
    - Connection: Decoupled JDBC and DDM from AS400 object, to improve effectiveness of AS400ToolboxJarMaker.
    - Connection pools: Added getSystemNames(), getUsers(system), and getConnectedUsers(system).
    - Connection pools: Fixed JTOpen Bug 3384.  (AS400ConnectionPool unnecessarily creates objects)
    - Connection pools: Fixed JTOpen Bug 3863.  (NullPointerException when connection returned to pool)
    - Data conversion: Fixed tables for CCSIDs 424, 862, 1200.
    - Data conversion: Added ability to return Double objects instead of BigDecimal objects on toObject() calls.
    - Data conversion: Allow BidiStringType.None as valid value.
    - Data queue: Fixed proxy delete() method.
    - Documentation: Various javadoc fixes, additions, and enhancements.
    - IFS: Fixed JTOpen Bug 3722. (ClassCastException in IFSFileDescriptorImplRemote)
    - IFS: Added IFSFile methods setPatternMatching(), getPatternMatching().
    - JDBC: Miscellaneous minor enhancements.
    - JDBC: Fixed JTOpen Bug 3605.  (Cleanup after failed creation of prepared stmt)
    - JDBC: Fixed JTOpen Bug 3655.  (AS400JDBCConnectionPool.fill())
    - JDBC: Fixed JTOpen Bug 3801.  (Check for null values from DatabaseMetaData.getTables())
    - JDBC: Fixed JTOpen Bug 3818.  (Normalize DATE milliseconds)
    - JDBC: Additional tracing activation method.
    - JDBC: Performance improvement in SQL statement parsing.
    - JDBC: Return "" for base table name if no column descriptors are returned.
    - List: Check the 'list status indicator' returned by QGY* API's.
    - Message queue: Fixed RMessageQueue string buffer problem.
    - NetServer: Added getters to ISeriesNetServer for pending attribute values.
    - PCML: Added ProgramCallDocument.getProgramCall().
    - RLA: Performance improvements.
    - RFML: Fixed JTOpen Bug 3953.  (Deserializing RecordFormatDocument)
    - System values: Improved handling of invalid QDATE values.

### Fixes and enhancements in JTOpen 4.3.1 (released 2004-04-27)

    - Build: Removed unnecessary -R option on checkout commands in build.xml.
    - Connection: Added ability to pass GSS Credential to system object.
    - FTP: Update lastMessage value more consistently.
    - JDBC: Fixed bug that caused reduced performance and memory leakage.
    - PCML: Removed unnecessary Xalan runtime dependency in PcmlSAXParser.

### Fixes and enhancements in JTOpen 4.3 (released 2004-04-02)

    - Build: Added BidiConversionProperties to proxy jar.
    - Build: Added SystemProperties.class to jt400Servlet.jar.
    - CommandHelpRetriever: Added generateHTMLBytes() method.
    - CommandHelpRetriever: Set charset to UTF-8 instead of ISO-8859-1.
    - CommandHelpRetriever: Javadoc for generateHTML() now indicates the charset is UTF-8.
    - Data conversion: Added constant BidiStringType.NONE.
    - Data conversion: Fixed possible thread-safety issue with Bidi conversion.
    - Data conversion: Various fixes and enhancements related to bidi conversion.
    - Data conversion: Added class BidiConversionProperties.
    - Documentation: Various javadoc fixes, additions, and enhancements.
    - IFS: Fixed bug in IFSFile.mkdirs().
    - JDBC: DatabaseMetaData.getColumns(): Allow CHAR()/VARCHAR() FOR BIT DATA to be displayed instead of CHAR/VARCHAR.
    - JDBC: Added check for server functional level before setting Ctl timeout and lock wait.
    - JDBC: Added method AS400JDBCDriver.connect(AS400 system, boolean clone).
    - JDBC: Catch exceptions in the finalize() methods in AS400JDBCStatement and AS400JDBCResultSet.
    - JDBC: Allow binary string constants in the form of x'1234' and X'1234'.
    - JDBC: Treat the first character in an odd-length String or char[] as the lower nibble of a byte instead of the last character.
    - JDBC: Avoid optimization problem with JDK 1.3 BigDecimal.compareTo() method.
    - JDBC: AS400JDBCResultSet.updateRow() now uses the base column name instead of the column label.
    - JDBC: Changed SQLDBClobLocator.writeToServer() to use number of characters instead of number of bytes for the start offset.
    - JDBC: Changed autoCommit to trueAutoCommit to align with connection string property "true auto commit".
    - JDBC: JDBCProperties: Changed "bidirectional string type" to "bidi string type".
    - JDBC: SQLResultSetTableModel: Removed beforeFirst() call since stored procedures might not return a scrollable cursor if one is requested.
    - JDBC: AS400JDBCResultSet now returns null if a data mapping error occurs.
    - JDBC: SQLResultSetTableModel will now output "++++++++++++++" when a data mapping error occurs.
    - JDBC: Use BidiConversionProperties class instead on only bidi string type.
    - JDBC: Added two connection properties "bidi implicit reordering" and "bidi numeric ordering".
    - Job: Return -1 on getQueuePriority() if job's status is *OUTQ.
    - JobList: Trace a warning message if there are open enumerations returned by a JobList and the JobList is being closed.
    - JobList: Invalidate all JobEnumerations created from a JobList which has been closed.
    - Object description: Tolerate additional error message in exists().
    - Print: Formdef is now handled on the server.
    - Print: Maintain lowercase for certain attributes.
    - Print: Retrieve AT_SYS_DRV_PGM attribute.  Added ATTR_CHR_RTT_CMDS attribute.
    - RFML: Rethrow IOException as SAXException on call to DefaultHandler.resolveEntity(), for compatibility with the IBM JDK.
    - RLA: Handle *NONE key field names in logical files.
    - SpooledFile: Retrieve ATTR_CHR_RTT_CMDS attribute.
    - SpooledFile: Don't retrieve ATTR_DATE_END or ATTR_TIME_END.
    - UserSpace: *SYSTEM domain was being sent to the server as *SYSTFM on a create().

### Fixes and enhancements in JTOpen 4.2 (released 2003-12-23)

    - Build: Created task to insert copyright strings into JTOpen-built class files.
    - Build: Added copyright strings to binary class files in CVS.
    - Build: Added an IdentityToken stub since we currently cannot ship EIM with JTOpen.
    - Connection: Support EIM "identity tokens" for authentication.
    - Connection: Added serialVersionUID to SocketProperties.
    - Connection: Added AS400.setDDMRDB() method to set the IASP/RDB to use for record-level access (RLA).
    - Connection: Added AS400.getSocketProperties().
    - Connection pools: Fixed bug #3727 - Don't synchronize the entire pool in order to get one connection out.
    - Connection pools: Added socket properties.
    - Connection pools: Allow null password.
    - Connection pools: Set thread name on maintenance thread.
    - Connection pools: Don't start maintenance thread if threadUsed is false.
    - Data conversion: Added another variant of CharConverter.byteArrayToString() and stringToByteArray().
    - Data conversion: Enhanced bidi algorithms.
    - Data conversion: Directly support CCSID 1208 (UTF-8).
    - Data queue: Updates to allow user to write to a data queue without having read authority.
    - HTML: Properly allow multiple options to be selected in a SelectFormElement.
    - IFS: Fixed list attribute calls on files larger than 2GB.
    - IFS: Changed VRM check.
    - JDBC: Added a JDBC trace category; log to the Toolbox trace, log stream, and log writer separately.
    - JDBC: Changed major driver version to 6.0.
    - JDBC: Allow read-only sensitive cursors.
    - JDBC: Changed exception text for data type mismatches on date, time, and timestamp types.
    - JDBC: Support scrollable stored procedure result sets when the server does.
    - JDBC: Get the long table names when calling getExportedKeys().
    - JDBC: Support new auto-commit and commit levels provided by server.
    - JDBC: Updated cursor sensitivity handling; use asensitive cursors as default for ResultSet.TYPE_SCROLL_SENSITIVE.
    - JDBC: Added NTS support.
    - JDBC: Use underlying column name when updating a row that has a column with an alias.
    - JDBC: Minor performance improvements in statement batching.
    - Job: Do not allow ELAPSED statistics constants to be retrievable attributes on JobList.
    - NetServer: Deprecated NetServer* classes; replaced with new ISeriesNetServer* classes.
    - NetServer: Added KERBEROS_OR_PASSWORDS authentication method constant.
    - Open list: Added IPP attribute, job system name filter, and date filter to SpooledFileOpenList.
    - Open list: Change STATUS_PRINTING constant for SpooledFileOpenList to match what the API expects (*PRINTER).
    - Open list: Fixed null job system name on items in SpooledFileOpenList.
    - Open list: Status filter on SpooledFileOpenList should have been a String array.
    - PCML: Updated class loading scheme so PCML files can be found under Websphere and Eclipse.
    - Permission: Updated the way object names and CL command strings are treated to handle NLS issues.
    - Permission: Changed thread-safe settings on underlying CL commands so that they will work natively.
    - Permission: Added setPrimaryGroup().
    - Permission: Support Unicode object path names when the server does.
    - Print: Added PrintObject.getSingleAttribute() methods.
    - Product: Fixed user space error when calling getPTFs() natively.
    - Program call: Fixed no program object with no message option.
    - Proxy: Fixed ArrayIndexOutOfBoundsException in ProgramCall.
    - PTF: Return message help of "None" for a status of NOT_LOADED.
    - PTF: Fixed isPreReq() and isCoReq().
    - Resource: Deprecated this package in favor of function in the access package.
    - RLA: Updated record format field names to match output from DSPFFD.
    - User: Added exists().
    - User space: Updated to create with optimum alignment.
    - Utilities: Added comment that specifies column widths for CommandHelpRetriever.
    - Vaccess: Fix for checkboxes in AS400JDBCDataSourcePaneGUI under JDK 1.4.

### Fixes and enhancements in JTOpen 4.1 (released 2003-08-13)

    - Build: Include build directory in src.zip.
    - Build: Added xpcml.xsd to jt400.jar and jt400Native.jar
    - Build: Added com.ibm.as400.access.list package.
    - Build: Use old StringBuffer.append() method in RJobLog and HTMLDocument for compatibility with JDK 1.3.
    - Comm trace: Added reverse.
    - Connection: Open sourced AS400ImplRemote.
    - Connection: Support extra GSS/Kerberos option of authentication for portlet environment.
    - Connection: Catch socket properties exceptions when tracing is active.
    - Connection pools: Moved inner classes to their own external definitions, to avoid possible JIT errors.
    - Connection pools: Check for null in AS400JDBCConnectionPool.setDataSource().
    - Connection pools: Ensure AS400 object is connected when it is retrieved from the pool.
    - Data areas: Cleaned up implementation of subclass delete() methods.
    - Data conversion: Added NLV mapping for zh_CN.
    - Data conversion: Added getInstanceType() methods to AS400DataType classes for performance.
    - Data conversion: Added CCSID 17584 (subset of 1200).
    - Data conversion: Removed _en and _en_US resource bundles, they were a performance hit and are not needed.
    - Data conversion: Added localeToNLV() methods on NLS class.
    - Data conversion: Fixed AS400Text.toBytes() for CCSIDs 13488 and 61952.
    - Data conversion: Made BinaryConverter.bytesToString() and stringToBytes() public.
    - Directory entries: Default to USER_PROFILE, "*" when no selection IDs are added.
    - Environment variables: Fixed problems with service program call.
    - FTP: Use APPE instead of APPEND to work with non-OS/400 FTP servers.
    - HTML: Throw exception if listener is null on form and table converters.
    - IFS: Added copyTo() functionality.
    - IFS: Added isSymbolicLink().
    - Javadoc: Added doc-files subdirectories and updated references in all source parts.
    - Javadoc: Added CCSID list and component list documentation, linked to from utilities.AS400ToolboxJarMaker.
    - Javadoc: Minor updates to micro JDBC driver.
    - Javadoc: Added example to JobList.addJobSelectionCriteria().
    - Javadoc: Minor fixes to FTP classes.
    - JDBC: Minor description string updates to AS400JDBCDataSourcePaneGUI.
    - JDBC: Post data truncation warning when the database has a mapping error.
    - JDBC: Perform case insensitive search for parameter indices to match the JDBC spec.
    - JDBC: Pad with correct space character in CLOBs.
    - JDBC: Fixed string index in CLOBs when locators are used.
    - JDBC: Added loginTimeout and serverTraceCategories properties to data source.
    - JDBC: Fixed translateHex property in data source.
    - JDBC: Added materialized query table support.
    - JDBC: Added static cursor support.
    - JDBC: Throw data type mismatch when length on setBinaryStream() is greater than the stream length, except on locators.
    - JDBC: Throw data truncation when length on setBinaryStream() is greater than the column size.
    - JDBC: ResultSetMetaData.getTableName() now calls getBaseTableName().
    - JDBC: Changed how cursor sensitivity is used.
    - JDBC: Changed how output parameters are registered and retrieved.
    - JDBC: Fixed proxy support for BLOBs and CLOBs.
    - JDBC: Alias VARBIN and BINARY VARYING to VARBINARY.
    - JDBC: Changed radix from decimal (10) to binary (2) on double, float, and real columns.
    - JDBC: Support setting a URL for char and graphic columns.
    - JDBC: Changed setBytes() to expect byte[].class instead of Byte.class.
    - JDBC: Added proxy support for ParameterMetaData.
    - JDBC: Set table name from first SELECT FROM TABLE only, in the case of a subquery.
    - JDBC: Changes to how the default schema is added to the library list.
    - Jobs: Return empty array when JobList length is 0.
    - Messages: Added option to get the user who sent the message as well as the initial user of the job.
    - Messages: Fixed MessageFile.replaceText() to use the correct indices.
    - Messages: Support more than 10 messages returned from a remote command or API call.
    - NetServer: Added new ISeriesNetServer classes to replace the ones that relied on PCML/Resource framework.
    - Object: Only call API on-thread if Toolbox property is set.
    - Object: Added ObjectDescription.exists().
    - Open list: Added new package com.ibm.as400.access.list.
    - Open list: Added SpooledFileOpenList classes to use in place of regular SpooledFile classes for performance.
    - PCML: Added support to PCML for XPCML, using XML schemas.
    - PCML: Updated xsl and xsd definitions.
    - PCML: Removed dependency on XML parser when using serialized PCML.
    - PCML: Handle extendable elements in XPCML.
    - PCML: Handle non-qualified transform file name.
    - PCML: Support PCML/XPCML documents via an InputStream.
    - Print: Added ISeriesPrinter class to use remote command server instead of network print server for performance.
    - Print: Added more print attributes to print classes such as AFPResource and SpooledFile.
    - PTF: Added getRelationship(), fixed pre-req and co-req methods.
    - User: Added more constants.
    - Utilities: Added AboutToolbox class to utilities package, to determine which version of jt400.jar is used.
    - Utilities: Handle old and new tags in gencmddoc.

### Fixes and enhancements in JTOpen 4.0 (released 2003-04-30)

    - Build: Compile with JDK 1.4 to eliminate dependencies, target JDK 1.1.
    - Build: Updated manifest files with new JTOpen version number.
    - Build: Removed PDML task; separated native optimization classes.
    - Build: Added class files to repository to avoid SSLight as a build requirement.
    - Build: Require JDK 1.4.1 to avoid javadoc and ToolboxME errors.
    - Build: Changed SQLData classes to use a getter instead of overridden static to avoid Jikes issues.
    - Build: Various javadoc fixes to pacify JDK 1.4.1 javadoc tool.
    - Build: Removed calls to StringBuffer.append(StringBuffer) to avoid Sun compatibility issue across JDK levels.
    - Command: Add product library to library list before refreshing panel group information.
    - Command: Separated getXMLXXX() methods so as not to rely on system command information.
    - Command call: Deprecated getJob() in favor of getServerJob().
    - Connection pools: Changed ConnectionListEvent.getSource() to always return an AS400 object.
    - Connection pools: Added synchronization; throw exception if PooledConnection is in use.
    - Data conversion: CCSID 1200 is now UTF-16; CCSID 1202 is now little endian UCS-2.
    - Data conversion: Fixed ArrayIndexOutOfBoundsException in ConvTableReader.
    - Data conversion: Bidi strings are now padded before conversion algorithm is applied, instead of after.
    - Data conversion: Changed packed and zoned decimals to have 63-digit maximum instead of 31.
    - Directory entry: Fixed getMailServiceLevel().
    - HTML: Support XSL-FO tags.
    - HTML: Added FileListElement.list(HTMLTableConverter) method.
    - Javadoc: Removed reference to AS400snameFormatter from CharConverter class.
    - Javadoc: Fixed PTF.getIPLRequired().
    - Javadoc: Fixed AS400ToolboxJarMaker link to Job class.
    - Javadoc: Updated SpooledFile.
    - Javadoc: Added javadoc regarding QTEMP.LIB to IFSFile.
    - Javadoc: Corrected javadoc for DirectoryEntry.getCountry().
    - Javadoc: Generate javadoc for com.ibm.as400.util.commtrace package.
    - Javadoc: Handle com.ibm.as400.security.auth package.
    - Javadoc: Fixed example in DirectoryEntryList.
    - JDBC: Update counts now return SUCCESS_NO_INFO on a blocked insert.
    - JDBC: Support ROWID column type.
    - JDBC: Performance improvement to SQLData types - use integer type instead of instanceof.
    - JDBC: Adjusted minimum divide scale property.
    - JDBC: Binary types now support Strings of hexadecimal characters.
    - JDBC: Workaround for JIT bug in JDk 1.3 while parsing SQL statements.
    - JDBC: Changed to report correct maximum precision for various data types according to SQL Reference.
    - JDBC: Changed Blob and Clob datastreams to use new host server truncation codepoint for writing.
    - JDBC: Changed behavior of mixed case column names to ignore case unless surrounded by quotes.
    - JDBC: Fixed NullPointerException in ResultSet.getBytes().
    - JDBC: Changed DatabaseMetaData.supportsResultSetType() to return TYPE_SCROLL_INSENSITIVE.
    - JDBC: Fixed data truncation bugs and warnings.
    - JDBC: Removed limitation of 32K statements in batch.
    - JDBC: Added AS400JDBCConnectionHandle.getServerJobIdentifier().
    - JDBC: Trace LOB locator handles.
    - JDBC: Support retrieving base table name for each column.
    - JDBC: Allow length on setXXX(InputStream) methods to differ from actual amount of data in InputStream.
    - JDBC: Added QAQQINI library name property.
    - JDBC: Handle statements with missing closing parenthetical mark.
    - JDBC: Additional tracing for server attributes.
    - JDBC: Do extra validation of decimal position and scale properties.
    - JDBC: Support 63-digit decimal precision; use UTF-16 for default client encoding.
    - JDBC: Fixed typecast and max/min value bugs in SQLBigint.
    - JDBC: Support unencoded passwords in a data source Reference object.
    - JDBC: PreparedStatement now remains useable after a batch execute.
    - JDBC: Trace property no longer turns off Toolbox trace when set to its default.
    - JDBC: Handle scientific notation numbers that have no decimal point.
    - JDBC: Properly calculate stream length for Unicode Readers.
    - JDBC: Trace object ID in SQLExceptions.
    - JDBC: Fixes for erroneous commas in SQL statements.
    - JDBC: Many fixes for LOB support.
    - JDBC: Work around Brazil time zone issue.
    - JDBC: Issue warning when 1000 open statements are reached per connection.
    - JDBC: AS400JDBCDataSource can now be constructed with an AS400 object.
    - JDBC: Ensure LOB classes do not break JDBC 1.0 clients.
    - JDBC: Literal prefix for binary strings changed to "X'" instead of "'".
    - JDBC: Fixed DatabaseMetaData.supportsTransactionIsolationLevel().
    - JDBC: Use 819 (ISO) instead of 13488 (UCS-2) in toAsciiStream().
    - JDBC: LOB locators now write to the server when necessary.
    - JDBC: Correctly handle LOB locators when executing batch statements.
    - JDBC: Added "toolbox trace" property.
    - JDBC: Fixed issues with running to a Toolbox ProxyServer.
    - JDBC: Added properties for package CCSID, min divide scale, max precision, and max scale.
    - JDBC: Avoid rounding errors when parsing big integers.
    - JDBC: Issue data truncation warning on a read.
    - Job log: Added writeMessage(boolean onThread).
    - Messages: Updated tracing; avoid NullPointerException in AS400Message.getPath().
    - Panel group: Changed help identifier constructor to not throw an exception if library/object name is blank.
    - Panel group: Mark QUHRHLPT API as threadsafe.
    - PCML: (Bug #3538) Use context class loader to avoid issues in Websphere.
    - PCML: Serializing a PCML file now uses a BufferedOutputStream.
    - Print: Extra message information added.
    - Program call: Deprecated getJob() in favor of getServerJob().
    - QSYS object types: Support TIMZON and PDFMAP.
    - Security: Refreshed codebase from Toolbox LPP; open sourced.
    - Security: Changes to authentication token generation.
    - Servlet: Support XSL-FO tags.
    - System values: Support QTHDRSCAFN and QTHDRSCADJ.
    - User: Updated javadoc and synchronization in UserList.
    - User space: Added constants; allow *USER.
    - Utilities: Support specifying alternate panel group to retrieve help text in CommandHelpRetriever.
    - Utilities: CommandHelpRetriever now generates UIM template source.
    - Utilities: Changed space character generation in CommandHelpRetriever.
    - Utilities: Gracefully handle CPF6250 messages in CommandHelpRetriever.
    - Utilities: Fixed unnecessary dependencies on the JDBC classes by the AS400 object in JarMaker.
    - Utilities: Made CommandHelpRetriever's output directory non-static.