Skip to content

chore(deps): bump org.ehcache:ehcache from 3.10.8 to 3.12.0 in /dhis-2#23834

Merged
github-actions[bot] merged 2 commits into
masterfrom
dependabot-maven-dhis-2-org.ehcache-ehcache-3.12.0
May 12, 2026
Merged

chore(deps): bump org.ehcache:ehcache from 3.10.8 to 3.12.0 in /dhis-2#23834
github-actions[bot] merged 2 commits into
masterfrom
dependabot-maven-dhis-2-org.ehcache-ehcache-3.12.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github May 7, 2026

Copy link
Copy Markdown
Contributor

Bumps org.ehcache:ehcache from 3.10.8 to 3.12.0.

Release notes

Sourced from org.ehcache:ehcache's releases.

3.11.1

Getting started

This new minor release of Ehcache 3 is the first new release under IBM ownership. It adds support for shared resource pools between unclustered caches. It also contains a fix for a hashing denial of service performance regression (#3268).

[!NOTE] Ehcache 3.11 with be the last minor release line to support Java 8. The next release line will advance the Java baseline to 17.

Ehcache 3.11.1 has been released to maven central under the following coordinates:

Main module

<dependency>
  <groupId>org.ehcache</groupId>
  <artifactId>ehcache</artifactId>
  <version>3.11.1</version>
  <!-- <classifier>jakarta</classifier> -->
</dependency>

or

implementation('org.ehcache:ehcache:3.11.1') {
//  capabilities {
//    requireCapability('org.ehcache:ehcache-jakarta')
//  }
}

Transactions module

<dependency>
  <groupId>org.ehcache</groupId>
  <artifactId>ehcache-transactions</artifactId>
  <version>3.11.1</version>
  <!-- <classifier>jakarta</classifier> -->
</dependency>

or

implementation('org.ehcache:ehcache-transactions:3.11.1') {
//  capabilities {
//    requireCapability('org.ehcache:ehcache-transactions-jakarta')
//  }
}

Clustering module

... (truncated)

Commits

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 [org.ehcache:ehcache](https://github.com/ehcache/ehcache3) from 3.10.8 to 3.12.0.
- [Release notes](https://github.com/ehcache/ehcache3/releases)
- [Commits](ehcache/ehcache3@v3.10.8...v3.12.0)

---
updated-dependencies:
- dependency-name: org.ehcache:ehcache
  dependency-version: 3.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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 May 7, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) May 7, 2026 01:23
@github-actions
github-actions Bot merged commit fb8b420 into master May 12, 2026
16 checks passed
@github-actions
github-actions Bot deleted the dependabot-maven-dhis-2-org.ehcache-ehcache-3.12.0 branch May 12, 2026 10:55
enricocolasante added a commit that referenced this pull request Jul 16, 2026
The Ehcache 3.12 bump (#23834 / #24002) switched the on-heap L2 store to the
JSR-107 store-by-value default, implemented by SerializingCopier: a full Java
serialize/deserialize round-trip on every cache get and putFromLoad. Profiling a
production tracker import (DHIS2-21800) showed this dominates: ~50% of the thread
profile serializing entities under the AbstractReadWriteAccess ReentrantReadWriteLock
(READ_WRITE strategy), manifesting as long "waited" time (park on the lock, not
blocked) and heavy transient allocation that drives frequent young-gen GC; it also
made requests hold their DB connection for the whole duration, draining the pool.

Configure an explicit IdentityCopier on defaultCacheTemplate so the mapped entity
and query regions store by reference, overriding the JSR-107 by-value semantics
(Ehcache logs "overwriting JSR-107 by-value semantics"). This restores the pre-3.12
(Ehcache 2.x) behaviour and eliminates the redundant copy: Hibernate's L2 contract
already isolates callers at the type level - entity CacheEntry state is deep-copied
on disassemble/assemble (e.g. JsonBinaryType.assemble -> deepCopy) and all immutable
custom UserTypes share safely.

Add EhcacheStoreByReferenceTest, which loads the real ehcache.xml through the JSR-107
path (as JCacheRegionFactory does, storeByValue=true) and asserts a get returns the
same instance that was put. Update CachedEntityJsonbSerializableTest's Javadoc: the
Serializable requirement still holds (UserType#disassemble returns Serializable and
Hibernate stores a Serializable[]), and that test keeps running store-by-value via an
empty cache config, so it remains a strict guard.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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