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()) {