// **********************************************************************
//
// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
package IceInternal;
public class LocalExceptionWrapper extends Exception
{
public
LocalExceptionWrapper(Ice.LocalException ex, boolean retry)
{
_ex = ex;
_retry = retry;
}
public
LocalExceptionWrapper(IceInternal.LocalExceptionWrapper ex)
{
_ex = ex.get();
_retry = ex._retry;
}
public Ice.LocalException
get()
{
return _ex;
}
//
// If true, always repeat the request. Don't take retry settings
// or "at-most-once" guarantees into account.
//
// If false, only repeat the request if the retry settings allow
// to do so, and if "at-most-once" does not need to be guaranteed.
//
public boolean
retry()
{
return _retry;
}
public static void
throwWrapper(java.lang.Throwable ex) throws LocalExceptionWrapper
{
if(ex instanceof Ice.UserException)
{
throw new LocalExceptionWrapper(new Ice.UnknownUserException(((Ice.UserException)ex).ice_name()), false);
}
if(ex instanceof Ice.LocalException)
{
if(ex instanceof Ice.UnknownException ||
ex instanceof Ice.ObjectNotExistException ||
ex instanceof Ice.OperationNotExistException ||
ex instanceof Ice.FacetNotExistException)
{
throw new LocalExceptionWrapper((Ice.LocalException)ex, false);
}
throw new LocalExceptionWrapper(new Ice.UnknownLocalException(((Ice.LocalException)ex).ice_name()), false);
}
throw new LocalExceptionWrapper(new Ice.UnknownException(Ex.toString(ex)), false);
}
private Ice.LocalException _ex;
private boolean _retry;
}