History | Log In     View a printable version of the current page. Get help!  
Issue Details [XML]

Key: SES-698
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Arjohn Kampman
Reporter: Nick Giles
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Sesame

AssertionError: Created a duplicate MemLiteral for literal 'x'

Created: 06/Jan/10 03:56 PM   Updated: 18/Jan/10 04:59 PM
Component/s: Memory Sail
Affects Version/s: 2.3.0
Fix Version/s: 2.3.1


 Description   
We are seeing this error in a small but noticeable number of cases. Inspecting the code of MemoryStore and MemValueFactory, it looks like there's a synchronisation issue. For this specific case, MemoryStore:532 checks whether its value factory knows about the literal, and if it doesn't the value factory is asked to create the literal. The creation method is synchronized, but the whole check and create should be inside the same synchronized block, probably in the value factory, since that is what is shared across threads. It looks like this has been split in order to differentiate the new and repeated literal cases.

 All   Comments   Change History      Sort Order:
Comment by Arjohn Kampman [18/Jan/10 04:59 PM]
The check for existing values and the creation of new ones is now combined in a single synchronized "getOrCreate" operation. Unfortunately, I haven't been able to reproduce the problem yet. Please let me know if you're still seeing this issue with the (likely) fix.