aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2015-05-14 00:39:03 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-05-14 00:39:04 +0000
commitf9d7d8a6ac9ff1502f6ad5999019b1abb29d52bb (patch)
treeae413c1b86dc97a6ee0339ffd04896cc63b1b120
parent8239eb231c1fcc92f4d2d9ed3f4edaa9502ae54c (diff)
parent8d53a06d10c6e2b96be6857aede5e4661804611e (diff)
downloaddexmaker-f9d7d8a6ac9ff1502f6ad5999019b1abb29d52bb.tar.gz
Merge "Issue: ProxyBuilder.getMethodsToProxyRecursive() was not returning list of methods in deterministic order."android-tsl-4.0android-tsl-3.0android-m-preview-2android-m-preview-1android-m-previewandroid-support-test
-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;