PiperOrigin-RevId: 208245798
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
index aca2677..13ff08a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
@@ -13,12 +13,13 @@
 // limitations under the License.
 package com.google.devtools.build.lib.skyframe;
 
+import com.google.common.base.Function;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedMap;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Maps;
+import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.Artifact.TreeFileArtifact;
 import com.google.devtools.build.lib.actions.FileArtifactValue;
 import com.google.devtools.build.lib.actions.cache.DigestUtils;
@@ -28,7 +29,6 @@
 import com.google.devtools.build.skyframe.SkyValue;
 import java.io.IOException;
 import java.util.Arrays;
-import java.util.Comparator;
 import java.util.Map;
 import java.util.Set;
 import javax.annotation.Nullable;
@@ -39,14 +39,21 @@
  */
 @AutoCodec
 class TreeArtifactValue implements SkyValue {
+  private static final Function<Artifact, PathFragment> PARENT_RELATIVE_PATHS =
+      new Function<Artifact, PathFragment>() {
+        @Override
+        public PathFragment apply(Artifact artifact) {
+            return artifact.getParentRelativePath();
+        }
+      };
 
   private final byte[] digest;
-  private final ImmutableSortedMap<TreeFileArtifact, FileArtifactValue> childData;
+  private final Map<TreeFileArtifact, FileArtifactValue> childData;
 
   @AutoCodec.VisibleForSerialization
   TreeArtifactValue(byte[] digest, Map<TreeFileArtifact, FileArtifactValue> childData) {
     this.digest = digest;
-    this.childData = sortedCopy(childData);
+    this.childData = ImmutableMap.copyOf(childData);
   }
 
   /**
@@ -62,13 +69,7 @@
 
     return new TreeArtifactValue(
         DigestUtils.fromMetadata(digestBuilder).getDigestBytesUnsafe(),
-        sortedCopy(childFileValues));
-  }
-
-  private static ImmutableSortedMap<TreeFileArtifact, FileArtifactValue> sortedCopy(
-      Map<TreeFileArtifact, FileArtifactValue> data) {
-    return ImmutableSortedMap.copyOf(data,
-        Comparator.comparing(TreeFileArtifact::getParentRelativePath));
+        ImmutableMap.copyOf(childFileValues));
   }
 
   FileArtifactValue getSelfData() {
@@ -80,8 +81,7 @@
   }
 
   Set<PathFragment> getChildPaths() {
-    return ImmutableSet.copyOf(Iterables.transform(childData.keySet(),
-        TreeFileArtifact::getParentRelativePath));
+    return ImmutableSet.copyOf(Iterables.transform(childData.keySet(), PARENT_RELATIVE_PATHS));
   }
 
   @Nullable
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
index 15e7b82..0f5d21b 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
@@ -55,14 +55,9 @@
 import com.google.devtools.build.skyframe.SkyValue;
 import java.io.IOException;
 import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Random;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -129,24 +124,6 @@
   }
 
   @Test
-  public void testTreeArtifactOrdering() throws Exception {
-    int rangeSize = 100;
-    int attempts = 10;
-    List<PathFragment> children =
-        IntStream.range(0, rangeSize)
-            .mapToObj(i -> PathFragment.create("file" + i))
-            .collect(Collectors.toList());
-
-    for (int i = 0; i < attempts; i++) {
-      Collections.shuffle(children, new Random());
-      Artifact treeArtifact = createTreeArtifact("out");
-      TreeArtifactValue value = evaluateTreeArtifact(treeArtifact, children);
-      assertThat(value.getChildPaths()).containsExactlyElementsIn(children);
-      assertThat(value.getChildPaths()).isOrdered(Comparator.naturalOrder());
-    }
-  }
-
-  @Test
   public void testEqualTreeArtifacts() throws Exception {
     Artifact treeArtifact = createTreeArtifact("out");
     ImmutableList<PathFragment> children =