Uploaded image for project: 'Apache Jena'
  1. Apache Jena
  2. JENA-597

IRIResolverNormal needs thread safe CacheLRU

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • Jena 2.11.0
    • Jena 2.11.1
    • ARQ
    • None
    • IBM Websphere 8 JRE

    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 Oracle JRE 1.6.0.27 but not IBM jre. Keep stopping and restarting the test until the NPE happens. NPE usually happens right off the start.

      Attachments

        1. JENA-597-2.patch
          4 kB
          Andy Seaborne
        2. JENA-597-1.patch
          0.7 kB
          Andy Seaborne
        3. IRIResolverTest.java
          0.7 kB
          Scott Patterson

        Issue Links

          Activity

            People

              andy Andy Seaborne
              spatterson@us.ibm.com Scott Patterson
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: