Index: ServerGIOPConnection.java =================================================================== RCS file: /web/www.jacorb.org/cvs/jacorb/JacORB/src/org/jacorb/orb/giop/ServerGIOPConnection.java,v retrieving revision 1.24 diff -r1.24 ServerGIOPConnection.java 232a233,243 > * In order to fix COMM_FAILURE deadlock by Kent 2009-06-01 > */ > protected void streamClosedWithoutWriteLock() { > if (logger.isDebugEnabled()) > { > logger.debug (this.toString() + ": streamClosedWithoutWriteLock()"); > } > this.streamClosed(); > } > > /** Index: ClientGIOPConnection.java =================================================================== RCS file: /web/www.jacorb.org/cvs/jacorb/JacORB/src/org/jacorb/orb/giop/ClientGIOPConnection.java,v retrieving revision 1.17 diff -r1.17 ClientGIOPConnection.java 114a115,135 > * Add this method in order to fix COMM_FAILURE deadlock by Kent 2009-05-31 > * Client-side implementation what to do when the underlying transport > * is closed during a read operation. We mark the transport as closed > * and allow it to be reopened later, when the client retries. > */ > protected void streamClosedWithoutWriteLock() > { > if (logger.isDebugEnabled()) > { > logger.debug (this.toString() + ": streamClosedWithoutWriteLock()"); > } > > closeAllowReopenWithoutWriteLock(); > > if( connection_listener != null ) > { > connection_listener.streamClosed(); > } > } > > /** 142a164,193 > /** > * Add this method in order to fix COMM_FAILURE deadlock by Kent 2009-05-31 > * Closes the underlying transport, but keeps this ClientGIOPConnection > * alive. If, subsequently, another request is sent to this connection, > * it will try to reopen the transport. > */ > private void closeAllowReopenWithoutWriteLock() > { > if (logger.isDebugEnabled()) > { > logger.debug (this.toString() + ": closeAllowReopenWithoutWriteLock()"); > } > > //try > //{ > synchronized (connect_sync) > { > //getWriteLock(); > transport.close(); > // We expect that the same transport can be reconnected > // after a close, something that the ETF draft isn't > // particularly clear about. > } > //} > //finally > //{ > //releaseWriteLock(); > //} > } > Index: GIOPConnection.java =================================================================== RCS file: /web/www.jacorb.org/cvs/jacorb/JacORB/src/org/jacorb/orb/giop/GIOPConnection.java,v retrieving revision 1.66 diff -r1.66 GIOPConnection.java 300a301,305 > > /** > * Add this method in order to fix COMM_FAILURE deadlock by Kent 2009-05-31 > */ > protected abstract void streamClosedWithoutWriteLock(); 340c345,347 < this.streamClosed(); --- > //FIXME just remove getWriteLock(), unknow impact. by Kent > //this.streamClosed(); > this.streamClosedWithoutWriteLock(); 451c458,459 < close(); --- > // Removed. See JacORB Bug 708 > //close(); 453c461 < // notify GIOPConnectionManager of close --- > // notify GIOPConnectionManager of close //FIXME should call streamClosedWithoutWriteLock() 984c992,993 < releaseWriteLock(); --- > //Remove the following line in order to fix COMM_FAILURE deadlock by Kent 2009-05-31 > //releaseWriteLock(); 987c996,997 < close(); --- > // Removed. See JacORB Bug 708 > //close(); 989c999,1002 < this.streamClosed(); --- > //Call another streamClosed() method in order to fix COMM_FAILURE deadlock by Kent 2009-05-31 > //this.streamClosed(); > this.streamClosedWithoutWriteLock(); >