Android 6.0.1 Release 81 (MOI10E)
Issue: ProxyBuilder.getMethodsToProxyRecursive() was not returning list of methods in deterministic order.

RCA: In order to determine which methods to proxy, ProxyBuilder populates hash sets of MethodSetEntry instances. This prevents duplicate entries for methods from occurring. Since the hash set is unordered and the resulting list returned by ProxyBuilder.getMethodsToProxyRecursive() is built from the hash set, the order of the list is non-deterministic.

Fix: After building the list, sort it by Method.toString(), which contains all of the information in a method's signature.

(cherry picked from commit 623897d6063d626d5afc0ed5f3231244acf363b9)

Bug: 21031230

(cherry picked from commit 8d53a06d10c6e2b96be6857aede5e4661804611e)

Change-Id: Ifb43e08befed714ceaec048186665821b0811402
2 files changed