summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/IncomingAsync.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/IncomingAsync.java')
-rw-r--r--java/src/IceInternal/IncomingAsync.java261
1 files changed, 23 insertions, 238 deletions
diff --git a/java/src/IceInternal/IncomingAsync.java b/java/src/IceInternal/IncomingAsync.java
index e8e891b49f0..7a7bb90678f 100644
--- a/java/src/IceInternal/IncomingAsync.java
+++ b/java/src/IceInternal/IncomingAsync.java
@@ -22,9 +22,9 @@ public class IncomingAsync extends IncomingBase
{
try
{
- if(_locator != null && _servant != null)
+ if(!__servantLocatorFinished())
{
- _locator.finished(_current, _servant, _cookie.value);
+ return;
}
if(_response)
@@ -54,18 +54,7 @@ public class IncomingAsync extends IncomingBase
}
catch(Ice.LocalException ex)
{
- _connection.exception(ex);
- }
- catch(java.lang.Exception ex)
- {
- Ice.UnknownException uex = new Ice.UnknownException();
- //uex.unknown = ex.toString();
- java.io.StringWriter sw = new java.io.StringWriter();
- java.io.PrintWriter pw = new java.io.PrintWriter(sw);
- ex.printStackTrace(pw);
- pw.flush();
- uex.unknown = sw.toString();
- _connection.exception(uex);
+ _connection.invokeException(ex, 1);
}
}
@@ -74,239 +63,35 @@ public class IncomingAsync extends IncomingBase
{
try
{
- if(_locator != null && _servant != null)
- {
- _locator.finished(_current, _servant, _cookie.value);
- }
-
- try
- {
- throw exc;
- }
- catch(Ice.RequestFailedException ex)
- {
- if(ex.id == null)
- {
- ex.id = _current.id;
- }
-
- if(ex.facet == null)
- {
- ex.facet = _current.facet;
- }
-
- if(ex.operation == null || ex.operation.length() == 0)
- {
- ex.operation = _current.operation;
- }
-
- if(_os.instance().initializationData().properties.getPropertyAsIntWithDefault(
- "Ice.Warn.Dispatch", 1) > 1)
- {
- __warning(ex);
- }
-
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- if(ex instanceof Ice.ObjectNotExistException)
- {
- _os.writeByte((byte)DispatchStatus._DispatchObjectNotExist);
- }
- else if(ex instanceof Ice.FacetNotExistException)
- {
- _os.writeByte((byte)DispatchStatus._DispatchFacetNotExist);
- }
- else if(ex instanceof Ice.OperationNotExistException)
- {
- _os.writeByte((byte)DispatchStatus._DispatchOperationNotExist);
- }
- else
- {
- assert(false);
- }
- ex.id.__write(_os);
-
- //
- // For compatibility with the old FacetPath.
- //
- if(ex.facet == null || ex.facet.length() == 0)
- {
- _os.writeStringSeq(null);
- }
- else
- {
- String[] facetPath = { ex.facet };
- _os.writeStringSeq(facetPath);
- }
-
- _os.writeString(ex.operation);
-
- _connection.sendResponse(_os, _compress);
- }
- else
- {
- _connection.sendNoResponse();
- }
- }
- catch(Ice.UnknownLocalException ex)
- {
- if(_os.instance().initializationData().properties.getPropertyAsIntWithDefault(
- "Ice.Warn.Dispatch", 1) > 0)
- {
- __warning(ex);
- }
-
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- _os.writeByte((byte)DispatchStatus._DispatchUnknownLocalException);
- _os.writeString(ex.unknown);
- _connection.sendResponse(_os, _compress);
- }
- else
- {
- _connection.sendNoResponse();
- }
- }
- catch(Ice.UnknownUserException ex)
- {
- if(_os.instance().initializationData().properties.getPropertyAsIntWithDefault(
- "Ice.Warn.Dispatch", 1) > 0)
- {
- __warning(ex);
- }
-
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- _os.writeByte((byte)DispatchStatus._DispatchUnknownUserException);
- _os.writeString(ex.unknown);
- _connection.sendResponse(_os, _compress);
- }
- else
- {
- _connection.sendNoResponse();
- }
- }
- catch(Ice.UnknownException ex)
- {
- if(_os.instance().initializationData().properties.getPropertyAsIntWithDefault(
- "Ice.Warn.Dispatch", 1) > 0)
- {
- __warning(ex);
- }
-
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- _os.writeByte((byte)DispatchStatus._DispatchUnknownException);
- _os.writeString(ex.unknown);
- _connection.sendResponse(_os, _compress);
- }
- else
- {
- _connection.sendNoResponse();
- }
- }
- catch(Ice.LocalException ex)
- {
- if(_os.instance().initializationData().properties.getPropertyAsIntWithDefault(
- "Ice.Warn.Dispatch", 1) > 0)
- {
- __warning(ex);
- }
-
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- _os.writeByte((byte)DispatchStatus._DispatchUnknownLocalException);
- //_os.writeString(ex.toString());
- java.io.StringWriter sw = new java.io.StringWriter();
- java.io.PrintWriter pw = new java.io.PrintWriter(sw);
- ex.printStackTrace(pw);
- pw.flush();
- _os.writeString(sw.toString());
- _connection.sendResponse(_os, _compress);
- }
- else
- {
- _connection.sendNoResponse();
- }
- }
- catch(Ice.UserException ex)
+ if(!__servantLocatorFinished())
{
- if(_os.instance().initializationData().properties.getPropertyAsIntWithDefault(
- "Ice.Warn.Dispatch", 1) > 0)
- {
- __warning(ex);
- }
-
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- _os.writeByte((byte)DispatchStatus._DispatchUnknownUserException);
- //_os.writeString(ex.toString());
- java.io.StringWriter sw = new java.io.StringWriter();
- java.io.PrintWriter pw = new java.io.PrintWriter(sw);
- ex.printStackTrace(pw);
- pw.flush();
- _os.writeString(sw.toString());
- _connection.sendResponse(_os, _compress);
- }
- else
- {
- _connection.sendNoResponse();
- }
+ return;
}
- catch(java.lang.Exception ex)
- {
- if(_os.instance().initializationData().properties.getPropertyAsIntWithDefault(
- "Ice.Warn.Dispatch", 1) > 0)
- {
- __warning(ex);
- }
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- _os.writeByte((byte)DispatchStatus._DispatchUnknownException);
- //_os.writeString(ex.toString());
- java.io.StringWriter sw = new java.io.StringWriter();
- java.io.PrintWriter pw = new java.io.PrintWriter(sw);
- ex.printStackTrace(pw);
- pw.flush();
- _os.writeString(sw.toString());
- _connection.sendResponse(_os, _compress);
- }
- else
- {
- _connection.sendNoResponse();
- }
- }
+ __handleException(exc);
}
catch(Ice.LocalException ex)
{
- _connection.exception(ex);
+ _connection.invokeException(ex, 1);
}
- catch(java.lang.Exception ex)
+ }
+
+ final private boolean
+ __servantLocatorFinished()
+ {
+ try
{
- Ice.UnknownException uex = new Ice.UnknownException();
- //uex.unknown = ex.toString();
- java.io.StringWriter sw = new java.io.StringWriter();
- java.io.PrintWriter pw = new java.io.PrintWriter(sw);
- ex.printStackTrace(pw);
- pw.flush();
- uex.unknown = sw.toString();
- _connection.exception(uex);
+ if(_locator != null && _servant != null)
+ {
+ _locator.finished(_current, _servant, _cookie.value);
+ }
+ return true;
}
+ catch(java.lang.Exception ex)
+ {
+ __handleException(ex);
+ return false;
+ }
}
final protected BasicStream