[ 
https://issues.apache.org/jira/browse/MATH-188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12565258#action_12565258
 ] 

Sebb commented on MATH-188:
---------------------------

Thread safety also depends on visibility - final fields are guaranteed to be 
visible to all threads on exit from the constructor; non-final fields are not.
[c.f. String which changed to using final fields in Java 1.5]

So it seems to me that it would be worth making Fraction immutable (patch to 
follow).

As to Complex, sorry I'd not noticed that the fields were protected. So 
deprecate then privatise/finalise would be "a good idea".

> Make Complex and Fraction classes immutable and thus thread-safe
> ----------------------------------------------------------------
>
>                 Key: MATH-188
>                 URL: https://issues.apache.org/jira/browse/MATH-188
>             Project: Commons Math
>          Issue Type: Improvement
>            Reporter: Sebb
>
> There are many classes with instance fields that could be made final.
> Two in particular seem like ideal candidates:
> Complex - fields: real, imaginary
> Fraction - fields: numerator, denominator (the private reduce() method also 
> needs to be inlined)
> As far as I can tell, making the above changes makes the classes immutable 
> and therefore threadsafe.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to