[
https://issues.apache.org/jira/browse/JENA-91?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13088802#comment-13088802
]
Paolo Castagna commented on JENA-91:
------------------------------------
I got a "Quad: object cannot be null" error too, however I am not sure it's the
same cause as you.
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$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: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:1)
at
com.hp.hpl.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:68)
at
com.hp.hpl.jena.sparql.sse.writers.WriterGraph._writeGraph(WriterGraph.java:114)
at
com.hp.hpl.jena.sparql.sse.writers.WriterGraph.writeGraph(WriterGraph.java:86)
at
com.hp.hpl.jena.sparql.sse.writers.WriterGraph.writeDataset(WriterGraph.java:58)
at
com.hp.hpl.jena.sparql.sse.writers.WriterGraph.output(WriterGraph.java:35)
at
com.hp.hpl.jena.sparql.core.DatasetGraphBase.toString(DatasetGraphBase.java:151)
at com.hp.hpl.jena.tdb.DatasetGraphTxn.toString(DatasetGraphTxn.java:36)
at java.lang.String.valueOf(String.java:2826)
at java.lang.StringBuilder.append(StringBuilder.java:115)
at
com.hp.hpl.jena.tdb.transaction.TestTransSystem.writeData(TestTransSystem.java:380)
at
com.hp.hpl.jena.tdb.transaction.TestTransSystem$2.change(TestTransSystem.java:334)
at
com.hp.hpl.jena.tdb.transaction.TestTransSystem$Writer.call(TestTransSystem.java:223)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Could this be caused by an iterator not closed properly? I think there is one
in WriterGraph._writeGraph(...).
Full stack trace for the "Different ids allocated: expected ..." error is:
com.hp.hpl.jena.tdb.TDBException: Different ids allocated: expected
[000000000000004F], got [0000000000000058]
at
com.hp.hpl.jena.tdb.transaction.NodeTableTrans.append(NodeTableTrans.java:149)
at
com.hp.hpl.jena.tdb.transaction.NodeTableTrans.writeNodeJournal(NodeTableTrans.java:176)
at
com.hp.hpl.jena.tdb.transaction.NodeTableTrans.commitPrepare(NodeTableTrans.java:161)
at
com.hp.hpl.jena.tdb.transaction.Transaction.prepare(Transaction.java:94)
at
com.hp.hpl.jena.tdb.transaction.Transaction.commit(Transaction.java:77)
at com.hp.hpl.jena.tdb.DatasetGraphTxn.commit(DatasetGraphTxn.java:26)
at
com.hp.hpl.jena.tdb.transaction.TestTransSystem$Writer.call(TestTransSystem.java:239)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
So far my only hypothesis is that there must be some "write" operation behind
the modelRead(DatasetGraphTxn dsg) method. Although, I do not see where that
might be. Prefixes?
> extremely large buffer is being created in ObjectFileStorage
> ------------------------------------------------------------
>
> Key: JENA-91
> URL: https://issues.apache.org/jira/browse/JENA-91
> Project: Jena
> Issue Type: Bug
> Components: TDB
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Attachments: TestTransSystem.patch, TestTransSystem2.patch
>
>
> I tried to debug the OME and check why a bytebuffer is causing my native
> memory to explode in almost no time. It all seems to happen in this bit of
> code in com.hp.hpl.jena.tdb.base.objectfile.ObjectFileStorage (lines 243
> onwards)
> // No - it's in the underlying file storage.
> lengthBuffer.clear() ;
> int x = file.read(lengthBuffer, loc) ;
> if ( x != 4 )
> throw new
> FileException("ObjectFile.read("+loc+")["+filesize+"]["+file.size()+"]:
> Failed to read the length : got "+x+" bytes") ;
> int len = lengthBuffer.getInt(0) ;
> ByteBuffer bb = ByteBuffer.allocate(len) ;
> My debugger shows that x==4. It also shows the lengthBuffer has the following
> content: [111, 110, 61, 95]. This amounts to the value of len=1869495647,
> which is rather a lot :-) Obviously, the next statement (ByteBuffer.allocate)
> causes the OME.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira