JDK-2154604 : SUN ORB's connection table cleanup code cleans up "in use"
  • Type: Backport
  • Backport of: JDK-6435198
  • Component: other-libs
  • Sub-Component: corba:orb
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2007-10-17
  • Updated: 2011-02-16
  • Resolved: 2008-06-30
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other Other
1.4.2_18-rev,tbd_minorFixed tbd_minorResolved
Comments
EVALUATION Subject: Re: Esc 1-17598401, Bug 6435198 From: Harsha Godugu <###@###.###> Date: Thu, 20 Jul 2006 17:13:44 -0700 To: Nishant Patel <###@###.###> Hi Nishant, We know this problem. It's a bug in the code of 1.4.2 and tiger too. What's happening is, the connection cache is not locked properly. What we need to do is, how to identify busy connection. Cu/you are right. The isBusy() method is the culprit. Take a look at: Connection.java ConnectionTable.java IIOPConnection.java The logic is, to introduce a counter for every use of a connection. getConnection() calls for use of a connection from cache. Introduce another method called releaseConnection() Have the counter incremented in get/create/put connection() and then decrement the counter at releaseConnection(). In classes/com/sun/corba/se/internal/corba, there is client delegate file where the request,reply release cycle ends. Take a look at releasereply() method and call your new releaseConnection() for the connection in use. Modify the IIOPConnection.java: isBusy() code to check for the counter (newly introduced) against zero. If the counter is zero, then connection is eligible for cleaning. Else not. You may have to introduce a new method for accessing your counter. (a getter method) I hope that helps. If you get into some hurdle, let me know. I will come back to this next week. Harsha
17-10-2007