Skip to content

Bump com.mchange:c3p0 from 0.14.1 to 0.14.2 - #26

Merged
jan-moxter merged 1 commit into
mainfrom
dependabot/maven/com.mchange-c3p0-0.14.2
Sep 11, 2026
Merged

jan-moxter merged 1 commit into
mainfrom
dependabot/maven/com.mchange-c3p0-0.14.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 10, 2026

Copy link
Copy Markdown
Contributor

Bumps com.mchange:c3p0 from 0.14.1 to 0.14.2.

Changelog

Sourced from com.mchange:c3p0's changelog.

c3p0-0.14.2 -- Guard against the possibility of "dueling Statement caches", where the Statement cache, when it goes to a Connection intending to prepare a new PreparedStatement, instead receives a reference to a Statement in a different cache, which our Statement cache may have already encountered, and so cached itself! Insidiously, such references might be re-cached under different keys than when we first encountered and cached them. We key on a variety of characteristics beyond the Statement's SQL text, including result_set_type, result_set_concurrency, autogeneratedKeys, and resultSetHoldability. These characteristics are immutable to us, but JDBC-driver-based caches may have access to PreparedStatement internals, and may simply mutate these properties prior to client checkout (or, less charitably, ignore them), and so return a reference we have already seen and cached under one key, but would now be cached under a distinct key! We do not want to track Statements whose putatively fixed properties may be evolving unbeknownst to our cache, and in fact, we presume that we receive fresh Statements whenever we ask a Connection to prepare a Statement. Dueling Statement caches constitute a pathological condition from our perspective. But it's a condition that does seem to occur in the wild, so we need to be resilient to it! When acquiring a new Statement from a Connection, we now check whether the Statement we receive is already in the cache. If it is, we do not recachethe new Statement, and we drop the Statement from the cache. It becomes from our perspective an uncached Statement (and per the fix just below, is marked for clean-up on checkin of its parent Connection). Thanks to Devil2-O on github for observing and reporting the failures that led us to diagnose this condition. -- Fix a potential Statement leak when (1) a Statement cache is full, and so a newly requested PreparedStatement is returned as an uncached "overload Statement"; and (2) the client omits to call close() on the Statement explicitly. In this case, the Statement ended up neither under the management (and subject to eventual closure) by the Statement cache, nor marked as an uncachedActiveStatement in NewPooledConnection, which would have subjected it to automatic closure on check-in. In short, nothing would ever close() such a Statement unless and until the physical Connection behind it was eventually retired and culled from the Connection pool. (On Connection.close() the JDBC driver would clean up any unclosed Statements against the Connection.) We now capture such "overload Statements" as uncachedActiveStatement, so they do get close()ed as soon as the Connection is checked in. -- Let "Claude" build a stress-testing harness (complete with instrumenting mock JDBC driver) to help track down rare Statement cache faults and inconsistencies. c3p0-0.14.1 -- Modify c3p0 to use new BeanInfoGen functionality, restoring compatability with Java [7,11). -- Modify BeanInfoGen to (optionally but by default) cache descriptors rather than regenerating for each call to an introspection method. -- Modify BeanInfoGen to log items skipped from descriptors due to API incompatibility. -- Modify BeanInfoGen to generate BeanInfo classes in which properties/events/methods that existed in the JVM under which they were generated and built, but do not exist under the runtime JVM are tolerate, simply omitted at runtime from BeanInfo descriptors. This fixes compatability with Java environments before Java 11, under whose API c3p0 and mchange-commons-java are currently built. (Thanks to Vlad Skarzhevskyy, @​skarzhevskyy on GitHub, for calling attention to this issue.) c3p0-0.14.0 -- Update to mill 1.1.6 and fix broken support for reproducible builds via the SOURCE_DATE_EPOCH environment variable.

... (truncated)

Commits
  • e52c210 Fix a javadoc error that broke test.docJar.
  • b63f0de Add release notes for c3p0 0.14.2
  • 47fa7dc Bump version for 0.14.2 final.
  • 42eb6a9 Exercise the duplicate-Statement guard against all three cache implementations.
  • 56549db Bump version to 0.14.2-SNAPSHOT.
  • af82f7b Update and cap CHANGELOG for 0.14.2
  • ad92045 Test that a driver reissuing Statements cannot poison the cache.
  • 1f28365 Update CHANGELOG with fixes toward 0.14.2.
  • d64e6a2 Log the duplicate-Statement stack trace only at FINE.
  • 3e90a6f Sweep up Statements the cache declines to keep, so they cannot leak.
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [com.mchange:c3p0](https://github.com/swaldman/c3p0) from 0.14.1 to 0.14.2.
- [Changelog](https://github.com/swaldman/c3p0/blob/v0.14.2/CHANGELOG)
- [Commits](swaldman/c3p0@v0.14.1...v0.14.2)

---
updated-dependencies:
- dependency-name: com.mchange:c3p0
  dependency-version: 0.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Sep 10, 2026
@dependabot
dependabot Bot requested a review from jan-moxter as a code owner September 10, 2026 15:24
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Sep 10, 2026
@jan-moxter
jan-moxter merged commit c46a707 into main Sep 11, 2026
1 check passed
@dependabot
dependabot Bot deleted the dependabot/maven/com.mchange-c3p0-0.14.2 branch September 11, 2026 21:50
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