mirror of https://github.com/apache/jclouds.git
JCLOUDS-415: Preparing for Guava 16.0
Invokable.equals has changed from 15 to 16 so we need to implement the check differently ourselves.
This commit is contained in:
parent
114872483b
commit
dc7bad39cc
|
@ -141,7 +141,7 @@ public class DelegatesToInvocationFunction<S, F extends Function<Invocation, Obj
|
||||||
|
|
||||||
protected Object handle(Invocation invocation) {
|
protected Object handle(Invocation invocation) {
|
||||||
Invokable<?, ?> invokable = invocation.getInvokable();
|
Invokable<?, ?> invokable = invocation.getInvokable();
|
||||||
if (CLOSE.equals(invokable)) {
|
if (isCloseMethod(invokable)) {
|
||||||
try {
|
try {
|
||||||
injector.getInstance(Closer.class).close();
|
injector.getInstance(Closer.class).close();
|
||||||
return null;
|
return null;
|
||||||
|
@ -157,6 +157,22 @@ public class DelegatesToInvocationFunction<S, F extends Function<Invocation, Obj
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean isCloseMethod(Invokable<?, ?> invokable) {
|
||||||
|
/*
|
||||||
|
* Tests equality according to the Javadoc for java.lang.reflect.Method:
|
||||||
|
*
|
||||||
|
* Two Methods are the same if they were declared by the same class
|
||||||
|
* and have the same name and formal parameter types and return type.
|
||||||
|
*
|
||||||
|
* Invokable now uses the *owning* class (not the declaring class) in
|
||||||
|
* its equals check.
|
||||||
|
*/
|
||||||
|
return CLOSE.getDeclaringClass().equals(invokable.getDeclaringClass())
|
||||||
|
&& CLOSE.getName().equals(invokable.getName())
|
||||||
|
&& CLOSE.getParameters().equals(invokable.getParameters())
|
||||||
|
&& CLOSE.getReturnType().equals(invokable.getReturnType());
|
||||||
|
}
|
||||||
|
|
||||||
protected final Injector injector;
|
protected final Injector injector;
|
||||||
protected final TypeToken<S> ownerType;
|
protected final TypeToken<S> ownerType;
|
||||||
protected final SetCaller setCaller;
|
protected final SetCaller setCaller;
|
||||||
|
|
Loading…
Reference in New Issue