Skip to content

Commit ae05ea5

Browse files
committed
Fix handle binding to illegal parameter type.
1 parent 04d3f5d commit ae05ea5

File tree

2 files changed

+3
-5
lines changed

2 files changed

+3
-5
lines changed

byte-buddy-dep/src/main/java/net/bytebuddy/implementation/bind/annotation/Handle.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public MethodDelegationBinder.ParameterBinding<?> bind(AnnotationDescription.Loa
149149
Assigner assigner,
150150
Assigner.Typing typing) {
151151
if (!target.getType().asErasure().isAssignableFrom(JavaType.METHOD_HANDLE.getTypeStub())) {
152-
return MethodDelegationBinder.ParameterBinding.Illegal.INSTANCE;
152+
throw new IllegalStateException("Cannot assign " + target + " to " + JavaType.METHOD_HANDLE.getTypeStub());
153153
}
154154
TypeDescription owner = annotation.getValue(HANDLE_OWNER).resolve(TypeDescription.class);
155155
return new MethodDelegationBinder.ParameterBinding.Anonymous(new JavaConstantValue(new JavaConstant.MethodHandle(

byte-buddy-dep/src/test/java/net/bytebuddy/implementation/bind/annotation/HandleBinderTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,9 @@ public void testAssignableBinding() throws Exception {
6363
assertThat(parameterBinding.isValid(), is(true));
6464
}
6565

66-
@Test
66+
@Test(expected = IllegalStateException.class)
6767
public void testNonAssignableBinding() throws Exception {
6868
when(targetType.isAssignableFrom(JavaType.METHOD_HANDLE.getTypeStub())).thenReturn(false);
69-
MethodDelegationBinder.ParameterBinding<?> parameterBinding = Handle.Binder.INSTANCE
70-
.bind(annotationDescription, source, target, implementationTarget, assigner, Assigner.Typing.STATIC);
71-
assertThat(parameterBinding.isValid(), is(false));
69+
Handle.Binder.INSTANCE.bind(annotationDescription, source, target, implementationTarget, assigner, Assigner.Typing.STATIC);
7270
}
7371
}

0 commit comments

Comments
 (0)