[ 
https://issues.apache.org/jira/browse/JENA-597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Scott Patterson updated JENA-597:
---------------------------------

    Affects Version/s:     (was: Jena 2.10.1)
                       Jena 2.11.0

> 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.11.0
>         Environment: Any IBM JRE 6 or higher
>            Reporter: Scott Patterson
>            Assignee: Andy Seaborne
>
> 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)

Reply via email to