diff options
Diffstat (limited to 'java/src/IceInternal/Outgoing.java')
-rw-r--r-- | java/src/IceInternal/Outgoing.java | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/java/src/IceInternal/Outgoing.java b/java/src/IceInternal/Outgoing.java index d5288310ebe..97a00eb0597 100644 --- a/java/src/IceInternal/Outgoing.java +++ b/java/src/IceInternal/Outgoing.java @@ -292,24 +292,12 @@ public final class Outgoing implements OutgoingMessageCallback { case ReplyStatus.replyOK: { - // - // Input and output parameters are always sent in an - // encapsulation, which makes it possible to forward - // oneway requests as blobs. - // - _is.startReadEncaps(); _state = StateOK; // The state must be set last, in case there is an exception. break; } case ReplyStatus.replyUserException: { - // - // Input and output parameters are always sent in an - // encapsulation, which makes it possible to forward - // oneway requests as blobs. - // - _is.startReadEncaps(); _state = StateUserException; // The state must be set last, in case there is an exception. break; } @@ -444,6 +432,22 @@ public final class Outgoing implements OutgoingMessageCallback return _os; } + public void + throwUserException() + throws Ice.UserException + { + try + { + _is.startReadEncaps(); + _is.throwException(); + } + catch(Ice.UserException ex) + { + _is.endReadEncaps(); + throw ex; + } + } + private void writeHeader(String operation, Ice.OperationMode mode, java.util.Map context) throws LocalExceptionWrapper |