[ https://issues.apache.org/jira/browse/JENA-597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Scott Patterson updated JENA-597: --------------------------------- Description: The following exception may occur 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:339) at org.apache.jena.atlas.lib.cache.CacheLRU.get(CacheLRU.java:53) at org.apache.jena.riot.system.IRIResolver$IRIResolverNormal.resolveSilent(IRIResolver.java:427) at org.apache.jena.riot.system.IRIResolver$IRIResolverNormal.<init>(IRIResolver.java:383) at org.apache.jena.riot.system.IRIResolver.create(IRIResolver.java:210) 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.lang.LangRDFXML.<init>(LangRDFXML.java:104) at org.apache.jena.riot.lang.LangRDFXML.create(LangRDFXML.java:74) at org.apache.jena.riot.RiotReader.createParser(RiotReader.java:128) at org.apache.jena.riot.RDFParserRegistry$ReaderRIOTFactoryImpl$1.read(RDFParserRegistry.java:141) at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:818) at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:258) at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:244) at org.apache.jena.riot.adapters.RDFReaderRIOT.read(RDFReaderRIOT.java:69) at com.ibm.team.jis.lqe.resource.RDFEntity.getModel(RDFEntity.java:361) ... 39 more This may be related to the problem reported that is suppose to be fixed by the cloned issue. It looks to be the same stack trace. I've attached a test to reproduce. Works with Oracle 7 JRE but not IBM 7. was: 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 > 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 7 or higher > Reporter: Scott Patterson > Assignee: Andy Seaborne > Attachments: IRIResolverTest.java > > > The following exception may occur 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:339) > at org.apache.jena.atlas.lib.cache.CacheLRU.get(CacheLRU.java:53) > at > org.apache.jena.riot.system.IRIResolver$IRIResolverNormal.resolveSilent(IRIResolver.java:427) > at > org.apache.jena.riot.system.IRIResolver$IRIResolverNormal.<init>(IRIResolver.java:383) > at org.apache.jena.riot.system.IRIResolver.create(IRIResolver.java:210) > 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.lang.LangRDFXML.<init>(LangRDFXML.java:104) > at org.apache.jena.riot.lang.LangRDFXML.create(LangRDFXML.java:74) > at org.apache.jena.riot.RiotReader.createParser(RiotReader.java:128) > at > org.apache.jena.riot.RDFParserRegistry$ReaderRIOTFactoryImpl$1.read(RDFParserRegistry.java:141) > at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:818) > at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:258) > at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:244) > at > org.apache.jena.riot.adapters.RDFReaderRIOT.read(RDFReaderRIOT.java:69) > at com.ibm.team.jis.lqe.resource.RDFEntity.getModel(RDFEntity.java:361) > ... 39 more > This may be related to the problem reported that is suppose to be fixed by > the cloned issue. It looks to be the same stack trace. I've attached a test > to reproduce. Works with Oracle 7 JRE but not IBM 7. -- This message was sent by Atlassian JIRA (v6.1#6144)