[
https://issues.apache.org/jira/browse/JENA-76?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13130012#comment-13130012
]
Stephen Allen commented on JENA-76:
-----------------------------------
Also alternatively you could replace the interleaved delete/add triple bit of
the patch with something that might be more efficient (or use the BulkUpdater):
for ( Triple t : triples )
{
rawGraph.delete(t) ;
}
for ( Triple t : triples )
{
Node oldS = t.getSubject(), oldO = t.getObject() ;
Node newS = oldS.equals(resAsNode) ? newResAsNode : oldS ;
Node newO = oldO.equals(resAsNode) ? newResAsNode : oldO ;
rawGraph.add(Triple.create(newS, t.getPredicate(), newO));
}
triples.clear();
> Resourceutils.renameResource uses Iterator.remove() to make changes - not all
> iterators support .remove.
> --------------------------------------------------------------------------------------------------------
>
> Key: JENA-76
> URL: https://issues.apache.org/jira/browse/JENA-76
> Project: Jena
> Issue Type: Bug
> Components: Jena
> Reporter: Andy Seaborne
> Attachments: JENA-76-r1185803.patch, JENA-76-r1185845.patch
>
>
> Resourceutils.renameResource uses Iterator.remove() to make changes. TDB does
> not support Iterator.remove
> Instead, renameResource could grab a block (say, 1000) items, rename them and
> loop on blocks of 1000. This way, the iterator is terminated before updates
> are done. The nature of the rename operation means that the find iterator is
> executed until no resources are found so this batching mechanism does not
> need to need to track what has and has not been found - just repeat until
> less than 1000 items found.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira