return gson.fromJson(result, method.getGenericReturnType());
}
} else {
JsonElement e = res.get("error");
if (e != null) {
JsonRpcException jre = exceptionHandler.deserialize(e);
if (jre instanceof ServerErrorException) {
String msg = jre.getMessage();
Class<?>[] exp_types = method.getExceptionTypes();
for (Class<?> exp_type : exp_types) {
if (msg.equals(exp_type.getSimpleName())) {
Exception custom_exp = (Exception) exp_type
.newInstance();
custom_exp.initCause(jre.getCause());
throw custom_exp;
}
}
}
throw jre;