in base/src/main/java/org/apache/commons/chain2/base/DispatchLookupCommand.java [218:242]
private Method extractMethod(Command<K, V, C> command, C context) throws NoSuchMethodException {
String methodName = this.getMethod();
if (methodName == null) {
Object methodContextObj = context.get(getMethodKey());
if (methodContextObj == null) {
throw new NullPointerException("No value found in context under " + getMethodKey());
}
methodName = methodContextObj.toString();
}
Method theMethod = null;
synchronized (methods) {
theMethod = methods.get(methodName);
if (theMethod == null) {
theMethod = command.getClass().getMethod(methodName,
getSignature());
methods.put(methodName, theMethod);
}
}
return theMethod;
}