Fork me on GitHub

Release notes

Release History

Version Date Description
2.1.3 2015-12-04  
2.1.2 2015-06-22  
2.1.1 2015-05-14  
2.1.0 2015-04-16 Relicense to Apache License
2.0.9 2015-03-21  
2.0.8 2014-12-26  
2.0.7 2014-11-22  
2.0.6 2014-10-04  
2.0.5 2014-09-17  
2.0.4 2014-04-05  
2.0.3 2014-01-30  
2.0.2 2013-11-30  
2.0.1 2013-10-13  
2.0.0 2013-08-26 Major API Revision 2013-10-13 2013-08-25 2013-08-11  
1.2.14 2013-07-23  
1.2.13 2013-06-18  
1.2.12 2013-05-09  
1.2.10 2013-02-18  
1.2.9 2012-10-15  
1.2.8 2012-07-10  
1.2.7 2012-04-02  
1.2.6 2011-12-16  
1.2.5 2011-10-19  
1.2.4 2011-05-14  
1.2.3 2011-03-05  
1.2.2 2010-11-29  
1.2.1 2010-08-01  
1.2.0 2010-04-18  
1.1.21 2010-01-19  
1.1.20 2009-11-18  
1.1.19 2009-06-13  
1.1.18 2008-11-08  
1.1.17 2008-09-23  
1.1.16 2008-07-24  
1.1.15 2008-06-27  
1.1.14 2008-04-29  
1.1.13 2008-03-21  
1.1.12 2008-02-27  
1.1.11 2008-01-20  
1.1.10 2007-12-26  
1.1.9 2007-07-12  
1.1.8 2007-02-13  
1.1.7 2006-10-02  
1.1.6 2006-08-07  
1.1.5 2006-07-25  
1.1.4 2006-6-15  
1.1.3 2006-2-16  
1.1.2 2005-8-26  
1.1.1 2005-8-20  
1.1 2005-8-12  
1.0 2005-4-7  

Release 2.1.3 – 2015-12-04

Type Changes By
Fix Throw a prettier exception when maxing out the row size during row creation. Fixes 127. jahlborn
Fix Add FileFormat.GENERIC_JET4 in order to support getting the file format for jet4 databases with no AccessVersion property (e.g. those created programmatically using ADOX). Fixes 129. jahlborn
Update Add some utility methods (DatabaseBuilder.createDateFormat and DatabaseBuilder.toCompatibleCalendar) for handling Dates in an Access compatible manner. Fixes 128. jahlborn
Update New site style! jahlborn

Release 2.1.2 – 2015-06-22

Type Changes By
Fix Handle reading null calculated values. Fixes 125. jahlborn
Fix Fix handling of dateTimes before the access epoch. Fixes 126. jahlborn

Release 2.1.1 – 2015-05-14

Type Changes By
Fix Load linked table info from system table when reading databases with unsupported sort orders. Fixes 123. jahlborn
Update Allow optional direct insert/update of autonumber values. This is disabled by default, but can be selectively enabled per-jvm (using system property), per-database, and per-table. Fixes 32. jahlborn

Release 2.1.0 – 2015-04-16

Type Changes By
Add OpenHMS relicenses to Apache License, 2.0! jahlborn

Release 2.0.9 – 2015-03-21

Type Changes By
Fix Make ColumnBuilder.setMaxLength do the right thing regardless of column type. Fixes 116. jahlborn
Update Handle input String boolean values. jahlborn
Add Added Database.isLinkedTable method to identify if the given Table is linked to the database. Fixes 28. jahlborn
Add Added TableIterableBuilder for advanced Table iteration. This allows selectively including different table types when iterating the tables in a Database. Fixes 28. jahlborn
Add Lowered the log level for certain warnings related to system tables which do not generally affect jackcess functionality. Fixes 29. jahlborn
Add Added contextual information to many errors and warnings. Fixes 29. jahlborn
Add Implement support for indexes on BINARY fields. Fixes 29. jahlborn
Fix Remove useless warning for fixed length columns lengths with longer length. Cleanup some other stuff related to copying existing columns in ColumnBuilder. Fixes 120. jahlborn

Release 2.0.8 – 2014-12-26

Type Changes By
Fix Add newer sql type to access type mappings if the jvm supports them. Fixes 113. jahlborn
Fix Fix table name quoting for append and make table queries. Fixes 17. jahlborn
Fix Don't double quote already quoted identifiers. Fixes 18. jahlborn
Update Better validation of identifier names (disallow invalid characters according to Access naming rules). jahlborn

Release 2.0.7 – 2014-11-22

Type Changes By
Fix Unicode compression support was not correct for all possibly compressed characters. Fixes 111. jahlborn
Fix Currency columns will now return an accurate scale and precision. Fixes 112. jahlborn

Release 2.0.6 – 2014-10-04

Type Changes By
Fix IndexCursor can early exit when searching based on indexed values. Fixes 109. jahlborn
Fix Fix regression where empty memo values are returned as null. Fixes 110. jahlborn

Release 2.0.5 – 2014-09-17

Type Changes By
Add Add Cursor.findRow(RowId) for moving to a specific Table row using only the RowId. jahlborn
Fix Add support for reading and writing calculated column values. Jackcess will not evaluate the actual expressions, but the column values can be written directly. Fixes 105. jahlborn
Add Add the ability to set properties in DatabaseBuilder, TableBuilder, and ColumnBuilder. jahlborn
Add Add the ability to create tables with calculated fields. jahlborn

Release 2.0.4 – 2014-04-05

Type Changes By
Add Add ColumnValidator interface which allows column values to be easily manipulated/validated as they are written into the database. jahlborn

Release 2.0.3 – 2014-01-30

Type Changes By
Fix Fix NullPointerException in RowImpl.toString() when value is null. Fixes 100. jahlborn

Release 2.0.2 – 2013-11-30

Type Changes By
Fix Rework row add/update so that constraint violations do not leave behind partially written rows. Fixes 99. jahlborn
Update Add ConstraintViolationException to distinguish exceptions due to violating database constraints from other random errors. jahlborn

Release 2.0.1 – 2013-10-13

Type Changes By
Add Add initial support for creating/parsing ole content. jahlborn
Fix Ignore invalid column usage map definitions. Fixes 97. jahlborn
Fix Make reading long value columns more lenient (MEMO/OLE). jahlborn
Add Add support for modifying PropertyMaps. Fixes 16. jahlborn

Release 2.0.0 – 2013-08-26

Type Changes By
Update Brand new API! This release is not backwards compatible with 1.x releases. See Migration Guide at for more details. jahlborn

Release – 2013-10-13

Type Changes By
Fix Ignore invalid column usage map definitions. Fixes 97. jahlborn
Fix Make reading long value columns more lenient (MEMO/OLE). jahlborn

Release – 2013-08-25

Type Changes By
Fix Fix reading of Properties with multiple value blocks. Fixes 96. jahlborn

Release – 2013-08-11

Type Changes By
Fix Remove extra object flags before checking query type. Fixes 25. jahlborn

Release 1.2.14 – 2013-07-23

Type Changes By
Fix Implement handling of usagemaps for long value (MEMO/OLE) columns. Fixes 95. jahlborn

Release 1.2.13 – 2013-06-18

Type Changes By
Fix Fix partial page updates when using CodecHandlers which can only do full page encoding. jahlborn
Update Add more methods to Database for retrieving Relationships. jahlborn
Update Implement attachment decoding, thanks to Lorenzo Carrara. jahlborn

Release 1.2.12 – 2013-05-09

Type Changes By
Fix Do not unicode compress strings which are longer than 1024 chars. Fixes 94. jahlborn

Release 1.2.10 – 2013-02-18

Type Changes By
Update Add info to the Column to support MEMO columns which are HYPERLINKS. jahlborn
Fix Add optional support for enforcing foreign-key constraints/cascading. This is disabled by default (for backwards compatibility), but can be controlled globally via a system property and/or on a per-Database basis using setEnforceForeignKeys() method. Fixes 22. jahlborn

Release 1.2.9 – 2012-10-15

Type Changes By
Update Add some more functionality to Joiner to facilitate integrity enforcement (hasRows and deleteRows). jahlborn
Add Added DatabaseBuilder for more convenient and flexible Database open/create. jahlborn
Add Added the MemFileChannel (and associated support in DatabaseBuilder) to enable working with Database files completely in memory. jahlborn
Fix Fix some more edge cases in date/time conversions. Fixes 92. jahlborn

Release 1.2.8 – 2012-07-10

Type Changes By
Update Add osgi header information to the manifest. Fixes 3523179. jahlborn
Update Add ImportUtil.toColumns to enable more advanced Table creation implementations. Fixes 3523181. jahlborn
Fix Fix NPE when running unit tests with db format MSISAM. Fixes 3529534. jahlborn
Fix Fix writing partial pages when CodecHandler is in use. Note, this fix involves a backwards incompatible change to the CodecHandler interface (Jackcess Encrypt 1.0.3 or later is compatible with this version of Jackcess). Fixes 3532250. jahlborn

Release 1.2.7 – 2012-04-02

Type Changes By
Update Add initial support for linked tables. Linked tables will now be loaded by the normal Database.getTable method. Linked tables can be created using the new Database.createLinkedTable method. Linked table resolution can be customized per Database by supplying a custom LinkResolver. Fixes 3479560. jahlborn
Update Rename and refactor the Cursor find methods to improve usability. jahlborn

Release 1.2.6 – 2011-12-16

Type Changes By
Update Add support for reading/writing complex column data (version history, attachments, multi-value columns). Fixes 3358272. jahlborn
Fix Fix problem with creating tables with indexes where ms access could not open the created table. jahlborn
Fix Fix problem with reading row from table with deleted/added columns. Fixes 3435774. jahlborn
Update Reuse previously written memo/ole values when updating other values in a row in order to reduce unnecessary data duplication. jahlborn
Update Allow ImportFilter and ExportFilter to return null from filterRow() to indicate that a row should be skipped. jahlborn
Update Add option to import file without headers to existing table. jahlborn
Add Add ImportUtil.Builder and ExportUtil.Builder to simplify import/export operations. jahlborn

Release 1.2.5 – 2011-10-19

Type Changes By
Update Try multiple classloaders when loading resources as streams. jahlborn
Add Add the Joiner utility and some new methods to IndexCursor to make it easier to join tables using pre-defined (index backed) relationships. jahlborn
Update Enable basic handling of unsupported data types as binary content. jahlborn
Update Add methods to approximate table size. jahlborn
Update Add Database.getSystemTableNames to enable retrieving the list of system/hidden tables. jahlborn
Fix Fix issue with reading Access 97 database with large number of fields. jahlborn

Release 1.2.4 – 2011-05-14

Type Changes By
Update Refactor table loading to use indexes. Do not load all table names at database startup (should make startup faster). jahlborn
Add Add support for reading properties blobs. Add methods for accessing database, summary, and user-defined properties from the Database. Add methods to Table and Column for accessing their respective properties. jahlborn
Add Add support for Access 2010, including new "General" sort order (support for super-long text index entries still needs work). jahlborn
Fix Access expects a row to be at least big enough to hold all fixed values, even if they are null. Fixes 3287626. jahlborn
Update Add Index.getReferencedIndex for retrieving the referenced Index for a foreign key index. jahlborn

Release 1.2.3 – 2011-03-05

Type Changes By
Fix Add support for writing all fixed length column types into variable length fields. Fixes 3181334. jahlborn
Fix More fixes related to reading and interpreting index information. Handle multiple logical indexes backed by the same index data. Interpret foreign key constraint information. Fixes 3192058. jahlborn
Update Allow MSISAM files to be written (experimental). jahlborn
Add Add support for creating indexes when creating a new table. Normal indexes and primary key indexes are currently supported. Foreign key indexes are not yet supported. jahlborn

Release 1.2.2 – 2010-11-29

Type Changes By
Update Add support for specifying a quote character on import from flat files. jahlborn
Update Add support for reading database password. jahlborn
Update Add support for plugging in implementations of various page encoding/decoding algorithms. See the <a href="">Jackcess Encrypt</a> project for a CodecProvider implementation which supports a few of the Access encodings. (thanks to Vladimir Berezniker). Fixes 3065010. jahlborn
Update Implement some tweaks which allow jackcess to be used on the Android platform. See the <a href="faq.html#android">FAQ</a> for more details. (thanks to Miha Pirnat). Fixes 3101578. jahlborn
Update Allow output column order in tables to be configured. Fixes 3097387. jahlborn
Update Add support for custom column value matching when finding rows using a Cursor. Fixes 3105829. jahlborn
Fix Ignore usagemap inconsistencies in certain (safe) situations. jahlborn

Release 1.2.1 – 2010-08-01

Type Changes By
Add Add ExportUtil and associated utilities for exporting tables to flat files (thanks to F. Gerbig). Fixes 3005272. jahlborn
Fix Fix some places where table/columns names were not being handled case-insensitively. Fixes 3011084. jahlborn
Fix Make Database.escapeIdentifier public; add methods to TableBuilder and ColumnBuilder to optionally escape names. Fixes 3029500. jahlborn
Update Add support for overriding charset and timezone used when reading/writing database. Fixes 2997751. jahlborn
Add Add support for reading Access 97 (jet format 3) databases (thanks to F. Gerbig). Fixes 3003375. jahlborn

Release 1.2.0 – 2010-04-18

Type Changes By
Update Add support for access 2002/2003/2007 databases. Fixes 1451628. bhamail
Update Enable "large" index support by default. It can still be disabled via a variety of means, see the Database javadoc for more details. jahlborn
Fix Fix BigIndexTest to work in IDE's w/out sys.prop. Fixes 2968957. bhamail

Release 1.1.21 – 2010-01-19

Type Changes By
Fix Further improvements to date handling. Fixes 2899605. jahlborn
Update Handle more binary/character input types (Blob, Clob, InputStream, Reader), based on user submitted patch. jahlborn
Update Refactor import/copy methods from Database into ImportUtil. Allow reuse of existing tables. make behavior/naming of copy and import methods consistent. (ideas from submitted patch). jahlborn
Fix Set overflow info in header row, not in last data row. Fixes 2919216. jahlborn
Fix Add support for indexing strings containing any characters from BMP 0. Fixes 2920092. jahlborn

Release 1.1.20 – 2009-11-18

Type Changes By
Fix Add support for updating GUID indexes and for auto-number GUID fields. Fixes 2884599. jahlborn
Update Add support for updating rows in a table. Fixes 2802845. jahlborn
Fix Support reading/writing fixed length text fields. Fixes 2886370. jahlborn

Release 1.1.19 – 2009-06-13

Type Changes By
Add Add Query reading support. jahlborn
Fix Be more forgiving for input column length. Fixes 2788029. jahlborn

Release 1.1.18 – 2008-11-08

Type Changes By
Add Add ErrorHandler utility for customizing error handling during row parsing. jahlborn
Add Add RowFilter contributed by Patricia Donaldson. jahlborn
Update Add Database.getSystemTable method for accessing system tables. jahlborn

Release 1.1.17 – 2008-09-23

Type Changes By
Fix Fix simple index handling of tail index pages. Fixes 2043499. jahlborn

Release 1.1.16 – 2008-07-24

Type Changes By
Fix Reserve minimum space for memo/ole fields so that greedy inline row usage does not cause spurious write failures for wide tables. Fixes 2019244. jahlborn
Fix Better column type translation for very large MEMO/OLE types in the Database.copyTable logic. Fixes 2018713. jahlborn
Fix Add some more limit checking into table creation based on what access supports (max rows per table, max identifier lengths). Fixes 2019244. jahlborn
Fix Share out-of-line long value pages in order to generate more compact database files. Fixes 2019244. jahlborn
Add Add primitive support for writing unicode compressed text columns. jahlborn
Add Add compression code for possible future use; add compression unit tests. jahlborn

Release 1.1.15 – 2008-06-27

Type Changes By
Fix Fix writing of large memo/ole fields. Apparently Access does not like long value fields longer than 4076 bytes. Fixes 1998225. jahlborn
Fix Reduce maximum row size to what Access considers valid. jahlborn

Release 1.1.14 – 2008-04-29

Type Changes By
Fix Need to store auto-number values back into row so that indexes can be updated correctly. Fixes 1924705. jahlborn
Fix Access seems to limit data pages to a max of 255 rows. Fixes 1942330. jahlborn
Fix Added experimental support for "large" indexes. The current support is optional. It can be enabled via a variety of means, see the Database javadoc for more details. Fixes 1564870. jahlborn

Release 1.1.13 – 2008-03-21

Type Changes By
Fix More fixes for index parsing. Believe index names are now correctly matched up with indexes. Fixes 1913775. jahlborn
Update Simplify comparison algorithms for RowId and Index.Entry using type attributes. jahlborn
Fix Expand the characters supported in index updates to all of the ISO-8859-1 character set. Fixes 1906160. jahlborn
Fix Fix bug caused by sign extension when reading single-byte row numbers. jahlborn
Update Modify Index update support so that it honors the "unique" and "ignoreNulls" properties for the Index. jahlborn
Update Add support for reading table relationships. jahlborn
Fix Fix creation of tables with auto-number columns. jahlborn
Fix Completely fix problems with sporadic usage map corruption. Fixes 1832723. jahlborn
Update Add some soft buffer caching in various places to avoid excessive buffer reallocation. jahlborn
Add Add some builder-style utilities for table creation (ColumnBuilder, TableBuilder). jahlborn

Release 1.1.12 – 2008-02-27

Type Changes By
Fix Resolve more edge cases around date handling. jahlborn
Fix Fix writing of large memo/ole fields. Apparently Access does not like "inline" fields longer than 64 bytes. Fixes 1899076. jahlborn
Fix Fix generation of security access control entries. Use userIds already existing in the database file instead of hard-coded userIds, if possible. Fixes 1898793. jahlborn

Release 1.1.11 – 2008-01-20

Type Changes By
Fix Support reading inline usage maps with more than 512 pages. jahlborn
Fix Fix some problems with sporadic usage map corruption. Fixes 1832723. jahlborn
Update Move from cvs to subversion. jahlborn

Release 1.1.10 – 2007-12-26

Type Changes By
Add Add index based table traversal support to Cursor with optional sub-range narrowing. Add position save/restore, row find, and a variety of other features. jahlborn
Add Move table iteration out of Table and into Cursor. First stage in offering more complicated table access. jahlborn
Fix Update table row count correctly on row deletion or bulk row addition, bug #1681954. Fixes 1681954. jahlborn
Update Add experimental support for auto-number columns, feature request #1565216. Fixes 1565216. jahlborn
Update Move project to maven2 and change project groupId to com.healthmarketscience.jackcess. jahlborn

Release 1.1.9 – 2007-07-12

Type Changes By
Fix Add support for writing large table definitions, bug #1675522. Fixes 1675522. jahlborn
Fix Fix handling of usage maps for large tables, bug #1748827. Fixes 1748827. jahlborn
Fix Fixed some edge cases for reading numeric columns, bug #1672071. Fixes 1672071. jahlborn

Release 1.1.8 – 2007-02-13

Type Changes By
Update Additional info in DataType to support better type validation (scale/precision range). Add "unit size" concept. jahlborn
Update Add CLOB support in JDBC handling. Add general support for large types (BLOB/CLOB). jahlborn
Update Enhance Database.copyTable/importReader to allow for better control over column definitions and row values through the ImportFilter. Change default type translation to handle large and variable length types better. jahlborn

Release 1.1.7 – 2006-10-02

Type Changes By
Update Refactored DataType class, cleaned up a lot of "custom" data type code springled throughout the codebase. jahlborn
Update Added sanity checking on table creation (check column/table properties for validity). jahlborn
Update Clean up index reading/writing of text columns, add support for more characters jahlborn
Update Support reading 'compressed' indexes (fix 1563654) Fixes 1563654. jahlborn
Update Implement "overflow" row reading. jahlborn
Fix Allow multi-page long value reading. jahlborn
Update Implement multi-page long value writing. jahlborn
Fix Fix decimal data type writing. jahlborn
Update Add support for opening files read-only (fix 1545857) Fixes 1545857. jahlborn

Release 1.1.6 – 2006-08-07

Type Changes By
Fix Handle more tables with more index slots than actual indexes (fix bug 1530312) Fixes 1530312. jahlborn
Fix Clean up reading/writing 3-byte ints; long value length is 3-bytes (fix bug 1449812) Fixes 1449812. jahlborn
Fix Fix handling of skipped rows jahlborn
Fix When reading multi-page table def, flip buffer before parsing (fix bug 1306970) Fixes 1306970. jahlborn
Update Treat table names as case insensitive; use stored table names when instantiating tables jahlborn
Update Make Database and Table Iterable jahlborn
Fix Use uppercase names when adding text columns to indexes, which fixes long standing problem with table names starting with lowercase characters (and other situations where tables could not be opened in Access). Remove hack which forced every table name to have uppercase first character. jahlborn
Update Clean up compressed text handling. jahlborn
Update Implement reading multi-page long binary values jahlborn

Release 1.1.5 – 2006-07-25

Type Changes By
Update Add support for currency columns (thanks to James Schopp). jahlborn
Fix Handle tables with no variable length columns correctly. jahlborn
Fix Handle reading with deleted columns. jahlborn
Update Read information on primary keys and include in Index. jahlborn
Fix Fix some issues around reading indexes. jahlborn
Update Add write support for numeric/GUID columns. jahlborn
Update Added getRowCount(), getName(), updated toString() on Table. javajedi

Release 1.1.4 – 2006-6-15

Type Changes By
Fix Missing break in switch condition. jahlborn
Fix Fixes to reading/writing MEMO/OLE columns. jahlborn
Update Made exceptions thrown when opening empty or nonexistent files more specific. jahlborn
Fix Apply patch from Jon Iles for handilng variable length columns. jahlborn
Fix Apply patch from Jon Iles for handling dates. jahlborn
Fix Apply patch from Jon Iles for reading GUIDs. jahlborn

Release 1.1.3 – 2006-2-16

Type Changes By
Fix Fix parsing of NUMERIC type. jahlborn
Fix Applied Jon Iles' patch to allow large table definitions to be read. javajedi

Release 1.1.2 – 2005-8-26

Type Changes By
Fix Fixed bug where writing null values into fixed-width columns was failing. Fixes 1273712. javajedi

Release 1.1.1 – 2005-8-20

Type Changes By
Fix Fixed bug in reading index count from table definition. Skip overflow rows. Fixes 1261536. javajedi

Release 1.1 – 2005-8-12

Type Changes By
Update JDK 1.5 upgrades javajedi
Update Applied Mitchell Friedman's patch for support of additional JDBC data types. javajedi
Update Added support for deleted rows. javajedi

Release 1.0 – 2005-4-7

Type Changes By
Add Initial release javajedi