diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/Application.java | 4 | ||||
-rw-r--r-- | java/src/Ice/ConnectionI.java | 67 | ||||
-rw-r--r-- | java/src/Ice/PluginManagerI.java | 2 | ||||
-rw-r--r-- | java/src/Ice/_AMD_Object_ice_invoke.java | 1 | ||||
-rw-r--r-- | java/src/IceBox/ServiceManagerI.java | 10 | ||||
-rw-r--r-- | java/src/IceInternal/BasicStream.java | 8 | ||||
-rw-r--r-- | java/src/IceInternal/ConnectionMonitor.java | 2 | ||||
-rw-r--r-- | java/src/IceInternal/Incoming.java | 168 | ||||
-rw-r--r-- | java/src/IceInternal/IncomingAsync.java | 409 | ||||
-rw-r--r-- | java/src/IceInternal/IncomingBase.java | 27 | ||||
-rw-r--r-- | java/src/IceInternal/Instance.java | 2 | ||||
-rw-r--r-- | java/src/IceInternal/OutgoingAsync.java | 6 | ||||
-rw-r--r-- | java/src/IceInternal/ServantManager.java | 2 | ||||
-rw-r--r-- | java/src/IceInternal/ThreadPool.java | 2 |
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); |