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 b9c6ec9..099264c 100644
--- a/dx/src/com/android/dx/command/dexer/Main.java
+++ b/dx/src/com/android/dx/command/dexer/Main.java
@@ -521,6 +521,7 @@
anyFilesProcessed = false;
String[] fileNames = args.fileNames;
+ Arrays.sort(fileNames);
// translate classes in parallel
classTranslatorPool = new ThreadPoolExecutor(args.numThreads,
@@ -667,7 +668,7 @@
private static void processOne(String pathname, FileNameFilter filter) {
ClassPathOpener opener;
- opener = new ClassPathOpener(pathname, false, filter, new FileBytesConsumer());
+ opener = new ClassPathOpener(pathname, true, filter, new FileBytesConsumer());
if (opener.process()) {
updateStatus(true);