Skip to content

TRUNK-6706: Disable hibernate.generate_statistics by default#6354

Open
Janani-Balasooriya wants to merge 2 commits into
openmrs:masterfrom
Janani-Balasooriya:TRUNK-6706
Open

TRUNK-6706: Disable hibernate.generate_statistics by default#6354
Janani-Balasooriya wants to merge 2 commits into
openmrs:masterfrom
Janani-Balasooriya:TRUNK-6706

Conversation

@Janani-Balasooriya

@Janani-Balasooriya Janani-Balasooriya commented Jul 20, 2026

Copy link
Copy Markdown

Description of what I changed

Changed the default value of hibernate.generate_statistics in api/src/main/resources/hibernate.default.properties from true to false. Statistics generation maintains counters on every query, entity, collection, and cache operation, and the only consumer in core is a shutdown-time debug log dump, so this default was adding overhead for data that's almost never read.

No code changes were needed to preserve explicit overrides:
HibernateContextDAO.mergeDefaultRuntimeProperties() already only applies a default when the key isn't already present in the user's runtime properties, so anyone setting hibernate.generate_statistics=true themselves will have that value preserved.

Added two unit tests to ContextDAOTest.java:

  • should_defaultGenerateStatisticsToFalse()
  • should_notOverrideExplicitGenerateStatisticsSetting()

Note: I noticed three tests in ContextTest.java check cache eviction using Hibernate's statistics counter, which no longer updates by default after this change. Flagging in case a follow-up is wanted, happy to help fix if so.

I noticed this ticket is labeled backport. Should this fix also be applied to older maintained branches, or is that handled separately by the team?

Issue I worked on

see https://issues.openmrs.org/browse/TRUNK-6706

Checklist: I completed these to help reviewers :)

  • My IDE is configured to follow the code style of this project.

    No? Unsure? -> configure your IDE, format the code and add the changes with git add . && git commit --amend

  • I have added tests to cover my changes. (If you refactored
    existing code that was well tested you do not have to add tests)

    No? -> write tests and add them to this commit git add . && git commit --amend

  • I ran ./mvnw clean package right before creating this pull request and
    added all formatting changes to my commit.

    No? -> execute above command

  • All new and existing tests passed.

    No? -> figure out why and add the fix to your commit. It is your responsibility to make sure your code works.

  • My pull request is based on the latest changes of the master branch.

    No? Unsure? -> execute command git pull --rebase upstream master

@dkayiwa

dkayiwa commented Jul 20, 2026

Copy link
Copy Markdown
Member

@claude review

Comment thread api/src/main/resources/hibernate.default.properties
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.58%. Comparing base (c21a7cb) to head (13ff9a6).

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #6354      +/-   ##
============================================
+ Coverage     59.45%   59.58%   +0.13%     
- Complexity     9555     9567      +12     
============================================
  Files           731      731              
  Lines         38399    38399              
  Branches       5598     5598              
============================================
+ Hits          22829    22879      +50     
+ Misses        13532    13479      -53     
- Partials       2038     2041       +3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sonarqubecloud

Copy link
Copy Markdown

@jwnasambu

Copy link
Copy Markdown
Contributor

@claude review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants