revised Hessian/Burlap exception clauses (SPR-5897)
This commit is contained in:
parent
2bd30a49ad
commit
64bf3b74b5
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -148,16 +148,18 @@ public class BurlapClientInterceptor extends UrlBasedRemoteAccessor implements M
|
||||||
return invocation.getMethod().invoke(this.burlapProxy, invocation.getArguments());
|
return invocation.getMethod().invoke(this.burlapProxy, invocation.getArguments());
|
||||||
}
|
}
|
||||||
catch (InvocationTargetException ex) {
|
catch (InvocationTargetException ex) {
|
||||||
if (ex.getTargetException() instanceof BurlapRuntimeException) {
|
Throwable targetEx = ex.getTargetException();
|
||||||
BurlapRuntimeException bre = (BurlapRuntimeException) ex.getTargetException();
|
if (targetEx instanceof BurlapRuntimeException) {
|
||||||
Throwable rootCause = (bre.getRootCause() != null ? bre.getRootCause() : bre);
|
Throwable cause = targetEx.getCause();
|
||||||
throw convertBurlapAccessException(rootCause);
|
throw convertBurlapAccessException(cause != null ? cause : targetEx);
|
||||||
}
|
}
|
||||||
else if (ex.getTargetException() instanceof UndeclaredThrowableException) {
|
else if (targetEx instanceof UndeclaredThrowableException) {
|
||||||
UndeclaredThrowableException utex = (UndeclaredThrowableException) ex.getTargetException();
|
UndeclaredThrowableException utex = (UndeclaredThrowableException) targetEx;
|
||||||
throw convertBurlapAccessException(utex.getUndeclaredThrowable());
|
throw convertBurlapAccessException(utex.getUndeclaredThrowable());
|
||||||
}
|
}
|
||||||
throw ex.getTargetException();
|
else {
|
||||||
|
throw targetEx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Throwable ex) {
|
catch (Throwable ex) {
|
||||||
throw new RemoteProxyFailureException(
|
throw new RemoteProxyFailureException(
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -21,6 +21,8 @@ import java.lang.reflect.UndeclaredThrowableException;
|
||||||
import java.net.ConnectException;
|
import java.net.ConnectException;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
|
|
||||||
|
import com.caucho.hessian.HessianException;
|
||||||
|
import com.caucho.hessian.client.HessianConnectionException;
|
||||||
import com.caucho.hessian.client.HessianProxyFactory;
|
import com.caucho.hessian.client.HessianProxyFactory;
|
||||||
import com.caucho.hessian.client.HessianRuntimeException;
|
import com.caucho.hessian.client.HessianRuntimeException;
|
||||||
import com.caucho.hessian.io.SerializerFactory;
|
import com.caucho.hessian.io.SerializerFactory;
|
||||||
|
|
@ -220,16 +222,21 @@ public class HessianClientInterceptor extends UrlBasedRemoteAccessor implements
|
||||||
return invocation.getMethod().invoke(this.hessianProxy, invocation.getArguments());
|
return invocation.getMethod().invoke(this.hessianProxy, invocation.getArguments());
|
||||||
}
|
}
|
||||||
catch (InvocationTargetException ex) {
|
catch (InvocationTargetException ex) {
|
||||||
if (ex.getTargetException() instanceof HessianRuntimeException) {
|
Throwable targetEx = ex.getTargetException();
|
||||||
HessianRuntimeException hre = (HessianRuntimeException) ex.getTargetException();
|
if (targetEx instanceof HessianConnectionException) {
|
||||||
Throwable rootCause = (hre.getRootCause() != null ? hre.getRootCause() : hre);
|
throw convertHessianAccessException(targetEx);
|
||||||
throw convertHessianAccessException(rootCause);
|
|
||||||
}
|
}
|
||||||
else if (ex.getTargetException() instanceof UndeclaredThrowableException) {
|
else if (targetEx instanceof HessianException || targetEx instanceof HessianRuntimeException) {
|
||||||
UndeclaredThrowableException utex = (UndeclaredThrowableException) ex.getTargetException();
|
Throwable cause = targetEx.getCause();
|
||||||
|
throw convertHessianAccessException(cause != null ? cause : targetEx);
|
||||||
|
}
|
||||||
|
else if (targetEx instanceof UndeclaredThrowableException) {
|
||||||
|
UndeclaredThrowableException utex = (UndeclaredThrowableException) targetEx;
|
||||||
throw convertHessianAccessException(utex.getUndeclaredThrowable());
|
throw convertHessianAccessException(utex.getUndeclaredThrowable());
|
||||||
}
|
}
|
||||||
throw ex.getTargetException();
|
else {
|
||||||
|
throw targetEx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Throwable ex) {
|
catch (Throwable ex) {
|
||||||
throw new RemoteProxyFailureException(
|
throw new RemoteProxyFailureException(
|
||||||
|
|
@ -247,7 +254,7 @@ public class HessianClientInterceptor extends UrlBasedRemoteAccessor implements
|
||||||
* @return the RemoteAccessException to throw
|
* @return the RemoteAccessException to throw
|
||||||
*/
|
*/
|
||||||
protected RemoteAccessException convertHessianAccessException(Throwable ex) {
|
protected RemoteAccessException convertHessianAccessException(Throwable ex) {
|
||||||
if (ex instanceof ConnectException) {
|
if (ex instanceof HessianConnectionException || ex instanceof ConnectException) {
|
||||||
return new RemoteConnectFailureException(
|
return new RemoteConnectFailureException(
|
||||||
"Cannot connect to Hessian remote service at [" + getServiceUrl() + "]", ex);
|
"Cannot connect to Hessian remote service at [" + getServiceUrl() + "]", ex);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue