summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2007-01-10 10:22:43 +0000
committerBenoit Foucher <benoit@zeroc.com>2007-01-10 10:22:43 +0000
commit26c33e45e09f6c635f6a663f05e9edb51f5461ef (patch)
tree55caad6a4594a51899948b9451171098dbc7fb1e /java/src
parentWin32 fix (diff)
downloadice-26c33e45e09f6c635f6a663f05e9edb51f5461ef.tar.bz2
ice-26c33e45e09f6c635f6a663f05e9edb51f5461ef.tar.xz
ice-26c33e45e09f6c635f6a663f05e9edb51f5461ef.zip
Fixed bug 1650
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/ConnectionI.java78
-rw-r--r--java/src/IceInternal/Incoming.java196
-rw-r--r--java/src/IceInternal/IncomingAsync.java261
-rw-r--r--java/src/IceInternal/IncomingBase.java210
4 files changed, 265 insertions, 480 deletions
diff --git a/java/src/Ice/ConnectionI.java b/java/src/Ice/ConnectionI.java
index d9ba8889fa9..7dedaa5b00a 100644
--- a/java/src/Ice/ConnectionI.java
+++ b/java/src/Ice/ConnectionI.java
@@ -1416,6 +1416,28 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne
setState(StateClosed, ex);
}
+ public synchronized void
+ invokeException(LocalException ex, int invokeNum)
+ {
+ //
+ // Fatal exception while invoking a request. Since sendResponse/sendNoResponse isn't
+ // called in case of a fatal exception we decrement _dispatchCount here.
+ //
+
+ setState(StateClosed, ex);
+
+ if(invokeNum > 0)
+ {
+ assert(_dispatchCount > 0);
+ _dispatchCount -= invokeNum;
+ assert(_dispatchCount >= 0);
+ if(_dispatchCount == 0)
+ {
+ notifyAll();
+ }
+ }
+ }
+
public String
type()
{
@@ -2189,37 +2211,18 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne
}
catch(LocalException ex)
{
- synchronized(this)
- {
- setState(StateClosed, ex);
- }
+ invokeException(ex, invokeNum);
}
catch(java.lang.AssertionError ex) // Upon assertion, we print the stack trace.
{
- synchronized(this)
- {
- UnknownException uex = new UnknownException();
- 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();
- _logger.error(uex.unknown);
- setState(StateClosed, uex);
- }
- }
- catch(java.lang.Exception ex)
- {
- synchronized(this)
- {
- UnknownException uex = new UnknownException();
- 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();
- setState(StateClosed, uex);
- }
+ UnknownException uex = new UnknownException();
+ 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();
+ _logger.error(uex.unknown);
+ invokeException(uex, invokeNum);
}
finally
{
@@ -2228,25 +2231,6 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne
reclaimIncoming(in);
}
}
-
- //
- // If invoke() above raised an exception, and therefore
- // neither sendResponse() nor sendNoResponse() has been
- // called, then we must decrement _dispatchCount here.
- //
- if(invokeNum > 0)
- {
- synchronized(this)
- {
- assert(_dispatchCount > 0);
- _dispatchCount -= invokeNum;
- assert(_dispatchCount >= 0);
- if(_dispatchCount == 0)
- {
- notifyAll();
- }
- }
- }
}
private void
diff --git a/java/src/IceInternal/Incoming.java b/java/src/IceInternal/Incoming.java
index 70615982807..8b8b1f1619a 100644
--- a/java/src/IceInternal/Incoming.java
+++ b/java/src/IceInternal/Incoming.java
@@ -155,177 +155,6 @@ final public class Incoming extends IncomingBase
}
}
}
- catch(Ice.RequestFailedException ex)
- {
- _is.endReadEncaps();
-
- 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[] facetPath2 = { ex.facet };
- _os.writeStringSeq(facetPath2);
- }
-
- _os.writeString(ex.operation);
-
- _connection.sendResponse(_os, _compress);
- }
- else
- {
- _connection.sendNoResponse();
- }
-
- return;
- }
- catch(Ice.UnknownLocalException ex)
- {
- _is.endReadEncaps();
-
- 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();
- }
-
- return;
- }
- catch(Ice.UnknownUserException ex)
- {
- _is.endReadEncaps();
-
- 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();
- }
-
- return;
- }
- catch(Ice.UnknownException ex)
- {
- _is.endReadEncaps();
-
- 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();
- }
-
- return;
- }
- catch(Ice.LocalException ex)
- {
- _is.endReadEncaps();
-
- 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();
- }
-
- return;
- }
/* Not possible in Java - UserExceptions are checked exceptions
catch(Ice.UserException ex)
{
@@ -335,30 +164,7 @@ final public class Incoming extends IncomingBase
catch(java.lang.Exception ex)
{
_is.endReadEncaps();
-
- 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(ex);
return;
}
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
diff --git a/java/src/IceInternal/IncomingBase.java b/java/src/IceInternal/IncomingBase.java
index 0f6908502b1..98b6777ed05 100644
--- a/java/src/IceInternal/IncomingBase.java
+++ b/java/src/IceInternal/IncomingBase.java
@@ -128,6 +128,216 @@ public class IncomingBase
_os.instance().initializationData().logger.warning(sw.toString());
}
+ final protected void
+ __handleException(java.lang.Exception exc)
+ {
+ 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[] facetPath2 = { ex.facet };
+ _os.writeStringSeq(facetPath2);
+ }
+
+ _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(_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();
+ }
+ }
+ 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();
+ }
+ }
+ }
+
protected Ice.Current _current;
protected Ice.Object _servant;
protected Ice.ServantLocator _locator;