Scott Patterson created JENA-597:
------------------------------------
Summary: IRIResolverNormal needs thread safe CacheLRU
Key: JENA-597
URL: https://issues.apache.org/jira/browse/JENA-597
Project: Apache Jena
Issue Type: Bug
Components: ARQ
Affects Versions: Jena 2.10.1
Environment: Any IBM JRE 6 or higher
Reporter: Scott Patterson
Assignee: Andy Seaborne
Fix For: Jena 2.11.0
The following exception may occur on an IBM JRE 6 or higher when more than one
thread requires access to the org.apache.jena.atlas.lib.cache.CacheLRU embedded
in IRIResolverNormal:
Caused by: java.lang.NullPointerException
at java.util.LinkedHashMap.get(LinkedHashMap.java:337)
at org.apache.jena.atlas.lib.cache.CacheLRU.get(CacheLRU.java:53)
at
org.apache.jena.riot.system.IRIResolver$IRIResolverNormal.resolveSilent(IRIResolver.java:403)
at
org.apache.jena.riot.system.IRIResolver$IRIResolverNormal.<init>(IRIResolver.java:359)
at org.apache.jena.riot.system.IRIResolver.create(IRIResolver.java:212)
at org.apache.jena.riot.system.RiotLib.profile(RiotLib.java:141)
at org.apache.jena.riot.system.RiotLib.profile(RiotLib.java:130)
at org.apache.jena.riot.system.RiotLib.profile(RiotLib.java:117)
at
org.apache.jena.riot.RiotReader.createParserTurtle(RiotReader.java:310)
at org.apache.jena.riot.RiotReader.createParser(RiotReader.java:142)
at org.apache.jena.riot.RiotReader.createParser(RiotReader.java:133)
at
org.apache.jena.riot.RDFParserRegistry$ReaderRIOTFactoryImpl$1.read(RDFParserRegistry.java:141)
at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:760)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:258)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:244)
... 20 more
The problem seems to only occurs on IBM JRE 6 or higher as its implementation
of LinkedHashMap is not thread safe. Note that the JDK specification does not
required LinkedHashMap to be thread safe.
The solution is to make use of CacheFactory.createSync when creating the Cache
in the IRIResolverNormal. Patch attached
--
This message was sent by Atlassian JIRA
(v6.1#6144)