Skip to content

build(deps): bump jdbi from 3.49.6 to 3.55.0 - #814

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/gradle/jdbi-3.55.0
Closed

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/gradle/jdbi-3.55.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Bumps jdbi from 3.49.6 to 3.55.0.
Updates org.jdbi:jdbi3-core from 3.49.6 to 3.55.0

Release notes

Sourced from org.jdbi:jdbi3-core's releases.

3.55.0

Significant bugfix and small feature request sweep of the backlog:

  • Bind and map types that are not public: a package-private bean class with public accessors, a non-public constructor or @JdbiConstructor factory method, or a package-private Immutables value type. mapToBean now also uses a non-public no-arg constructor, e.g. a private one on a public bean. The ReflectionMappers accessible object strategy controls this. Unlike FieldMapper, these mappers apply the strategy in effect when a type is first used and cache the result for the Jdbi instance, so set the strategy on the Jdbi before first use, not on a Handle or statement. A ConstructorMapper for a type that Jdbi can not access now fails on first use, with a message that names the fix, instead of at creation (#1684)
  • Fix KotlinMapper ignoring a SQL NULL for a @PropagateNull constructor parameter or property of a non-null primitive type such as Long or Int. The column mapper returned 0 (or false) and the object was mapped instead of null. KotlinMapper now treats the NULL as null like the ConstructorMapper, FieldMapper, and BeanMapper do (#3048)
  • Fix a @Nested Optional<T> attribute that held null instead of Optional.empty() when T used the class-level @PropagateNull("column") form and that column was null. A @PropagateNull on the Optional attribute itself no longer turns the parent into null in this case, which matches the attribute-level form (#3049)
  • New JoinRowReducer (Beta) reduces the rows of a join query into root objects and links the joined objects to them, for to-one and to-many relations over inner and outer joins. Columns are named relative to the relation prefix, one type is one table, so a table row is one instance no matter through how many relations the query reaches it, and reducers nest for deeper graphs (#1574)
  • New RowView.getColumn(String) and RowView.getColumn(int) return a column value as the JDBC driver returns it from ResultSet.getObject, without a column mapper. New RowView.getColumnNames() returns the column labels of the result set, and RowView.getRow(RowMapper) maps the current row with a given mapper (#1574)
  • Add BindListStyle to render bindList / @BindList elements as single-column rows, (:a),(:b), for use with the SQL VALUES list constructor. Configure it with SqlStatements#setBindListStyle or @BindList(style = BindListStyle.ROWS) (#1550, Alpha)
  • Add LocalTransactionHandler.managed(): Jdbi manages transactions on connections with autocommit disabled instead of joining them, e.g. on a pool that disables autocommit as a precaution. inTransaction commits, retry handlers such as SerializableTransactionRunner engage, and a statement executed outside of a transaction is not committed. (#2663, #1733)
  • Add NoOpTransactionHandler for connections whose transactions an external framework manages, e.g. a Spring TransactionAwareDataSourceProxy or an XA data source. It never reads or changes the transaction state of the connection. CMTTransactionHandler now extends it, with unchanged behavior. (#2742, thanks @​bekoenig for the suggestion!)
  • Document the transaction contract for connections with autocommit disabled: the handle joins the transaction that the connection owner manages. New "Transactions managed outside Jdbi" section in the User Guide, with tests that pin the contract. (#1039, #2663)
  • Document how @PropagateNull resolves its column: on a class, the column name is relative to the mapper prefix (from @Nested or from a mapper made with a prefix), so one class maps under different prefixes. New "Using @PropagateNull" section in the User Guide, with tests for mappers made with a prefix. (#1764)
  • Fix JdbiExtension losing its plugins and initializer after afterAll, so a static extension whose test class ran a second time in the same JVM (a Surefire rerun of a failed test, or a @Nested class selected as its own test class) restarted with a bare Jdbi and failed with NoSuchMapperException or NoSuchExtensionException (#3036)
  • vavr: update to vavr 1.0.1. The vavr 1.0.0-alpha releases remain unsupported (#2350)
  • Fix repeated @RegisterKotlinMapper annotations on one method or type. Kotlin wrapped them in a generated container that Jdbi did not process, so none of the mappers were registered and rows mapped through the

... (truncated)

Changelog

Sourced from org.jdbi:jdbi3-core's changelog.

3.55.0

  • Bind and map types that are not public: a package-private bean class with public accessors, a non-public constructor or @JdbiConstructor factory method, or a package-private Immutables value type. mapToBean now also uses a non-public no-arg constructor, e.g. a private one on a public bean. The ReflectionMappers accessible object strategy controls this. Unlike FieldMapper, these mappers apply the strategy in effect when a type is first used and cache the result for the Jdbi instance, so set the strategy on the Jdbi before first use, not on a Handle or statement. A ConstructorMapper for a type that Jdbi can not access now fails on first use, with a message that names the fix, instead of at creation (#1684)
  • Fix KotlinMapper ignoring a SQL NULL for a @PropagateNull constructor parameter or property of a non-null primitive type such as Long or Int. The column mapper returned 0 (or false) and the object was mapped instead of null. KotlinMapper now treats the NULL as null like the ConstructorMapper, FieldMapper, and BeanMapper do (#3048)
  • Fix a @Nested Optional<T> attribute that held null instead of Optional.empty() when T used the class-level @PropagateNull("column") form and that column was null. A @PropagateNull on the Optional attribute itself no longer turns the parent into null in this case, which matches the attribute-level form (#3049)
  • New JoinRowReducer (Beta) reduces the rows of a join query into root objects and links the joined objects to them, for to-one and to-many relations over inner and outer joins. Columns are named relative to the relation prefix, one type is one table, so a table row is one instance no matter through how many relations the query reaches it, and reducers nest for deeper graphs (#1574)
  • New RowView.getColumn(String) and RowView.getColumn(int) return a column value as the JDBC driver returns it from ResultSet.getObject, without a column mapper. New RowView.getColumnNames() returns the column labels of the result set, and RowView.getRow(RowMapper) maps the current row with a given mapper (#1574)
  • Add BindListStyle to render bindList / @BindList elements as single-column rows, (:a),(:b), for use with the SQL VALUES list constructor. Configure it with SqlStatements#setBindListStyle or @BindList(style = BindListStyle.ROWS) (#1550, Alpha)
  • Add LocalTransactionHandler.managed(): Jdbi manages transactions on connections with autocommit disabled instead of joining them, e.g. on a pool that disables autocommit as a precaution. inTransaction commits, retry handlers such as SerializableTransactionRunner engage, and a statement executed outside of a transaction is not committed. (#2663, #1733)
  • Add NoOpTransactionHandler for connections whose transactions an external framework manages, e.g. a Spring TransactionAwareDataSourceProxy or an XA data source. It never reads or changes the transaction state of the connection. CMTTransactionHandler now extends it, with unchanged behavior. (#2742, thanks @​bekoenig for the suggestion!)
  • Document the transaction contract for connections with autocommit disabled: the handle joins the transaction that the connection owner manages. New "Transactions managed outside Jdbi" section in the User Guide, with tests that pin the contract. (#1039, #2663)
  • Document how @PropagateNull resolves its column: on a class, the column name is relative to the mapper prefix (from @Nested or from a mapper made with a prefix), so one class maps under different prefixes. New "Using @PropagateNull" section in the User Guide, with tests for mappers made with a prefix. (#1764)
  • Fix JdbiExtension losing its plugins and initializer after afterAll, so a static extension whose test class ran a second time in the same JVM (a Surefire rerun of a failed test, or a @Nested class selected as its own test class) restarted with a bare Jdbi and failed with NoSuchMapperException or NoSuchExtensionException (#3036)
  • vavr: update to vavr 1.0.1. The vavr 1.0.0-alpha releases remain unsupported (#2350)
  • Fix repeated @RegisterKotlinMapper annotations on one method or type. Kotlin wrapped them in a generated container that Jdbi did not process, so none of the mappers were registered and rows mapped through the unprefixed KotlinMapperFactory mapper, ignoring the prefix. The annotation now uses

... (truncated)

Commits
  • a20642a [maven-release-plugin] prepare release v3.55.0
  • a7df034 Release notes 3.55.0
  • d43955b Merge remote-tracking branch 'origin/claude-nested-optional-propagate-null'
  • 06b6682 Merge pull request #3048 from jdbi/claude-kotlin-propagate-null-primitive
  • a3be71c Return Optional.empty() for a nested Optional with class-level @​PropagateNull
  • c52bb43 Map a SQL NULL to null for a @​PropagateNull primitive in KotlinMapper
  • 6f8de68 Merge pull request #3047 from jdbi/claude-accessible-lookup-1684
  • 4570efc Merge pull request #3043 from jdbi/claude-propagate-null-docs-1764
  • 793b789 Document how @​PropagateNull resolves its column under a mapper prefix
  • 88a246a Apply the accessible object strategy to beans, constructors, and Immutables
  • Additional commits viewable in compare view

Updates org.jdbi:jdbi3-sqlobject from 3.49.6 to 3.55.0

Release notes

Sourced from org.jdbi:jdbi3-sqlobject's releases.

3.55.0

Significant bugfix and small feature request sweep of the backlog:

  • Bind and map types that are not public: a package-private bean class with public accessors, a non-public constructor or @JdbiConstructor factory method, or a package-private Immutables value type. mapToBean now also uses a non-public no-arg constructor, e.g. a private one on a public bean. The ReflectionMappers accessible object strategy controls this. Unlike FieldMapper, these mappers apply the strategy in effect when a type is first used and cache the result for the Jdbi instance, so set the strategy on the Jdbi before first use, not on a Handle or statement. A ConstructorMapper for a type that Jdbi can not access now fails on first use, with a message that names the fix, instead of at creation (#1684)
  • Fix KotlinMapper ignoring a SQL NULL for a @PropagateNull constructor parameter or property of a non-null primitive type such as Long or Int. The column mapper returned 0 (or false) and the object was mapped instead of null. KotlinMapper now treats the NULL as null like the ConstructorMapper, FieldMapper, and BeanMapper do (#3048)
  • Fix a @Nested Optional<T> attribute that held null instead of Optional.empty() when T used the class-level @PropagateNull("column") form and that column was null. A @PropagateNull on the Optional attribute itself no longer turns the parent into null in this case, which matches the attribute-level form (#3049)
  • New JoinRowReducer (Beta) reduces the rows of a join query into root objects and links the joined objects to them, for to-one and to-many relations over inner and outer joins. Columns are named relative to the relation prefix, one type is one table, so a table row is one instance no matter through how many relations the query reaches it, and reducers nest for deeper graphs (#1574)
  • New RowView.getColumn(String) and RowView.getColumn(int) return a column value as the JDBC driver returns it from ResultSet.getObject, without a column mapper. New RowView.getColumnNames() returns the column labels of the result set, and RowView.getRow(RowMapper) maps the current row with a given mapper (#1574)
  • Add BindListStyle to render bindList / @BindList elements as single-column rows, (:a),(:b), for use with the SQL VALUES list constructor. Configure it with SqlStatements#setBindListStyle or @BindList(style = BindListStyle.ROWS) (#1550, Alpha)
  • Add LocalTransactionHandler.managed(): Jdbi manages transactions on connections with autocommit disabled instead of joining them, e.g. on a pool that disables autocommit as a precaution. inTransaction commits, retry handlers such as SerializableTransactionRunner engage, and a statement executed outside of a transaction is not committed. (#2663, #1733)
  • Add NoOpTransactionHandler for connections whose transactions an external framework manages, e.g. a Spring TransactionAwareDataSourceProxy or an XA data source. It never reads or changes the transaction state of the connection. CMTTransactionHandler now extends it, with unchanged behavior. (#2742, thanks @​bekoenig for the suggestion!)
  • Document the transaction contract for connections with autocommit disabled: the handle joins the transaction that the connection owner manages. New "Transactions managed outside Jdbi" section in the User Guide, with tests that pin the contract. (#1039, #2663)
  • Document how @PropagateNull resolves its column: on a class, the column name is relative to the mapper prefix (from @Nested or from a mapper made with a prefix), so one class maps under different prefixes. New "Using @PropagateNull" section in the User Guide, with tests for mappers made with a prefix. (#1764)
  • Fix JdbiExtension losing its plugins and initializer after afterAll, so a static extension whose test class ran a second time in the same JVM (a Surefire rerun of a failed test, or a @Nested class selected as its own test class) restarted with a bare Jdbi and failed with NoSuchMapperException or NoSuchExtensionException (#3036)
  • vavr: update to vavr 1.0.1. The vavr 1.0.0-alpha releases remain unsupported (#2350)
  • Fix repeated @RegisterKotlinMapper annotations on one method or type. Kotlin wrapped them in a generated container that Jdbi did not process, so none of the mappers were registered and rows mapped through the

... (truncated)

Changelog

Sourced from org.jdbi:jdbi3-sqlobject's changelog.

3.55.0

  • Bind and map types that are not public: a package-private bean class with public accessors, a non-public constructor or @JdbiConstructor factory method, or a package-private Immutables value type. mapToBean now also uses a non-public no-arg constructor, e.g. a private one on a public bean. The ReflectionMappers accessible object strategy controls this. Unlike FieldMapper, these mappers apply the strategy in effect when a type is first used and cache the result for the Jdbi instance, so set the strategy on the Jdbi before first use, not on a Handle or statement. A ConstructorMapper for a type that Jdbi can not access now fails on first use, with a message that names the fix, instead of at creation (#1684)
  • Fix KotlinMapper ignoring a SQL NULL for a @PropagateNull constructor parameter or property of a non-null primitive type such as Long or Int. The column mapper returned 0 (or false) and the object was mapped instead of null. KotlinMapper now treats the NULL as null like the ConstructorMapper, FieldMapper, and BeanMapper do (#3048)
  • Fix a @Nested Optional<T> attribute that held null instead of Optional.empty() when T used the class-level @PropagateNull("column") form and that column was null. A @PropagateNull on the Optional attribute itself no longer turns the parent into null in this case, which matches the attribute-level form (#3049)
  • New JoinRowReducer (Beta) reduces the rows of a join query into root objects and links the joined objects to them, for to-one and to-many relations over inner and outer joins. Columns are named relative to the relation prefix, one type is one table, so a table row is one instance no matter through how many relations the query reaches it, and reducers nest for deeper graphs (#1574)
  • New RowView.getColumn(String) and RowView.getColumn(int) return a column value as the JDBC driver returns it from ResultSet.getObject, without a column mapper. New RowView.getColumnNames() returns the column labels of the result set, and RowView.getRow(RowMapper) maps the current row with a given mapper (#1574)
  • Add BindListStyle to render bindList / @BindList elements as single-column rows, (:a),(:b), for use with the SQL VALUES list constructor. Configure it with SqlStatements#setBindListStyle or @BindList(style = BindListStyle.ROWS) (#1550, Alpha)
  • Add LocalTransactionHandler.managed(): Jdbi manages transactions on connections with autocommit disabled instead of joining them, e.g. on a pool that disables autocommit as a precaution. inTransaction commits, retry handlers such as SerializableTransactionRunner engage, and a statement executed outside of a transaction is not committed. (#2663, #1733)
  • Add NoOpTransactionHandler for connections whose transactions an external framework manages, e.g. a Spring TransactionAwareDataSourceProxy or an XA data source. It never reads or changes the transaction state of the connection. CMTTransactionHandler now extends it, with unchanged behavior. (#2742, thanks @​bekoenig for the suggestion!)
  • Document the transaction contract for connections with autocommit disabled: the handle joins the transaction that the connection owner manages. New "Transactions managed outside Jdbi" section in the User Guide, with tests that pin the contract. (#1039, #2663)
  • Document how @PropagateNull resolves its column: on a class, the column name is relative to the mapper prefix (from @Nested or from a mapper made with a prefix), so one class maps under different prefixes. New "Using @PropagateNull" section in the User Guide, with tests for mappers made with a prefix. (#1764)
  • Fix JdbiExtension losing its plugins and initializer after afterAll, so a static extension whose test class ran a second time in the same JVM (a Surefire rerun of a failed test, or a @Nested class selected as its own test class) restarted with a bare Jdbi and failed with NoSuchMapperException or NoSuchExtensionException (#3036)
  • vavr: update to vavr 1.0.1. The vavr 1.0.0-alpha releases remain unsupported (#2350)
  • Fix repeated @RegisterKotlinMapper annotations on one method or type. Kotlin wrapped them in a generated container that Jdbi did not process, so none of the mappers were registered and rows mapped through the unprefixed KotlinMapperFactory mapper, ignoring the prefix. The annotation now uses

... (truncated)

Commits
  • a20642a [maven-release-plugin] prepare release v3.55.0
  • a7df034 Release notes 3.55.0
  • d43955b Merge remote-tracking branch 'origin/claude-nested-optional-propagate-null'
  • 06b6682 Merge pull request #3048 from jdbi/claude-kotlin-propagate-null-primitive
  • a3be71c Return Optional.empty() for a nested Optional with class-level @​PropagateNull
  • c52bb43 Map a SQL NULL to null for a @​PropagateNull primitive in KotlinMapper
  • 6f8de68 Merge pull request #3047 from jdbi/claude-accessible-lookup-1684
  • 4570efc Merge pull request #3043 from jdbi/claude-propagate-null-docs-1764
  • 793b789 Document how @​PropagateNull resolves its column under a mapper prefix
  • 88a246a Apply the accessible object strategy to beans, constructors, and Immutables
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Oct 5, 2026
Bumps `jdbi` from 3.49.6 to 3.55.0.

Updates `org.jdbi:jdbi3-core` from 3.49.6 to 3.55.0
- [Release notes](https://github.com/jdbi/jdbi/releases)
- [Changelog](https://github.com/jdbi/jdbi/blob/master/RELEASE_NOTES.md)
- [Commits](jdbi/jdbi@v3.49.6...v3.55.0)

Updates `org.jdbi:jdbi3-sqlobject` from 3.49.6 to 3.55.0
- [Release notes](https://github.com/jdbi/jdbi/releases)
- [Changelog](https://github.com/jdbi/jdbi/blob/master/RELEASE_NOTES.md)
- [Commits](jdbi/jdbi@v3.49.6...v3.55.0)

---
updated-dependencies:
- dependency-name: org.jdbi:jdbi3-core
  dependency-version: 3.55.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.jdbi:jdbi3-sqlobject
  dependency-version: 3.55.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/gradle/jdbi-3.55.0 branch from 4a8871d to b0f3459 Compare October 5, 2026 15:06
@darbyjack

Copy link
Copy Markdown
Member

Closing rather than merging. jdbi 3.55.0 is compiled for Java 17, and Java 11 is this plugin's documented runtime floor with 1.8.8 still supported. A Java 11 or older server would throw UnsupportedClassVersionError when Quark loads it at startup, and 1.8.8 servers may be on Java 8.

This is the constraint #781 pinned the dependency back for. jdbi stays at 3.49.6, the last Java 11 release.

CI did not catch this, which is the real finding: testJava11 runs on a Java 11 JVM, but the libraries Quark downloads at runtime sit on the quark configuration, which is on no test classpath, so no test ever loads them. Both checks on this PR were green.

Closing via dependabot's ignore directive so it stops reopening daily.

@darbyjack darbyjack closed this Oct 5, 2026
@dependabot @github

dependabot Bot commented on behalf of github Oct 5, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/gradle/jdbi-3.55.0 branch October 5, 2026 16:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant