protected override object InvokeListenerMethod(string methodName, object[] arguments) { try { MethodInfo mi = MethodNode.GetBestMethod(HandlerObject.GetType(), methodName, BINDING_FLAGS, arguments); if (mi == null) { throw new ListenerExecutionFailedException("Failed to invoke the target method '" + methodName + "' with arguments " + StringUtils.CollectionToCommaDelimitedString(arguments)); } try { return(mi.Invoke(HandlerObject, arguments)); } catch (Exception e) { throw new ListenerExecutionFailedException("Listener method '" + methodName + "' threw exception.", e); } } catch (Exception e) { throw new ListenerExecutionFailedException("Failed to invoke the target method '" + methodName + "' with arguments " + StringUtils.CollectionToCommaDelimitedString(arguments), e); } }