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
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