Skip to content

MATH-1693: Synchronize BaseRuleFactory.getRule - #343

Merged
aherbert merged 1 commit into
apache:masterfrom
insaf021:math-1693-baserulefactory-getrule
Oct 29, 2026
Merged

aherbert merged 1 commit into
apache:masterfrom
insaf021:math-1693-baserulefactory-getrule

Conversation

@insaf021

Copy link
Copy Markdown
Contributor

BaseRuleFactory.getRule reads and writes the pointsAndWeightsDouble TreeMap outside the lock that guards getRuleInternal, and factories are shared (IterativeLegendreGaussIntegrator holds a static GaussIntegratorFactory), so concurrent requests for different point counts corrupt the map; the new test, wrapped in assertTimeoutPreemptively as suggested on #340, fails on master with TreeMap NPEs ("Cannot read field "right" because "l" is null") or a 30s timeout from a lookup spinning in TreeMap.getEntry, and passes once getRule is synchronized.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.22%. Comparing base (f554608) to head (683841b).
⚠️ Report is 401 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master     #343      +/-   ##
============================================
+ Coverage     86.54%   87.22%   +0.67%     
+ Complexity     9787       91    -9696     
============================================
  Files           532      499      -33     
  Lines         35516    33530    -1986     
  Branches       6194     5851     -343     
============================================
- Hits          30738    29247    -1491     
+ Misses         3518     3164     -354     
+ Partials       1260     1119     -141     

☔ 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.

@aherbert
aherbert merged commit 85f7ee1 into apache:master Oct 29, 2026
11 of 12 checks passed
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.

3 participants