[ https://issues.apache.org/jira/browse/MATH-757?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13482623#comment-13482623 ]
Phil Steitz commented on MATH-757: ---------------------------------- Good catch on the extraneous should Contract above. That only has relevance in the addElementRolling method, so I would see the above change as safe. On the other point, I disagree. This class is by nature mutable - it maintains a dynamic data structure. To make it threadsafe, we would have to protect all of the data members. The protected methods are there to allow subclasses to override specific behaviors. Eliminating mutability of exposed properties limits the functionality of the class. We don't use that mutability now in [math], but the class is public and others may use it. The key point is that making things like expansion factor and expansion mode immutable does little / nothing to move toward threadsafety, while limiting functionality. > ResizableDoubleArray is not thread-safe yet has some synch. methods > ------------------------------------------------------------------- > > Key: MATH-757 > URL: https://issues.apache.org/jira/browse/MATH-757 > Project: Commons Math > Issue Type: Bug > Reporter: Sebb > Fix For: 3.1 > > > ResizableDoubleArray has several synchronised methods, but is not > thread-safe, because class variables are not always accessed using the lock. > Is the class supposed to be thread-safe? > If so, all accesses (read and write) need to be synch. > If not, the synch. qualifiers could be dropped. > In any case, the protected fields need to be made private. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira