On 06/11/13 09:33, Reto Bachmann-Gmür wrote:
Hello,
I've been encountering the following exception. I think it happened after
the instance was killed. WHat does it mean? How to fix it?
org.apache.jena.atlas.lib.InternalErrorException: Invalid id node for
object (null node): ([000000000000025E], [000000000000019C],
[0000000000000321])
at com.hp.hpl.jena.tdb.lib.TupleLib.triple(TupleLib.java:139)
at com.hp.hpl.jena.tdb.lib.TupleLib.triple(TupleLib.java:114)
at com.hp.hpl.jena.tdb.lib.TupleLib.access$000(TupleLib.java:45)
at com.hp.hpl.jena.tdb.lib.TupleLib$3.convert(TupleLib.java:76)
at com.hp.hpl.jena.tdb.lib.TupleLib$3.convert(TupleLib.java:72)
at org.apache.jena.atlas.iterator.Iter$4.next(Iter.java:317)
at org.apache.jena.atlas.iterator.Iter$4.next(Iter.java:317)
at org.apache.jena.atlas.iterator.Iter$4.next(Iter.java:317)
at org.apache.jena.atlas.iterator.Iter.next(Iter.java:915)
at
com.hp.hpl.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:94)
Cheers,
Reto
(version?)
There are two possible causes I can think of - I can't tell which it is;
it may be something else.
1/ No transactions. There were un-synced updates and you were unlucky.
This is not most common exception that occurs in that situation; more
common is complaints from the node table.
Were you deleting stuff around the time of the instance death? There is
a triple/quad in the index where there is no RDF term for the object in
the NodeTable.
Bad news: The database is damaged on disk.
2/ An iterator has been passed across a transaction boundary (e.g. from
one thread to another). I would hope that passing it across a
transaction boundary in the same thread would have been signalled but
you may have found another devious way to do that.
The database is not damaged on disk.
But as you said the instance was killed, (1) looks more likely. Sorry.
Andy