Hi all,
very sometimes (it is a rare and impossibly difficult to reproduce) we run
into a problem which I can only explain by a concurrency violation. The
stack trace we typically encounter is below. I know that the concrete NPE
which comes as a result is specific to the IBM JDK because of the way they
implement LinkedHashMap, but the bug is not theirs. That the Sun SDK does
not immediately expose the issue is mere luck. Looking at the IRIResolver
code, it seems to me that the cache inside the IRIResolveNormal (
resolvedIRIs) ought to be using a concurrent linked hashMap since there is
only one global cache which can be used by many threads.
Any thoughts?
Thanks
Simon
java.lang.NullPointerException
at java.util.LinkedHashMap.get(LinkedHashMap.java:324)
at org.openjena.atlas.lib.cache.CacheLRU.get(CacheLRU.java:41)
at
org.openjena.atlas.lib.cache.CacheWrapper.get(CacheWrapper.java:29)
at
org.openjena.atlas.lib.cache.CacheWithGetter.get(CacheWithGetter.java:26)
at
org.openjena.riot.IRIResolver$IRIResolverNormal.resolveSilent(IRIResolver.java:377)
at
org.openjena.riot.IRIResolver$IRIResolverNormal.resolveToString(IRIResolver.java:363)
at
org.openjena.riot.IRIResolver.resolveGlobalToString(IRIResolver.java:78)
at
org.openjena.riot.JenaReaderRIOT.readImpl(JenaReaderRIOT.java:121)
at org.openjena.riot.JenaReaderRIOT.read(JenaReaderRIOT.java:40)
at
com.ibm.team.jfs.indexing.service.internal.rdf.RDFUtil.readNTriples(RDFUtil.java:166)