aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/dexmaker/stock/ProxyBuilder.java11
-rw-r--r--src/test/java/com/google/dexmaker/stock/ProxyBuilderTest.java2
2 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/com/google/dexmaker/stock/ProxyBuilder.java b/src/main/java/com/google/dexmaker/stock/ProxyBuilder.java
index b3a8d8a..f943840 100644
--- a/src/main/java/com/google/dexmaker/stock/ProxyBuilder.java
+++ b/src/main/java/com/google/dexmaker/stock/ProxyBuilder.java
@@ -38,6 +38,7 @@ import static java.lang.reflect.Modifier.STATIC;
import java.lang.reflect.UndeclaredThrowableException;
import java.util.Arrays;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -613,6 +614,16 @@ public final class ProxyBuilder<T> {
for (MethodSetEntry entry : methodsToProxy) {
results[i++] = entry.originalMethod;
}
+
+ // Sort the results array so that they are returned by this method
+ // in a deterministic fashion.
+ Arrays.sort(results, new Comparator<Method>() {
+ @Override
+ public int compare(Method method1, Method method2) {
+ return method1.toString().compareTo(method2.toString());
+ }
+ });
+
return results;
}
diff --git a/src/test/java/com/google/dexmaker/stock/ProxyBuilderTest.java b/src/test/java/com/google/dexmaker/stock/ProxyBuilderTest.java
index 4c02f83..e6912c4 100644
--- a/src/test/java/com/google/dexmaker/stock/ProxyBuilderTest.java
+++ b/src/test/java/com/google/dexmaker/stock/ProxyBuilderTest.java
@@ -19,10 +19,12 @@ package com.google.dexmaker.stock;
import com.google.dexmaker.DexMakerTest;
import java.io.File;
import java.io.IOException;
+import java.lang.reflect.Field;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.UndeclaredThrowableException;
import java.util.Arrays;
+import java.util.Map;
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.atomic.AtomicInteger;