[ https://issues.apache.org/jira/browse/MATH-1677?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Herbert resolved MATH-1677. -------------------------------- Resolution: Not A Problem > Inconsistent array cloning in AccurateMathLiteralArrays - loadLnMant() > returns shallow copy while other load methods return deep copies > ---------------------------------------------------------------------------------------------------------------------------------------- > > Key: MATH-1677 > URL: https://issues.apache.org/jira/browse/MATH-1677 > Project: Commons Math > Issue Type: Bug > Affects Versions: 3.6.1 > Reporter: Ruiqi Dong > Priority: Critical > Original Estimate: 0.5h > Remaining Estimate: 0.5h > > In the class > {{{}org.apache.commons.math4.core.jdkmath.AccurateMathLiteralArrays{}}}, the > method {{loadLnMant()}} returns a shallow copy of the two-dimensional array > {{{}LN_MANT{}}}, which is inconsistent with the behavior of other load > methods in the same class. For 2D arrays, {{clone()}} only copies the outer > array reference, leaving the inner arrays shared between the original and the > clone. This means modifications to the returned array can affect the original > constant data. > Test Case: > @Test > voidtestLoadLnMantShallowCopyIssue(){ > // Get first copy > double[][] firstCopy = AccurateMathLiteralArrays.loadLnMant(); > doubleoriginalValue = firstCopy[0][0]; > > // Modify the first copy > firstCopy[0][0] = originalValue + 999.0; > > // Get second copy > double[][] secondCopy = AccurateMathLiteralArrays.loadLnMant(); > > // This assertion fails - secondCopy contains the modified value > assertEquals(originalValue, secondCopy[0][0]); > } > > Test Result: > [*ERROR*] *AccurateMathLiteralArraysTest.testLoadLnMantShallowCopyIssue:169 > expected: <999.0> but was: <1998.0>* -- This message was sent by Atlassian Jira (v8.20.10#820010)