Author: frm
Date: Tue Dec 15 14:34:06 2015
New Revision: 1720177

URL: http://svn.apache.org/viewvc?rev=1720177&view=rev
Log:
OAK-3793 - Let the Explorer detect cycles in the graph of segments

Modified:
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java?rev=1720177&r1=1720176&r2=1720177&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java
 Tue Dec 15 14:34:06 2015
@@ -57,8 +57,12 @@ public final class FileStoreHelper {
             Map<UUID, Set<Entry<UUID, String>>> links) throws IOException {
         Deque<UUID> todos = new ArrayDeque<UUID>();
         todos.add(uuidIn);
+        Set<UUID> visited = newHashSet();
         while (!todos.isEmpty()) {
             UUID uuid = todos.remove();
+            if (!visited.add(uuid)) {
+                continue;
+            }
             for (String f : getTarFiles(store)) {
                 Map<UUID, List<UUID>> graph = store.getTarGraph(f);
                 for (Entry<UUID, List<UUID>> g : graph.entrySet()) {


Reply via email to