Author: frm
Date: Mon Aug 28 12:06:33 2017
New Revision: 1806436

URL: http://svn.apache.org/viewvc?rev=1806436&view=rev
Log:
OAK-6570 - Represent referenced segments as a Set in TarFiles#getGraph

Modified:
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
    
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
    
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
    
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java
    
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java
 Mon Aug 28 12:06:33 2017
@@ -38,7 +38,7 @@ interface ExplorerBackend {
 
     Map<String, Set<UUID>> getTarReaderIndex();
 
-    Map<UUID, List<UUID>> getTarGraph(String file) throws IOException;
+    Map<UUID, Set<UUID>> getTarGraph(String file) throws IOException;
 
     List<String> getTarFiles();
 

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
 Mon Aug 28 12:06:33 2017
@@ -423,9 +423,9 @@ class NodeStoreTree extends JPanel imple
 
         sb.append(newline);
         try {
-            Map<UUID, List<UUID>> graph = backend.getTarGraph(file);
+            Map<UUID, Set<UUID>> graph = backend.getTarGraph(file);
             sb.append("Tar graph:").append(newline);
-            for (Entry<UUID, List<UUID>> entry : graph.entrySet()) {
+            for (Entry<UUID, Set<UUID>> entry : graph.entrySet()) {
                 sb.append(entry.getKey()).append('=').append(entry.getValue())
                         .append(newline);
             }

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
 Mon Aug 28 12:06:33 2017
@@ -131,7 +131,7 @@ class SegmentTarExplorerBackend implemen
     }
 
     @Override
-    public Map<UUID, List<UUID>> getTarGraph(String file) throws IOException {
+    public Map<UUID, Set<UUID>> getTarGraph(String file) throws IOException {
         return store.getTarGraph(file);
     }
 
@@ -153,8 +153,8 @@ class SegmentTarExplorerBackend implemen
                 continue;
             }
             for (String f : getTarFiles()) {
-                Map<UUID, List<UUID>> graph = store.getTarGraph(f);
-                for (Entry<UUID, List<UUID>> g : graph.entrySet()) {
+                Map<UUID, Set<UUID>> graph = store.getTarGraph(f);
+                for (Entry<UUID, Set<UUID>> g : graph.entrySet()) {
                     if (g.getValue() != null && g.getValue().contains(uuid)) {
                         UUID uuidP = g.getKey();
                         if (!todos.contains(uuidP)) {

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
 Mon Aug 28 12:06:33 2017
@@ -142,7 +142,7 @@ public class ReadOnlyFileStore extends A
         return tarFiles.getIndices();
     }
 
-    public Map<UUID, List<UUID>> getTarGraph(String fileName) throws 
IOException {
+    public Map<UUID, Set<UUID>> getTarGraph(String fileName) throws 
IOException {
         return tarFiles.getGraph(fileName);
     }
 

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
 Mon Aug 28 12:06:33 2017
@@ -24,6 +24,7 @@ import static com.google.common.collect.
 import static com.google.common.collect.Maps.newHashMap;
 import static com.google.common.collect.Sets.newHashSet;
 import static java.util.Collections.emptyList;
+import static java.util.Collections.emptySet;
 import static org.apache.commons.io.FileUtils.listFiles;
 
 import java.io.Closeable;
@@ -38,6 +39,7 @@ import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.NoSuchElementException;
 import java.util.Set;
 import java.util.UUID;
@@ -696,7 +698,7 @@ public class TarFiles implements Closeab
         return ids;
     }
 
-    public Map<UUID, List<UUID>> getGraph(String fileName) throws IOException {
+    public Map<UUID, Set<UUID>> getGraph(String fileName) throws IOException {
         Node head;
 
         lock.readLock().lock();
@@ -717,14 +719,16 @@ public class TarFiles implements Closeab
             }
         }
 
-        Map<UUID, List<UUID>> result = new HashMap<>();
+        Map<UUID, Set<UUID>> result = new HashMap<>();
         if (index != null) {
             for (UUID uuid : index) {
-                result.put(uuid, emptyList());
+                result.put(uuid, emptySet());
             }
         }
         if (graph != null) {
-            result.putAll(graph);
+            for (Entry<UUID, List<UUID>> entry : graph.entrySet()) {
+                result.put(entry.getKey(), new HashSet<>(entry.getValue()));
+            }
         }
         return result;
     }

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java
 Mon Aug 28 12:06:33 2017
@@ -173,10 +173,10 @@ public class DebugTars implements Runnab
         }
 
         try {
-            Map<UUID, List<UUID>> graph = store.getTarGraph(t);
+            Map<UUID, Set<UUID>> graph = store.getTarGraph(t);
             System.out.println();
             System.out.println("Tar graph:");
-            for (Map.Entry<UUID, List<UUID>> entry : graph.entrySet()) {
+            for (Map.Entry<UUID, Set<UUID>> entry : graph.entrySet()) {
                 System.out.println("" + entry.getKey() + '=' + 
entry.getValue());
             }
         } catch (IOException e) {

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java
 Mon Aug 28 12:06:33 2017
@@ -17,6 +17,7 @@
 
 package org.apache.jackrabbit.oak.segment.file.tar;
 
+import static com.google.common.collect.Sets.newHashSet;
 import static java.util.Arrays.asList;
 import static java.util.Collections.addAll;
 import static java.util.Collections.emptyList;
@@ -35,8 +36,8 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Random;
 import java.util.Set;
@@ -236,16 +237,15 @@ public class TarFilesTest {
         tarFiles.newWriter();
 
         String file = tarFiles.getIndices().keySet().iterator().next();
-        Map<UUID, List<UUID>> graph = tarFiles.getGraph(file);
+        Map<UUID, Set<UUID>> graph = tarFiles.getGraph(file);
 
-        Set<UUID> keys = new HashSet<>();
-        addAll(keys, a, b, c, d);
-        assertEquals(keys, graph.keySet());
-
-        assertEquals(emptyList(), graph.get(a));
-        assertEquals(graph.get(b), singletonList(a));
-        assertEquals(graph.get(c), singletonList(a));
-        assertTrue(graph.get(d).containsAll(asList(b, c)));
+        Map<UUID, Set<UUID>> expected = new HashMap<>();
+        expected.put(a, emptySet());
+        expected.put(b, singleton(a));
+        expected.put(c, singleton(a));
+        expected.put(d, newHashSet(b, c));
+
+        assertEquals(expected, graph);
     }
 
     @Test


Reply via email to