if( method.getDeclaringClass() == Object.class )
{
throw new XmlRpcException( 0, "Can't call methods defined in java.lang.Object" );
}
MethodSignature methodSig = MethodSignature.createFromMethod( method );
Object[] adaptedParameters = adaptParameters( methodSig, args );
Object result = method.invoke( delegate, adaptedParameters );
//convert result back to a XML-RPC compliant representation
result = getTypeConverter().convertToXmlRpcRepresentation( methodSig.getReturnParameter(), result );
if (result == null && !methodSig.getReturnParameter().getApiRepresentationClass().equals( void.class ))
{
throw( new XmlRpcException( 0, "Method '" + method + "' must not return <null>" ) );
}
return( result );