Merge "Ensure we copy the shouldNotDelete when sharding"
diff --git a/invocation_interfaces/com/android/tradefed/invoker/ExecutionFiles.java b/invocation_interfaces/com/android/tradefed/invoker/ExecutionFiles.java
index 55e0a33..43b4d16 100644
--- a/invocation_interfaces/com/android/tradefed/invoker/ExecutionFiles.java
+++ b/invocation_interfaces/com/android/tradefed/invoker/ExecutionFiles.java
@@ -121,6 +121,18 @@
         return this;
     }
 
+    /**
+     * Copies all of the mappings from the specified map to this map.
+     *
+     * @param copyFrom original {@link ExecutionFiles} to copy from.
+     * @return The final mapping
+     */
+    public ExecutionFiles putAll(ExecutionFiles copyFrom) {
+        mFiles.putAll(copyFrom.getAll());
+        mShouldNotDelete.addAll(copyFrom.mShouldNotDelete);
+        return this;
+    }
+
     /** Returns whether or not the map of properties is empty. */
     public boolean isEmpty() {
         return mFiles.isEmpty();
diff --git a/invocation_interfaces/com/android/tradefed/invoker/TestInformation.java b/invocation_interfaces/com/android/tradefed/invoker/TestInformation.java
index 5bebbea..a2b1d7f 100644
--- a/invocation_interfaces/com/android/tradefed/invoker/TestInformation.java
+++ b/invocation_interfaces/com/android/tradefed/invoker/TestInformation.java
@@ -60,7 +60,7 @@
         mDependenciesFolder = invocationInfo.mDependenciesFolder;
         if (copyExecFile) {
             mExecutionFiles = new ExecutionFiles();
-            mExecutionFiles.putAll(invocationInfo.executionFiles().getAll());
+            mExecutionFiles.putAll(invocationInfo.executionFiles());
         } else {
             mExecutionFiles = invocationInfo.mExecutionFiles;
         }