Conversation
…ersion UCanAccess (io.github.spannm) now depends on io.github.spannm:jackcess instead of com.healthmarketscience.jackcess:jackcess, so the module's com.healthmarketscience.jackcess:jackcess-encrypt dependency pulled in a second, incompatible jackcess jar on the classpath. Switched to the matching io.github.spannm:jackcess-encrypt artifact and bumped both dependencies to their latest compatible releases (ucanaccess 5.1.7, jackcess-encrypt 5.1.5, both built against jackcess 5.1.5).
…rypt UCanAccess forwards the password given to withPassword() only to the active IJackcessOpenerInterface implementation; it never registers a CodecProvider itself. Since the module relied on UCanAccess's DefaultJackcessOpener, the password was accepted but silently dropped for AES-encrypted (Access 2007+) databases - jackcess-encrypt was a dependency but never actually invoked. Added MsAccessCryptCodecJackcessOpener, a small IJackcessOpenerInterface implementation that wires the password into a jackcess-encrypt CryptCodecProvider, and register it via the jackcessOpener connection property whenever a password is supplied.
spannm
force-pushed
the
fix-ucanaccess-jackcess-encrypt-conflict
branch
from
September 13, 2026 11:56
732f909 to
d7a0eff
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
io.github.spannm) now depends onio.github.spannm:jackcessinstead ofcom.healthmarketscience.jackcess:jackcess. The module'sjackcess-encryptdependency still pointed at the oldcom.healthmarketscience.jackcessgroupId, pulling in a second, incompatible jackcess jar. Switched to the matchingio.github.spannm:jackcess-encryptartifact and bumped both dependencies to their latest compatible releases (ucanaccess 5.1.8, jackcess-encrypt 5.1.6, both built against jackcess 5.1.7).withPassword()to the activeIJackcessOpenerInterfaceimplementation; it never registers aCodecProvideritself. Relying on UCanAccess'sDefaultJackcessOpenermeant the password was accepted but silently dropped for AES-encrypted (Access 2007+) databases —jackcess-encryptwas a dependency but never actually invoked. AddedMsAccessCryptCodecJackcessOpener, anIJackcessOpenerInterfaceimplementation that wires the password into ajackcess-encryptCryptCodecProvider, registered via thejackcessOpenerconnection property whenever a password is supplied.Test plan
mvn -pl dbptk-modules/dbptk-module-ms-access -am clean installsucceeds against the updated dependencies