Don't include static or private methods with proxy construction.
java.lang.reflect.Proxy classes are meant to only proxy the interface
methods of the classes they are proxying. Instead we were creating
(invalid) class objects that contained any static or private methods
the interfaces had in the proxies vtable. This can break assumptions
about the layout of classes elsewhere in the runtime.
Manually filter out any static/private methods any of the interfaces
contain and not pass them down into the proxy class internals.
Bug: 152339121
Test: ./art/test.py --host
Change-Id: I11b86d50575262b47e9ce9626705cd7a9e2ccfc7
1 file changed