summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/Application.java4
-rw-r--r--java/src/Ice/ConnectionI.java67
-rw-r--r--java/src/Ice/PluginManagerI.java2
-rw-r--r--java/src/Ice/_AMD_Object_ice_invoke.java1
-rw-r--r--java/src/IceBox/ServiceManagerI.java10
-rw-r--r--java/src/IceInternal/BasicStream.java8
-rw-r--r--java/src/IceInternal/ConnectionMonitor.java2
-rw-r--r--java/src/IceInternal/Incoming.java168
-rw-r--r--java/src/IceInternal/IncomingAsync.java409
-rw-r--r--java/src/IceInternal/IncomingBase.java27
-rw-r--r--java/src/IceInternal/Instance.java2
-rw-r--r--java/src/IceInternal/OutgoingAsync.java6
-rw-r--r--java/src/IceInternal/ServantManager.java2
-rw-r--r--java/src/IceInternal/ThreadPool.java2
14 files changed, 387 insertions, 323 deletions
diff --git a/java/src/Ice/Application.java b/java/src/Ice/Application.java
index 028250ee33d..d42d1b9177b 100644
--- a/java/src/Ice/Application.java
+++ b/java/src/Ice/Application.java
@@ -71,7 +71,7 @@ public abstract class Application
ex.printStackTrace();
status = 1;
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
System.err.println(_appName + ": unknown exception");
ex.printStackTrace();
@@ -90,7 +90,7 @@ public abstract class Application
ex.printStackTrace();
status = 1;
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
System.err.println(_appName + ": unknown exception");
ex.printStackTrace();
diff --git a/java/src/Ice/ConnectionI.java b/java/src/Ice/ConnectionI.java
index 5d985429f03..1cb6f68a38b 100644
--- a/java/src/Ice/ConnectionI.java
+++ b/java/src/Ice/ConnectionI.java
@@ -1207,32 +1207,41 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne
}
catch(LocalException ex)
{
- assert(invokeNum > 0);
-
synchronized(this)
{
setState(StateClosed, ex);
}
}
- catch(AssertionError ex)
+ catch(java.lang.AssertionError ex) // Upon assertion, we print the stack trace.
{
- assert(invokeNum > 0);
-
- //
- // Java only: Upon an assertion, we don't kill the whole
- // process, but just print the stack trace and close the
- // connection.
- //
synchronized(this)
{
+ UnknownException uex = new 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();
- UnknownException exc = new UnknownException();
- exc.unknown = sw.toString();
- _logger.error(exc.unknown);
- setState(StateClosed, exc);
+ uex.unknown = sw.toString();
+ if(ex instanceof java.lang.AssertionError)
+ {
+ _logger.error(uex.unknown);
+ }
+ setState(StateClosed, uex);
+ }
+ }
+ catch(java.lang.Exception ex)
+ {
+ synchronized(this)
+ {
+ UnknownException uex = new 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();
+ setState(StateClosed, uex);
}
}
finally
@@ -1241,23 +1250,23 @@ 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)
+ }
+
+ //
+ // 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)
{
- synchronized(this)
+ assert(_dispatchCount > 0);
+ _dispatchCount -= invokeNum;
+ assert(_dispatchCount >= 0);
+ if(_dispatchCount == 0)
{
- assert(_dispatchCount > 0);
- _dispatchCount -= invokeNum;
- assert(_dispatchCount >= 0);
- if(_dispatchCount == 0)
- {
- notifyAll();
- }
+ notifyAll();
}
}
}
diff --git a/java/src/Ice/PluginManagerI.java b/java/src/Ice/PluginManagerI.java
index 5956990c479..792e79d4105 100644
--- a/java/src/Ice/PluginManagerI.java
+++ b/java/src/Ice/PluginManagerI.java
@@ -186,7 +186,7 @@ public final class PluginManagerI extends LocalObjectImpl implements PluginManag
{
plugin = factory.create(_communicator, name, args);
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
PluginInitializationException e = new PluginInitializationException();
e.reason = "exception in factory " + className;
diff --git a/java/src/Ice/_AMD_Object_ice_invoke.java b/java/src/Ice/_AMD_Object_ice_invoke.java
index 36e72b05f67..946048bf540 100644
--- a/java/src/Ice/_AMD_Object_ice_invoke.java
+++ b/java/src/Ice/_AMD_Object_ice_invoke.java
@@ -29,7 +29,6 @@ final class _AMD_Object_ice_invoke extends IceInternal.IncomingAsync implements
__exception(ex);
return;
}
-
__response(ok);
}
diff --git a/java/src/IceBox/ServiceManagerI.java b/java/src/IceBox/ServiceManagerI.java
index 4c407199912..c75414f2169 100644
--- a/java/src/IceBox/ServiceManagerI.java
+++ b/java/src/IceBox/ServiceManagerI.java
@@ -167,7 +167,7 @@ public final class ServiceManagerI extends _ServiceManagerDisp
stopAll();
return 1;
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
java.io.StringWriter sw = new java.io.StringWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(sw);
@@ -327,7 +327,7 @@ public final class ServiceManagerI extends _ServiceManagerDisp
{
throw ex;
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
FailureException e = new FailureException();
e.reason = "ServiceManager: exception while starting service " + service + ": " + ex;
@@ -353,7 +353,7 @@ public final class ServiceManagerI extends _ServiceManagerDisp
{
info.service.stop();
}
- catch(Exception e)
+ catch(java.lang.Exception e)
{
java.io.StringWriter sw = new java.io.StringWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(sw);
@@ -389,7 +389,7 @@ public final class ServiceManagerI extends _ServiceManagerDisp
// the communicator for its own reasons.
//
}
- catch(Exception e)
+ catch(java.lang.Exception e)
{
java.io.StringWriter sw = new java.io.StringWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(sw);
@@ -405,7 +405,7 @@ public final class ServiceManagerI extends _ServiceManagerDisp
{
info.communicator.destroy();
}
- catch(Exception e)
+ catch(java.lang.Exception e)
{
java.io.StringWriter sw = new java.io.StringWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(sw);
diff --git a/java/src/IceInternal/BasicStream.java b/java/src/IceInternal/BasicStream.java
index 643a7f9cf9e..2eb053a5cc5 100644
--- a/java/src/IceInternal/BasicStream.java
+++ b/java/src/IceInternal/BasicStream.java
@@ -1505,7 +1505,7 @@ public class BasicStream
{
obj.ice_postUnmarshal();
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
java.io.StringWriter sw = new java.io.StringWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(sw);
@@ -1534,7 +1534,7 @@ public class BasicStream
{
v.ice_preMarshal();
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
java.io.StringWriter sw = new java.io.StringWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(sw);
@@ -1680,7 +1680,7 @@ public class BasicStream
{
return (Ice.Object)_class.newInstance();
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
Ice.SyscallException e = new Ice.SyscallException();
e.initCause(ex);
@@ -1763,7 +1763,7 @@ public class BasicStream
{
throw ex;
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
Ice.SyscallException e = new Ice.SyscallException();
e.initCause(ex);
diff --git a/java/src/IceInternal/ConnectionMonitor.java b/java/src/IceInternal/ConnectionMonitor.java
index 593cefc5ebf..6c6fc1efd5b 100644
--- a/java/src/IceInternal/ConnectionMonitor.java
+++ b/java/src/IceInternal/ConnectionMonitor.java
@@ -140,7 +140,7 @@ public final class ConnectionMonitor extends Thread
_instance.logger().error(s);
}
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
synchronized(this)
{
diff --git a/java/src/IceInternal/Incoming.java b/java/src/IceInternal/Incoming.java
index f447e41a76e..ffbc91b4ad0 100644
--- a/java/src/IceInternal/Incoming.java
+++ b/java/src/IceInternal/Incoming.java
@@ -103,7 +103,8 @@ final public class Incoming extends IncomingBase
_os.startWriteEncaps();
}
- DispatchStatus status;
+ // Initialize status to some value, to keep the compiler happy.
+ DispatchStatus status = DispatchStatus.DispatchOK;
//
// Don't put the code above into the try block below. Exceptions
@@ -113,49 +114,59 @@ final public class Incoming extends IncomingBase
try
{
- if(servantManager != null)
+ try
{
- _servant = servantManager.findServant(_current.id, _current.facet);
-
- if(_servant == null && _current.id.category.length() > 0)
+ if(servantManager != null)
{
- _locator = servantManager.findServantLocator(_current.id.category);
- if(_locator != null)
+ _servant = servantManager.findServant(_current.id, _current.facet);
+
+ if(_servant == null && _current.id.category.length() > 0)
+ {
+ _locator = servantManager.findServantLocator(_current.id.category);
+ if(_locator != null)
+ {
+ _servant = _locator.locate(_current, _cookie);
+ }
+ }
+
+ if(_servant == null)
{
- _servant = _locator.locate(_current, _cookie);
+ _locator = servantManager.findServantLocator("");
+ if(_locator != null)
+ {
+ _servant = _locator.locate(_current, _cookie);
+ }
}
}
if(_servant == null)
{
- _locator = servantManager.findServantLocator("");
- if(_locator != null)
+ if(servantManager != null && servantManager.hasServant(_current.id))
+ {
+ status = DispatchStatus.DispatchFacetNotExist;
+ }
+ else
{
- _servant = _locator.locate(_current, _cookie);
+ status = DispatchStatus.DispatchObjectNotExist;
}
}
+ else
+ {
+ status = _servant.__dispatch(this, _current);
+ }
}
-
- if(_servant == null)
- {
- if(servantManager != null && servantManager.hasServant(_current.id))
- {
- status = DispatchStatus.DispatchFacetNotExist;
- }
- else
- {
- status = DispatchStatus.DispatchObjectNotExist;
- }
- }
- else
- {
- status = _servant.__dispatch(this, _current);
- }
- }
- catch(Ice.RequestFailedException ex)
- {
+ finally
+ {
+ if(_locator != null && _servant != null && status != DispatchStatus.DispatchAsync)
+ {
+ _locator.finished(_current, _servant, _cookie.value);
+ }
+ }
+ }
+ catch(Ice.RequestFailedException ex)
+ {
_is.endReadEncaps();
-
+
if(ex.id == null)
{
ex.id = _current.id;
@@ -212,13 +223,14 @@ final public class Incoming extends IncomingBase
}
_os.writeString(ex.operation);
- }
- //
- // Must be called last, so that if an exception is raised,
- // this function is definitely *not* called.
- //
- __finishInvoke();
+ _connection.sendResponse(_os, _compress);
+ }
+ else
+ {
+ _connection.sendNoResponse();
+ }
+
return;
}
catch(Ice.UnknownLocalException ex)
@@ -236,13 +248,13 @@ final public class Incoming extends IncomingBase
_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();
+ }
- //
- // Must be called last, so that if an exception is raised,
- // this function is definitely *not* called.
- //
- __finishInvoke();
return;
}
catch(Ice.UnknownUserException ex)
@@ -260,13 +272,13 @@ final public class Incoming extends IncomingBase
_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();
+ }
- //
- // Must be called last, so that if an exception is raised,
- // this function is definitely *not* called.
- //
- __finishInvoke();
return;
}
catch(Ice.UnknownException ex)
@@ -284,13 +296,13 @@ final public class Incoming extends IncomingBase
_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();
+ }
- //
- // Must be called last, so that if an exception is raised,
- // this function is definitely *not* called.
- //
- __finishInvoke();
return;
}
catch(Ice.LocalException ex)
@@ -307,18 +319,19 @@ final public class Incoming extends IncomingBase
_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();
+ }
- //
- // Must be called last, so that if an exception is raised,
- // this function is definitely *not* called.
- //
- __finishInvoke();
return;
}
/* Not possible in Java - UserExceptions are checked exceptions
@@ -327,7 +340,7 @@ final public class Incoming extends IncomingBase
// ...
}
*/
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
_is.endReadEncaps();
@@ -341,18 +354,19 @@ final public class Incoming extends IncomingBase
_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());
- }
-
- //
- // Must be called last, so that if an exception is raised,
- // this function is definitely *not* called.
- //
- __finishInvoke();
+ _connection.sendResponse(_os, _compress);
+ }
+ else
+ {
+ _connection.sendNoResponse();
+ }
+
return;
}
@@ -371,9 +385,7 @@ final public class Incoming extends IncomingBase
if(status == DispatchStatus.DispatchAsync)
{
//
- // If this was an asynchronous dispatch, we're done
- // here. We do *not* call __finishInvoke(), because
- // the call is not finished yet.
+ // If this was an asynchronous dispatch, we're done here.
//
return;
}
@@ -415,13 +427,13 @@ final public class Incoming extends IncomingBase
_os.writeByte((byte)status.value());
_os.pos(save);
}
- }
- //
- // Must be called last, so that if an exception is raised,
- // this function is definitely *not* called.
- //
- __finishInvoke();
+ _connection.sendResponse(_os, _compress);
+ }
+ else
+ {
+ _connection.sendNoResponse();
+ }
}
public BasicStream
diff --git a/java/src/IceInternal/IncomingAsync.java b/java/src/IceInternal/IncomingAsync.java
index 20e6fef10fa..3770bbc1a79 100644
--- a/java/src/IceInternal/IncomingAsync.java
+++ b/java/src/IceInternal/IncomingAsync.java
@@ -15,7 +15,6 @@ public class IncomingAsync extends IncomingBase
IncomingAsync(Incoming in) // Adopts the argument. It must not be used afterwards.
{
super(in);
- _finished = false;
}
protected void
@@ -35,216 +34,286 @@ public class IncomingAsync extends IncomingBase
final protected void
__response(boolean ok)
{
- assert(!_finished);
- _finished = true;
-
- if(_response)
+ try
{
- _os.endWriteEncaps();
-
- int save = _os.pos();
- _os.pos(Protocol.headerSize + 4); // Dispatch status position.
+ if(_locator != null && _servant != null)
+ {
+ _locator.finished(_current, _servant, _cookie.value);
+ }
- if(ok)
+ if(_response)
{
- _os.writeByte((byte)DispatchStatus._DispatchOK);
+ _os.endWriteEncaps();
+
+ int save = _os.pos();
+ _os.pos(Protocol.headerSize + 4); // Dispatch status position.
+
+ if(ok)
+ {
+ _os.writeByte((byte)DispatchStatus._DispatchOK);
+ }
+ else
+ {
+ _os.writeByte((byte)DispatchStatus._DispatchUserException);
+ }
+
+ _os.pos(save);
+
+ _connection.sendResponse(_os, _compress);
}
else
{
- _os.writeByte((byte)DispatchStatus._DispatchUserException);
+ _connection.sendNoResponse();
}
-
- _os.pos(save);
}
-
- //
- // Must be called last, so that if an exception is raised,
- // this function is definitely *not* called.
- //
- __finishInvoke();
+ 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);
+ }
}
final protected void
- __exception(Exception exc)
+ __exception(java.lang.Exception exc)
{
- assert(!_finished);
- _finished = true;
-
try
{
- throw exc;
- }
- catch(Ice.RequestFailedException ex)
- {
- if(ex.id == null)
+ if(_locator != null && _servant != 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;
+ _locator.finished(_current, _servant, _cookie.value);
}
- if(_os.instance().properties().getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 1)
+ try
{
- __warning(ex);
+ throw exc;
}
-
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- if(ex instanceof Ice.ObjectNotExistException)
+ catch(Ice.RequestFailedException ex)
+ {
+ if(ex.id == null)
{
- _os.writeByte((byte)DispatchStatus._DispatchObjectNotExist);
+ ex.id = _current.id;
}
- else if(ex instanceof Ice.FacetNotExistException)
+
+ if(ex.facet == null)
{
- _os.writeByte((byte)DispatchStatus._DispatchFacetNotExist);
+ ex.facet = _current.facet;
}
- else if(ex instanceof Ice.OperationNotExistException)
+
+ if(ex.operation == null || ex.operation.length() == 0)
{
- _os.writeByte((byte)DispatchStatus._DispatchOperationNotExist);
+ ex.operation = _current.operation;
}
- else
+
+ if(_os.instance().properties().getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 1)
{
- assert(false);
+ __warning(ex);
}
- 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);
- }
+ 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);
- _os.writeString(ex.operation);
- }
- }
- catch(Ice.UnknownLocalException ex)
- {
- if(_os.instance().properties().getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
- {
- __warning(ex);
- }
+ //
+ // 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);
+ }
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- _os.writeByte((byte)DispatchStatus._DispatchUnknownLocalException);
- _os.writeString(ex.unknown);
- }
- }
- catch(Ice.UnknownUserException ex)
- {
- if(_os.instance().properties().getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
- {
- __warning(ex);
- }
+ _os.writeString(ex.operation);
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- _os.writeByte((byte)DispatchStatus._DispatchUnknownUserException);
- _os.writeString(ex.unknown);
- }
- }
- catch(Ice.UnknownException ex)
- {
- if(_os.instance().properties().getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
- {
- __warning(ex);
+ _connection.sendResponse(_os, _compress);
+ }
+ else
+ {
+ _connection.sendNoResponse();
+ }
}
-
- if(_response)
- {
- _os.endWriteEncaps();
- _os.resize(Protocol.headerSize + 4, false); // Dispatch status position.
- _os.writeByte((byte)DispatchStatus._DispatchUnknownException);
- _os.writeString(ex.unknown);
- }
- }
- catch(Ice.LocalException ex)
- {
- if(_os.instance().properties().getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ catch(Ice.UnknownLocalException ex)
{
- __warning(ex);
+ if(_os.instance().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().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());
- }
- }
- catch(Ice.UserException ex)
- {
- if(_os.instance().properties().getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ 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)
{
- __warning(ex);
+ if(_os.instance().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().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());
- }
- }
- catch(Exception ex)
- {
- if(_os.instance().properties().getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ 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)
{
- __warning(ex);
+ if(_os.instance().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().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());
- }
+ 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();
+ }
+ }
+ }
+ 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);
}
-
- //
- // Must be called last, so that if an exception is raised,
- // this function is definitely *not* called.
- //
- __finishInvoke();
}
final protected BasicStream
@@ -252,6 +321,4 @@ public class IncomingAsync extends IncomingBase
{
return _os;
}
-
- protected boolean _finished;
}
diff --git a/java/src/IceInternal/IncomingBase.java b/java/src/IceInternal/IncomingBase.java
index 73d5373bc9f..5356a1f7706 100644
--- a/java/src/IceInternal/IncomingBase.java
+++ b/java/src/IceInternal/IncomingBase.java
@@ -116,30 +116,7 @@ public class IncomingBase
}
final protected void
- __finishInvoke()
- {
- if(_locator != null && _servant != null)
- {
- _locator.finished(_current, _servant, _cookie.value);
- }
-
- //
- // Send a response if necessary. If we don't need to send a
- // response, we still need to tell the connection that we're
- // finished with dispatching.
- //
- if(_response)
- {
- _connection.sendResponse(_os, _compress);
- }
- else
- {
- _connection.sendNoResponse();
- }
- }
-
- final protected void
- __warning(Exception ex)
+ __warning(java.lang.Exception ex)
{
assert(_os != null);
@@ -167,5 +144,5 @@ public class IncomingBase
protected BasicStream _os;
- private Ice.ConnectionI _connection;
+ protected Ice.ConnectionI _connection;
}
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java
index c5b3ba82950..6fb99599217 100644
--- a/java/src/IceInternal/Instance.java
+++ b/java/src/IceInternal/Instance.java
@@ -596,7 +596,7 @@ public class Instance
{
Class.forName(className);
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
_logger.warning("unable to validate package: " + key + "=" + pkg);
}
diff --git a/java/src/IceInternal/OutgoingAsync.java b/java/src/IceInternal/OutgoingAsync.java
index 98ccd3cfa77..30718ec1ecb 100644
--- a/java/src/IceInternal/OutgoingAsync.java
+++ b/java/src/IceInternal/OutgoingAsync.java
@@ -157,7 +157,7 @@ public abstract class OutgoingAsync
{
__response(status == DispatchStatus._DispatchOK);
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
warning(ex);
}
@@ -225,7 +225,7 @@ public abstract class OutgoingAsync
{
ice_exception(exc);
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
warning(ex);
}
@@ -413,7 +413,7 @@ public abstract class OutgoingAsync
protected abstract void __response(boolean ok);
private final void
- warning(Exception ex)
+ warning(java.lang.Exception ex)
{
if(_reference != null) // Don't print anything if cleanup() was already called.
{
diff --git a/java/src/IceInternal/ServantManager.java b/java/src/IceInternal/ServantManager.java
index cd7843e81e6..f7343a40da1 100644
--- a/java/src/IceInternal/ServantManager.java
+++ b/java/src/IceInternal/ServantManager.java
@@ -214,7 +214,7 @@ public final class ServantManager
{
locator.deactivate((String)e.getKey());
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
java.io.StringWriter sw = new java.io.StringWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(sw);
diff --git a/java/src/IceInternal/ThreadPool.java b/java/src/IceInternal/ThreadPool.java
index b9408d57c52..f916ff256f5 100644
--- a/java/src/IceInternal/ThreadPool.java
+++ b/java/src/IceInternal/ThreadPool.java
@@ -1116,7 +1116,7 @@ public final class ThreadPool
_instance.logger().error(s);
promote = true;
}
- catch(Exception ex)
+ catch(java.lang.Exception ex)
{
java.io.StringWriter sw = new java.io.StringWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(sw);