[ 
https://issues.apache.org/jira/browse/MATH-1294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Neidhart resolved MATH-1294.
-----------------------------------
       Resolution: Fixed
    Fix Version/s: 3.6
                   4.0

Thanks for the report. It has been fixed in the following commits:

 * 3.6: fe23c9b04
 * 4.0: 487ac1980

The synchronization is now also on the coefficient list itself (which must be 
non-null), and thus there should be a slight performance improvement when 
creating different polynomials in multiple threads.

> Data race PolynomialUtils::buildPolynomial
> ------------------------------------------
>
>                 Key: MATH-1294
>                 URL: https://issues.apache.org/jira/browse/MATH-1294
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 4.0
>            Reporter: Kamil Włodarczyk
>            Priority: Minor
>              Labels: easyfix, performance
>             Fix For: 4.0, 3.6
>
>
> If you run PolynomialUtilsTest methods concurrently there will occur problem 
> with ComparisonFailure due to incorrect building of coefficient list. 
> https://github.com/apache/commons-math/blob/master/src/main/java/org/apache/commons/math4/analysis/polynomials/PolynomialsUtils.java#L368
>  should be in synchronized block. Explanation: polynomial of given degree can 
> be created by other thread  and when primary thread access synchronized 
> block, there is already created coefficients for this degree, therefore no 
> coefficients should be added to coefficients list.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to