This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch misc-hardening__MATH-1691
in repository https://gitbox.apache.org/repos/asf/commons-math.git

commit 7f9061404e555e2b98923dad47e52f1484325ceb
Author: Gilles Sadowski <[email protected]>
AuthorDate: Sun Sep 27 18:35:53 2026 +0200

    MATH-1691: Inconsistent synchronization.
    
    Found by a security scan.
---
 .../analysis/polynomials/PolynomialsUtils.java     | 25 ++++++++++++----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialsUtils.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialsUtils.java
index 3a7c07e44..01648b615 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialsUtils.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialsUtils.java
@@ -229,17 +229,20 @@ public final class PolynomialsUtils {
         final JacobiKey key = new JacobiKey(v, w);
 
         if (!JACOBI_COEFFICIENTS.containsKey(key)) {
-
-            // allocate a new list for v, w
-            final List<BigFraction> list = new ArrayList<>();
-            JACOBI_COEFFICIENTS.put(key, list);
-
-            // Pv,w,0(x) = 1;
-            list.add(BigFraction.ONE);
-
-            // P1(x) = (v - w) / 2 + (2 + v + w) * X / 2
-            list.add(BigFraction.of(v - w, 2));
-            list.add(BigFraction.of(2 + v + w, 2));
+            synchronized(JACOBI_COEFFICIENTS) {
+                if (!JACOBI_COEFFICIENTS.containsKey(key)) {
+                    // allocate a new list for v, w
+                    final List<BigFraction> list = new ArrayList<>();
+                    JACOBI_COEFFICIENTS.put(key, list);
+
+                    // Pv,w,0(x) = 1;
+                    list.add(BigFraction.ONE);
+
+                    // P1(x) = (v - w) / 2 + (2 + v + w) * X / 2
+                    list.add(BigFraction.of(v - w, 2));
+                    list.add(BigFraction.of(2 + v + w, 2));
+                }
+            }
         }
 
         return buildPolynomial(degree, JACOBI_COEFFICIENTS.get(key),

Reply via email to