use try with resources where possible
update to junit 5
rework tostringbuilder formatting
remove apache commons dependency
fix license header
reduce dependence on apache commons lang
ditch CompareToBuilder
modernize unit tests for junit4
remove dep on commons logging
fix java 11 compilation
create branch for jdk 11 updates
update to released parent pom
aborted release
start including sbom
Jackcess 4.0.10 released
[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] copy for tag jackcess-4.0.10
[maven-release-plugin] prepare release jackcess-4.0.10
prep for re-release for new repo
[maven-release-plugin] rollback the release of jackcess-4.0.9
[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] copy for tag jackcess-4.0.9
[maven-release-plugin] prepare release jackcess-4.0.9
prep for releaes
update apache poi dependency version
update commons lang dep version
a bunch of other minor cleanups
remove unnecessary throws clauses
fix zone on default date function
tweak index validation
tweak index validation
Thank you. I've just sent you a private message.
definitely not an expected situation. the first couple of questions: - are you using the latest version of jackcess? - are you closing the Database instance after every use (ensuring that everything in memory is flushed to disk)? - is anything else modifying the access db while it is being modified by jackcess? (jackcess does not support concurrent modification) i'd love to see some sample code of how you are editing the files and if you like, you can send me a file directly to inspect.
Corrupted .mdb file created
Thank u. With the 4.0.8 it works correctly
4.0.8 is released
Jackcess 4.0.8 released
[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] copy for tag jackcess-4.0.8
[maven-release-plugin] prepare release jackcess-4.0.8
prep for release
the fix is in trunk and will be in the 4.0.8 release.
adding fixed length columns not working
this is fixed in trunk and will be in the 4.0.8 release
Fix adding fixed length columns to an existing table. fixes #159
got some time to look at this last night. think i figured some stuff out. hoping to get this sorted in the next few days.
interesting. i was looking at the db format yesterday, and i was thinking the issue may be "fixed length" columns. i was going to test something like an int, but didn't get a chance yet. that definitely leads me to believe that it must be an issue with fixed length columns. i created a ticket here: https://sourceforge.net/p/jackcess/bugs/159/
adding fixed length columns not working
adding fixed length columns not working
interesting. i was looking at the db format yesterday, and i was thinking the issue may be "fixed length" columns. i was going to test something like an int, but didn't get a chance yet. that definitely leads me to believe that it must be an issue with fixed length columns.
Hey, yes Text works, but DOUBLE and INT (Datatype.LONG) also didnt work
have you tested adding another column type other than boolean? i think the problem may be specifically adding boolean columns. i used your base database and added a boolean column and got the same problematic behavior. however, when i tried again with a text column, i didn't see any issues. can you confirm if the problem only occurs with a boolean column?
perfect, thanks!
Yes the other one is the initial version. This is the broken one. I only changed the boolean and the String also changed to an empty String
actually, i just opened the db and it appears that this is the initial version before it gets broken? if so, could you then attach a copy of the database after you modify it with jackcess and access?
is the database you provided the "broken" version? if so, could you also provide a copy of the initial test database that you create before you modify it with jackcess?
I am using Access 2021 and Jackcess 4.0.7
what version of access are you using? (and i'm assuming you are using the latest version of jackcess?)
what version of access are you using?
I tested the whole thing with an new Testdatabase which i created new and has only one table with 2 rows of data and then i run the following code: try { Database db = DatabaseBuilder.open(new File(Link to db)); Table test = db.getTable("TestTable"); ColumnBuilder cb = new ColumnBuilder("isRegressed"); cb.setType(DataType.BOOLEAN); cb.addToTable(test); db.close(); } catch (IOException e) { e.printStackTrace(); } After that i modify the database with Acces and then some fields in the modified row...
I tested the whole thing with an new Testdatabase which i created new and has only one table with 2 rows of data and then i run the following code: try { Database db = DatabaseBuilder.open(new File(Link to db)); Table test = db.getTable("TestTable"); ColumnBuilder cb = new ColumnBuilder("isRegressed"); cb.setType(DataType.BOOLEAN); cb.addToTable(test); db.close(); } catch (IOException e) { e.printStackTrace(); } After that i modify the database with Acces and then some fields in the modified row...
ok. there's probably not much more i could do without actually looking at the db. if you are willing to share the db before it is modified and the snippet of code you are using to modify it, then maybe i could test it locally and see. or, maybe just the database after it is modified by your program. if it is large or sensitive data, is it possible that you could re-create the problem with a simplified db?
ok. there's probably not much more i could do without actually looking at the db. if you are willing to share the db before it is modified and the snippet of code you are using to modify it, then maybe i could test it locally and see. or, maybe just the database after it is modified by your program. if it is large or sensitive, is it possible that you could re-create the problem with a simplified db?
I close the database when i close my Porgram. Currently i do the following: 1. Open my program to add the columns 2. Close my program 3. Open the database in access 4. Modify the database in access
are you closing the database in code after modifying it using jackcess and before you are modifying it using ms access? jackcess does not support parallel editing with ms access or any other program (it does not properly create a lock file or respect an existing lock file).
are you closing the database in code after modifying it using jackcess and before you are modifying it using ms access?
I am closing the database when my program is ending. Should i close the database immediately after adding the column and then reopen it the add Rows in my program? I tried it with "compact and restore" first and then adding the column but it also dont works. My column is there but if i edit something in the table it sets some columns to null. Also i discovered, that when i open the database with my program and the Jackcess libary there is no ldb File created, which allows me to open it at the same...
are you closing the database after you modify it with jackcess to ensure all changes are flushed to the disk before you edit it with access? also, sometimes databases which have been modified a lot get into weird internal states. have you tried "compact and restore" (in access) on the original database file before trying to add a column with jackcess?
Hey, i have the following problem: I add a columns to the database with the following code: private void addColumn(String tableName, String columnName, DataType datatype) { if (databaseController.mainDatabaseExists()) { try { Table table = databaseController.getTable(tableName); ColumnBuilder cb = new ColumnBuilder(columnName); cb.setType(datatype); cb.addToTable(table); } catch (IOException ex) { loggingController.logException( getClass().getSimpleName() + ":addMissingColumn", ex.toString()); }...
Jackcess 4.0.7 released
[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] copy for tag jackcess-4.0.7
[maven-release-plugin] prepare release jackcess-4.0.7
prep for release
in general, java code is forward compatible. there is certainly nothing in the jackcess code which should make it incompatible with future versions of java. that said, java 9 introduced modules. if you upgraded from pre-java 9 to java 11 and you started using modules in your application, then it's possible that this is causing the problem. there are still ways to use jars which aren't "module ready" in later java versions, but i don't remember what special incantations you need in order to make that...
in general, java code is forward compatible. there is certainly nothing in the jackcess code which should make it incompatible with future versions of java. that said, java 9 introduced modules. if you upgraded from pre-java 9 to java 11 and you started using modules in your application, then it's possible that this is causing the problem. there are still ways to use jars which aren't "module ready" in later java versions, but i don't remember what special incantations you need in order to make that...
I have upgraded my application to Java 11. When trying to connect to MSAccess DB, getting below error: ERROR com.web.core.ExceptionResolver - Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.healthmarketscience.jackcess.impl.query.QueryFormat [com.greytip.cougar.asca.web.core.ExceptionResolver getModelAndView 83] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError:...
Add open() method that accepts InputStream
Jackcess doesn't support surrogate characters
this is fixed in the trunk and will be in the 4.0.7 release
Add support for surrogate pairs in text indexes (e.g. emoticons), fixes #157
i got a little time to look at this and i think i'll be able to fix it.
Jackcess doesn't support surrogate characters
cannot write as many chars as column max (about half)
Jackcess 4.0.6 released
[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] copy for tag jackcess-4.0.6