From fa15287abbfcd141938d562b79377063c75e4b23 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Wed, 3 Aug 2016 20:45:08 +0100 Subject: Revert upstream change 924bb5b1c1718ac4c49d94e435739a6fd26dc986 The reverted change broke some android tests because it did not traverse the interface inheritance hierarchy when searching for methods to proxy. That change was introduced during the upgrade to 1.3 and so while it is fixing a problem none of the Android code that uses this version of dexmaker was affected by it so it should be safe to remove. Will work on a proper fix and test for upstream after this has been reverted as this is blocking other teams at the moment. Bug: 30299479 Change-Id: Id4a7dacdf74ac2b08ca28a7677b71b191b0c36bd Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh --- .../java/com/google/dexmaker/stock/ProxyBuilder.java | 9 ++++----- .../java/com/google/dexmaker/stock/ProxyBuilderTest.java | 16 ---------------- 2 files changed, 4 insertions(+), 21 deletions(-) (limited to 'dexmaker') diff --git a/dexmaker/src/main/java/com/google/dexmaker/stock/ProxyBuilder.java b/dexmaker/src/main/java/com/google/dexmaker/stock/ProxyBuilder.java index 9b2545a..49d1224 100644 --- a/dexmaker/src/main/java/com/google/dexmaker/stock/ProxyBuilder.java +++ b/dexmaker/src/main/java/com/google/dexmaker/stock/ProxyBuilder.java @@ -622,11 +622,6 @@ public final class ProxyBuilder { for (Class c = baseClass; c != null; c = c.getSuperclass()) { getMethodsToProxy(methodsToProxy, seenFinalMethods, c); } - for (Class c = baseClass; c != null; c = c.getSuperclass()) { - for (Class i : c.getInterfaces()) { - getMethodsToProxy(methodsToProxy, seenFinalMethods, i); - } - } for (Class c : interfaces) { getMethodsToProxy(methodsToProxy, seenFinalMethods, c); } @@ -693,6 +688,10 @@ public final class ProxyBuilder { } sink.add(entry); } + + for (Class i : c.getInterfaces()) { + getMethodsToProxy(sink, seenFinalMethods, i); + } } private static String getMethodNameForProxyOf(Class clazz) { diff --git a/dexmaker/src/test/java/com/google/dexmaker/stock/ProxyBuilderTest.java b/dexmaker/src/test/java/com/google/dexmaker/stock/ProxyBuilderTest.java index 5c499c8..2dfac5e 100644 --- a/dexmaker/src/test/java/com/google/dexmaker/stock/ProxyBuilderTest.java +++ b/dexmaker/src/test/java/com/google/dexmaker/stock/ProxyBuilderTest.java @@ -882,22 +882,6 @@ public class ProxyBuilderTest extends TestCase { assertEquals("no proxy", proxyFor(ExtenstionOfFinalInterfaceImpl.class).build().foo()); } - // https://code.google.com/p/dexmaker/issues/detail?id=9 - public interface DeclaresMethodLate { - void thisIsTheMethod(); - } - - public static class MakesMethodFinalEarly { - public final void thisIsTheMethod() {} - } - - public static class YouDoNotChooseYourFamily - extends MakesMethodFinalEarly implements DeclaresMethodLate {} - - public void testInterfaceMethodMadeFinalBeforeActualInheritance() throws Exception { - proxyFor(YouDoNotChooseYourFamily.class).build(); - } - /** Simple helper to add the most common args for this test to the proxy builder. */ private ProxyBuilder proxyFor(Class clazz) throws Exception { return ProxyBuilder.forClass(clazz) -- cgit v1.2.3