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

Florian Müller resolved CMIS-432.
---------------------------------

    Resolution: Not A Problem

> AbstractCmisService is not thread safe
> --------------------------------------
>
>                 Key: CMIS-432
>                 URL: https://issues.apache.org/jira/browse/CMIS-432
>             Project: Chemistry
>          Issue Type: Improvement
>          Components: opencmis-commons
>    Affects Versions: OpenCMIS 0.5.0
>            Reporter: Carlo Sciolla
>              Labels: concurrency, multithread, thread-safety
>
> The use of an unsynchronized HashMap for storing 
> AbstractCmisService.objectInfoMap (see AbstractCmisService.getObjectInfoMap) 
> makes it inherently thread unsafe. When extending that class, we ran in busy 
> waits on HashMap.get, which we fixed overriding the following two methods to 
> which we added the {{syncronized}} bit:
> {code:java}
>     @Override
>     public synchronized ObjectInfo getObjectInfo(String repositoryId, String 
> objectId) {
>         return super.getObjectInfo(repositoryId, objectId);
>     }
>     @Override
>     public synchronized void addObjectInfo(ObjectInfo objectInfo) {
>         super.addObjectInfo(objectInfo);
>     }
> {code}
> It would still be nice if thread safety is provided by the library itself 
> without the need for external synchronization.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to