[ 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