Read only archive ; use https://github.com/JacORB/JacORB/issues for new issues
View | Details | Raw Unified | Return to bug 708
Collapse All | Expand All

(-)ServerGIOPConnection.java (+11 lines)
Line 233 Link Here
233
     * In order to fix COMM_FAILURE deadlock by Kent 2009-06-01
234
     */
235
	protected void streamClosedWithoutWriteLock() {
236
		if (logger.isDebugEnabled())
237
        {
238
            logger.debug (this.toString() + ": streamClosedWithoutWriteLock()");
239
        }
240
		this.streamClosed();
241
	}
242
    
243
    /**
(-)ClientGIOPConnection.java (+51 lines)
Line 115 Link Here
115
     * Add this method in order to fix COMM_FAILURE deadlock by Kent 2009-05-31
116
     * Client-side implementation what to do when the underlying transport
117
     * is closed during a read operation.  We mark the transport as closed
118
     * and allow it to be reopened later, when the client retries.
119
     */
120
    protected void streamClosedWithoutWriteLock()
121
    {
122
        if (logger.isDebugEnabled())
123
        {
124
            logger.debug (this.toString() + ": streamClosedWithoutWriteLock()");
125
        }
126
127
        closeAllowReopenWithoutWriteLock();
128
129
        if( connection_listener != null )
130
        {
131
            connection_listener.streamClosed();
132
        }
133
    }
134
    
135
    /**
Line 143 Link Here
164
    /**
165
     * Add this method in order to fix COMM_FAILURE deadlock by Kent 2009-05-31
166
     * Closes the underlying transport, but keeps this ClientGIOPConnection
167
     * alive.  If, subsequently, another request is sent to this connection,
168
     * it will try to reopen the transport.
169
     */
170
    private void closeAllowReopenWithoutWriteLock()
171
    {
172
        if (logger.isDebugEnabled())
173
        {
174
            logger.debug (this.toString() + ": closeAllowReopenWithoutWriteLock()");
175
        }
176
177
        //try
178
        //{
179
            synchronized (connect_sync)
180
            {
181
                //getWriteLock();
182
                transport.close();
183
                // We expect that the same transport can be reconnected
184
                // after a close, something that the ETF draft isn't
185
                // particularly clear about.
186
            }
187
        //}
188
        //finally
189
        //{
190
            //releaseWriteLock();
191
        //}
192
    }
193
(-)GIOPConnection.java (-12 / +19 lines)
Line 301 Link Here
301
    
302
    /**
303
     * Add this method in order to fix COMM_FAILURE deadlock by Kent 2009-05-31
304
     */
305
    protected abstract void streamClosedWithoutWriteLock();
Line 340 Link Here
340
            this.streamClosed();
345
            //FIXME just remove getWriteLock(), unknow impact.	by Kent
341
--
346
            //this.streamClosed();
347
            this.streamClosedWithoutWriteLock();
Line 451 Link Here
451
        close();
458
        // Removed. See JacORB Bug 708 
452
--
459
        //close();
Line 453 Link Here
453
        // notify GIOPConnectionManager of close
461
        // notify GIOPConnectionManager of close	//FIXME should call streamClosedWithoutWriteLock()
454
--
Line 984 Link Here
984
                releaseWriteLock();
992
                //Remove the following line in order to fix COMM_FAILURE deadlock by Kent 2009-05-31
985
--
993
                //releaseWriteLock();
Line 987 Link Here
987
                close();
996
                // Removed. See JacORB Bug 708 
988
--
997
                //close();
Line 989 Link Here
989
                this.streamClosed();
999
                //Call another streamClosed() method in order to fix COMM_FAILURE deadlock by Kent 2009-05-31
990
--
1000
                //this.streamClosed();
1001
                this.streamClosedWithoutWriteLock();
1002
                

Return to bug 708