diff options
Diffstat (limited to 'java/src/IceInternal/LocalExceptionWrapper.java')
-rw-r--r-- | java/src/IceInternal/LocalExceptionWrapper.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/java/src/IceInternal/LocalExceptionWrapper.java b/java/src/IceInternal/LocalExceptionWrapper.java index 8c9fbf976c6..36d99f391b7 100644 --- a/java/src/IceInternal/LocalExceptionWrapper.java +++ b/java/src/IceInternal/LocalExceptionWrapper.java @@ -44,6 +44,41 @@ public class LocalExceptionWrapper extends Exception return _retry; } + public static void + throwUnknownWrapper(java.lang.Throwable ex) throws LocalExceptionWrapper + { + if(ex instanceof Ice.UserException) + { + throw new LocalExceptionWrapper(new Ice.UnknownUserException(ex.toString()), false); + } + if(ex instanceof Ice.LocalException) + { + /* + // + // Commented-out code makes local exceptions fully location transparent, + // but the Freeze evictor relies on them not being transparent. + // + 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(ex.toString()), false); + */ + throw new LocalExceptionWrapper((Ice.LocalException)ex, false); + } + /* + throw new LocalExceptionWrapper(new Ice.UnknownException(ex.toString()), false); + */ + + if(ex instanceof RuntimeException) + { + throw (RuntimeException)ex; + } + } + private Ice.LocalException _ex; private boolean _retry; } |