if (isExtensionType(pRequest.getParameter(i))) {
throw new XmlRpcExtensionException("Parameter " + i + " has invalid type, if isEnabledForExtensions() == false");
}
}
}
final XmlRpcRequestProcessor server = ((XmlRpcLocalClientConfig) config).getXmlRpcServer();
Object result;
try {
result = server.execute(pRequest);
} catch (Throwable t) {
if (t instanceof XmlRpcClientException) {
throw (XmlRpcClientException) t;
} else {
throw new XmlRpcClientException("Failed to invoke method " + pRequest.getMethodName()
+ ": " + t.getMessage(), t);
}
}
if (!config.isEnabledForExtensions()) {
if (isExtensionType(result)) {
throw new XmlRpcExtensionException("Result has invalid type, if isEnabledForExtensions() == false");
}
}
if (result == null) {
return null;
}
final TypeConverterFactory typeConverterFactory = server.getTypeConverterFactory();
final TypeConverter typeConverter = typeConverterFactory.getTypeConverter(result.getClass());
return typeConverter.backConvert(result);
}