You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Thomas Mueller (JIRA)" <ji...@apache.org> on 2008/03/13 15:50:25 UTC

[jira] Commented: (JCR-1469) Data store garbage collection: ScanEventListener not working

    [ https://issues.apache.org/jira/browse/JCR-1469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12578320#action_12578320 ] 

Thomas Mueller commented on JCR-1469:
-------------------------------------

Fixed in revision 636774.

This patch introduces two new methods: GarbageCollector.setPersistenceManagerScan and getPersistenceManagerScan. Also, the ScanEventListener is called even when using the PersistenceManager scan, however with a null Node. My first idea was to add a PseudoNode class, but passing null is probably OK. In that case the client could count how many times the method was called. I remember there is a way to get the number of nodes in a repository (jcr.repository.stats.nodes.count).

I agree the NodeId would be OK as well, however I think we should not change the API in a minor release.

I hope this patch can be included in the next minor Jackrabbit release.



> Data store garbage collection: ScanEventListener not working
> ------------------------------------------------------------
>
>                 Key: JCR-1469
>                 URL: https://issues.apache.org/jira/browse/JCR-1469
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>            Reporter: Thomas Mueller
>            Assignee: Thomas Mueller
>
> The ScanEventListener is currently only called when using the 'scan all nodes recursively' strategy. It is not called when all persistence managers implement IterablePersistenceManager (GarbageCollector.scanPersistenceManagers). The ScanEventListener should be called in every case, otherwise it is not possible to see the progress of the garbage collection.
> However there is a problem: IterablePersistenceManager.getAllNodeIds() doesn't return Node objects, and it would make little sense to create real node objects (the performance advantage of scanPersistenceManagers would be lost).
> Therefore, I propose a workaround: the ScanEventListener is called using a 'PseudoNode'. This is a class that implements Node but only has meaningful getUUID() and toString() methods. This allows to create a meaningful progress bar (as the UUIDs are returned in order).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.