Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
OpenCMIS 0.5.0
-
None
Description
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:
@Override public synchronized ObjectInfo getObjectInfo(String repositoryId, String objectId) { return super.getObjectInfo(repositoryId, objectId); } @Override public synchronized void addObjectInfo(ObjectInfo objectInfo) { super.addObjectInfo(objectInfo); }
It would still be nice if thread safety is provided by the library itself without the need for external synchronization.