diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2009-03-02 15:23:53 -0330 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2009-03-02 15:23:53 -0330 |
commit | 8b15e6ba73a45b5be5064cb2f866ad0654d7af18 (patch) | |
tree | 9ee591d38fb7725ab2e6ef637b46b54d1394ef33 /java/src/IceInternal/Incoming.java | |
parent | Fix 3755 - demo/Ice/callback has context parameter? (diff) | |
download | ice-8b15e6ba73a45b5be5064cb2f866ad0654d7af18.tar.bz2 ice-8b15e6ba73a45b5be5064cb2f866ad0654d7af18.tar.xz ice-8b15e6ba73a45b5be5064cb2f866ad0654d7af18.zip |
C++Builder 2009 port
Diffstat (limited to 'java/src/IceInternal/Incoming.java')
-rw-r--r-- | java/src/IceInternal/Incoming.java | 109 |
1 files changed, 51 insertions, 58 deletions
diff --git a/java/src/IceInternal/Incoming.java b/java/src/IceInternal/Incoming.java index a72e45b74ef..28dd812dbbd 100644 --- a/java/src/IceInternal/Incoming.java +++ b/java/src/IceInternal/Incoming.java @@ -120,83 +120,76 @@ final public class Incoming extends IncomingBase implements Ice.Request // the caller of this operation. // - try + if(servantManager != null) { - try + _servant = servantManager.findServant(_current.id, _current.facet); + if(_servant == null) { - if(servantManager != null) + _locator = servantManager.findServantLocator(_current.id.category); + if(_locator == null && _current.id.category.length() > 0) { - _servant = servantManager.findServant(_current.id, _current.facet); - if(_servant == null) - { - _locator = servantManager.findServantLocator(_current.id.category); - if(_locator == null && _current.id.category.length() > 0) - { - _locator = servantManager.findServantLocator(""); - } - if(_locator != null) - { - try - { - _servant = _locator.locate(_current, _cookie); - } - catch(Ice.UserException ex) - { - _os.writeUserException(ex); - replyStatus = ReplyStatus.replyUserException; - } - } - } + _locator = servantManager.findServantLocator(""); } - if(replyStatus == ReplyStatus.replyOK) + + if(_locator != null) { - if(_servant == null) + try { - if(servantManager != null && servantManager.hasServant(_current.id)) - { - replyStatus = ReplyStatus.replyFacetNotExist; - } - else - { - replyStatus = ReplyStatus.replyObjectNotExist; - } + _servant = _locator.locate(_current, _cookie); } - else + catch(Ice.UserException ex) { - dispatchStatus = _servant.__dispatch(this, _current); - if(dispatchStatus == Ice.DispatchStatus.DispatchUserException) - { - replyStatus = ReplyStatus.replyUserException; - } + _os.writeUserException(ex); + replyStatus = ReplyStatus.replyUserException; + } + catch(java.lang.Exception ex) + { + __handleException(ex); + return; } } } - finally + } + + if(_servant != null) + { + try { - if(_locator != null && _servant != null && dispatchStatus != Ice.DispatchStatus.DispatchAsync) + assert(replyStatus == ReplyStatus.replyOK); + dispatchStatus = _servant.__dispatch(this, _current); + if(dispatchStatus == Ice.DispatchStatus.DispatchUserException) { - try - { - _locator.finished(_current, _servant, _cookie.value); - } - catch(Ice.UserException ex) + replyStatus = ReplyStatus.replyUserException; + } + + if(dispatchStatus != Ice.DispatchStatus.DispatchAsync) + { + if(_locator != null && !__servantLocatorFinished()) { - // - // The operation may have already marshaled a reply; we must overwrite that reply. - // - _os.endWriteEncaps(); - _os.resize(Protocol.headerSize + 5, false); // Byte following reply status. - _os.startWriteEncaps(); - _os.writeUserException(ex); - replyStatus = ReplyStatus.replyUserException; // Code below inserts the reply status. + return; } } } + catch(java.lang.Exception ex) + { + if(_locator != null && !__servantLocatorFinished()) + { + return; + } + __handleException(ex); + return; + } } - catch(java.lang.Exception ex) + else if(replyStatus == ReplyStatus.replyOK) { - __handleException(ex); - return; + if(servantManager != null && servantManager.hasServant(_current.id)) + { + replyStatus = ReplyStatus.replyFacetNotExist; + } + else + { + replyStatus = ReplyStatus.replyObjectNotExist; + } } // |