Hi Paolo, Andy, others,
I was able to reproduce the problem (somewhat) by tweaking
TestTransSystem. Please find the patch attached. I get the exception below
almost instantly, although this time it complains about the predicate.
However, when I tried debugging this, I also ran in the version where it
complains the object was null. Either way, it seems to reliably reproduce
the problem. I'll re-open JENA-91 and we can move the discussion there
Simon
START (disk, 100 iterations)
000: ..java.lang.UnsupportedOperationException: Quad: predicate cannot be
null
at com.hp.hpl.jena.sparql.core.Quad.<init>(Quad.java:49)
at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:127)
at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:118)
at com.hp.hpl.jena.tdb.lib.TupleLib.access$1(TupleLib.java:114)
at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:76)
at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:1)
at org.openjena.atlas.iterator.Iter$4.next(Iter.java:268)
at
com.hp.hpl.jena.tdb.store.GraphTDBBase$ProjectQuadsToTriples.next(
GraphTDBBase.java:183)
at
com.hp.hpl.jena.tdb.store.GraphTDBBase$ProjectQuadsToTriples.next(
GraphTDBBase.java:1)
at com.hp.hpl.jena.util.iterator.WrappedIterator.next(
WrappedIterator.java:68)
at com.hp.hpl.jena.util.iterator.Map1Iterator.next(
Map1Iterator.java:35)
at com.hp.hpl.jena.util.iterator.WrappedIterator.next(
WrappedIterator.java:68)
at com.hp.hpl.jena.rdf.model.impl.StmtIteratorImpl.next(
StmtIteratorImpl.java:33)
at com.hp.hpl.jena.rdf.model.impl.StmtIteratorImpl.next(
StmtIteratorImpl.java:21)
at com.hp.hpl.jena.tdb.transaction.TestTransSystem.readModel(
TestTransSystem.java:446)
at com.hp.hpl.jena.tdb.transaction.TestTransSystem.access$1(
TestTransSystem.java:438)
at com.hp.hpl.jena.tdb.transaction.TestTransSystem$Reader.call(
TestTransSystem.java:163)
at java.util.concurrent.FutureTask$Sync.innerRun(
FutureTask.java:314)
at java.util.concurrent.FutureTask.run(FutureTask.java:149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
ThreadPoolExecutor.java:897)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:919)
at java.lang.Thread.run(Thread.java:736)
From:
Andy Seaborne <[email protected]>
To:
[email protected]
Date:
09/13/2011 12:52 PM
Subject:
Re: Jena-91 still an issue (?)
Hi Simon,
On 13/09/11 16:58, Simon Helsen wrote:
> Hi everyone,
>
> after my leave, I spent some time adopting the latest TDB-TX build
(August
> 31) and I noticed I kept seeing the same problems as before. After some
> messing around, I noticed that the patch Paolo attached to Jena-91 was
not
> actually applied to the sources in this latest TDB 0.9.0 snapshot (
> tx-tdb-0.9.0-20110831.124751-10). When I updated the tx-TDB component
from
> SVN and looked NodeTableTrans, it seemed that the patch was not applied
> there either, so perhaps it was not actually delivered ? Paolo, can you
> please verify this?
There is a fix in the Aug 31 build that addressed the Report_JENA91
tests - it's not that patch though. Further investigation found a
deeper problem that the patch perturbed, but did not necessarily fix.
> Anyhow, I manually applied the patch on this build, but I keep running
> into the same problems. The first exception that shows is :
Is your copy of ARQ in step with that TDB build?
>
> java.lang.UnsupportedOperationException: Quad: object cannot be null
> at com.hp.hpl.jena.sparql.core.Quad.<init>(Quad.java:50)
> at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:127)
> at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:118)
> at
com.hp.hpl.jena.tdb.lib.TupleLib.access$100(TupleLib.java:32)
> at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:76)
> at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:72)
> at org.openjena.atlas.iterator.Iter$4.next(Iter.java:267)
> at
> com.hp.hpl.jena.tdb.store.GraphTDBBase$ProjectQuadsToTriples.next(
> GraphTDBBase.java:183)
> at
> com.hp.hpl.jena.tdb.store.GraphTDBBase$ProjectQuadsToTriples.next(
> GraphTDBBase.java:171)
> at com.hp.hpl.jena.util.iterator.WrappedIterator.next(
> WrappedIterator.java:68)
> at com.hp.hpl.jena.util.iterator.Map1Iterator.next(
> Map1Iterator.java:35)
> at com.hp.hpl.jena.util.iterator.WrappedIterator.next(
> WrappedIterator.java:68)
> at com.hp.hpl.jena.rdf.model.impl.StmtIteratorImpl.next(
> StmtIteratorImpl.java:33)
> at com.hp.hpl.jena.rdf.model.impl.StmtIteratorImpl.next(
> StmtIteratorImpl.java:21)
>
> and after that I also see
>
> 11:40:43,857 [jazz.jfs.resuming.indexer.internal.triple] ERROR
> com.ibm.team.jfs - Originating
> Exception:
> com.hp.hpl.jena.tdb.base.file.FileException:
> ObjectFile.read(61)[361][361]: Impossibly large object : 1869495647
bytes
> at com.hp.hpl.jena.tdb.base.objectfile.ObjectFileStorage.read(
> ObjectFileStorage.java:282)
> at com.hp.hpl.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:60)
> at
> com.hp.hpl.jena.tdb.nodetable.NodeTableNative.readNodeFromTable(
> NodeTableNative.java:164)
> at
> com.hp.hpl.jena.tdb.nodetable.NodeTableNative._retrieveNodeByNodeId(
> NodeTableNative.java:88)
> at
com.hp.hpl.jena.tdb.nodetable.NodeTableNative.getNodeForNodeId(
> NodeTableNative.java:59)
> at
> com.hp.hpl.jena.tdb.nodetable.NodeTableCache._retrieveNodeByNodeId(
> NodeTableCache.java:89)
> at
com.hp.hpl.jena.tdb.nodetable.NodeTableCache.getNodeForNodeId(
> NodeTableCache.java:60)
> at
> com.hp.hpl.jena.tdb.nodetable.NodeTableWrapper.getNodeForNodeId(
> NodeTableWrapper.java:44)
> at
com.hp.hpl.jena.tdb.nodetable.NodeTableInline.getNodeForNodeId(
> NodeTableInline.java:56)
> at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:125)
> at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:118)
> at
com.hp.hpl.jena.tdb.lib.TupleLib.access$100(TupleLib.java:32)
> at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:76)
> at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:72)
> at org.openjena.atlas.iterator.Iter$4.next(Iter.java:267)
> at
> com.hp.hpl.jena.tdb.store.GraphTDBBase$ProjectQuadsToTriples.next(
> GraphTDBBase.java:183)
> at
> com.hp.hpl.jena.tdb.store.GraphTDBBase$ProjectQuadsToTriples.next(
> GraphTDBBase.java:171)
> at com.hp.hpl.jena.util.iterator.WrappedIterator.next(
> WrappedIterator.java:68)
> at com.hp.hpl.jena.util.iterator.Map1Iterator.next(
> Map1Iterator.java:35)
> at com.hp.hpl.jena.util.iterator.WrappedIterator.next(
> WrappedIterator.java:68)
> at com.hp.hpl.jena.rdf.model.impl.StmtIteratorImpl.next(
> StmtIteratorImpl.java:33)
> at com.hp.hpl.jena.rdf.model.impl.StmtIteratorImpl.next(
> StmtIteratorImpl.java:21)
>
> This seems to be the same as what I saw before. It is possible I am
still
> messing something up by manually applying the patch, I'll definitely
keep
> looking at that. If I can get a new TDB 0.9.0 build with the patch
> applied, I will definitely check again
Let's break this down into smaller elements.
First exception first (because the second one may be caused by the first).
Do you have a test case for
java.lang.UnsupportedOperationException: Quad: object cannot be null
What's the operation causing it (the stacktrace does nto go back far
enough but I presume a SPARQL Update or something is being done.)
Andy