diff --git a/lib/pom.xml b/lib/pom.xml index 8a32d50..1ae0a80 100644 --- a/lib/pom.xml +++ b/lib/pom.xml @@ -132,22 +132,15 @@ 4.12 test - - - org.ow2.asm - asm-all - 5.0.3 - test - org.ow2.asm asm - 5.0.3 + 7.1 org.mockito - mockito-all - 1.10.19 + mockito-core + 2.7.9 test diff --git a/lib/src/main/java/net/fushizen/invokedynamic/proxy/DynamicProxy.java b/lib/src/main/java/net/fushizen/invokedynamic/proxy/DynamicProxy.java index f3ecb6d..685999c 100644 --- a/lib/src/main/java/net/fushizen/invokedynamic/proxy/DynamicProxy.java +++ b/lib/src/main/java/net/fushizen/invokedynamic/proxy/DynamicProxy.java @@ -419,9 +419,11 @@ private static void emitMethod( int access = ACC_PROTECTED; ConcreteMethodTracker concreteMethodTracker = new ConcreteMethodTracker(); + boolean isInterface = true; for (Method m : contributors) { concreteMethodTracker.add(m); + isInterface &= m.getDeclaringClass().isInterface(); if (Modifier.PUBLIC == (m.getModifiers() & Modifier.PUBLIC)) { access = ACC_PUBLIC; } @@ -472,7 +474,8 @@ private static void emitMethod( H_INVOKESPECIAL, Type.getInternalName(superMethod.getDeclaringClass()), superMethod.getName(), - Type.getMethodDescriptor(superMethod) + Type.getMethodDescriptor(superMethod), + isInterface ); }