Ensure deterministic multidex partitioning
This is done by sorting inputs before processing them.
Bug: 23305646
Change-Id: Ia55c481f4eb342bc925bc100299324ea470bf9a0
diff --git a/dx/src/com/android/dx/command/dexer/Main.java b/dx/src/com/android/dx/command/dexer/Main.java
index 4a3d195..ac4d8c2 100644
--- a/dx/src/com/android/dx/command/dexer/Main.java
+++ b/dx/src/com/android/dx/command/dexer/Main.java
@@ -473,6 +473,7 @@
anyFilesProcessed = false;
String[] fileNames = args.fileNames;
+ Arrays.sort(fileNames);
if (args.numThreads > 1) {
threadPool = Executors.newFixedThreadPool(args.numThreads);
@@ -594,7 +595,7 @@
private static void processOne(String pathname, FileNameFilter filter) {
ClassPathOpener opener;
- opener = new ClassPathOpener(pathname, false, filter,
+ opener = new ClassPathOpener(pathname, true, filter,
new ClassPathOpener.Consumer() {
@Override