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
);
}