commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SANDBOX-408) CSVFormat describes itself as immutable, but it is not - in particular it is not thread-safe
Date Tue, 06 Mar 2012 23:45:59 GMT

    [ https://issues.apache.org/jira/browse/SANDBOX-408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13223827#comment-13223827
] 

Sebb commented on SANDBOX-408:
------------------------------

OK, good point about predefined formats.

The issue is not about making changes to an object after it has been shared (although that
is also important), it's about ensuring that the contents of an object are correctly published
to the other thread.

Queues that are designed for passing work items between threads must include sufficient synch.
to guarantee safe publication.

However, if thread A were to store the object directly into a field in thread B, there would
be no such guarantee.
                
> CSVFormat describes itself as immutable, but it is not - in particular it is not thread-safe
> --------------------------------------------------------------------------------------------
>
>                 Key: SANDBOX-408
>                 URL: https://issues.apache.org/jira/browse/SANDBOX-408
>             Project: Commons Sandbox
>          Issue Type: Bug
>          Components: CSV
>            Reporter: Sebb
>
> CSVFormat describes itself as immutable, but it is not @Immutable - the class fields
are all mutable.
> The methods that change the fields do so by creating a clone, and returning the changed
clone.
> So in a sense the class is immutable.
> However, the normal expectation is that @Immutable classes are @ThreadSafe.
> CSVFormat is not thread-safe, because the fields are not volatile, and the fields are
not written & read using a common lock.
> The comment needs to be clarified or removed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message