JDK-6423867 : Regression: Can not reconnect or make new connection to restarted VM
  • Type: Bug
  • Component: tools
  • Sub-Component: jconsole
  • Affected Version: 6
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2006-05-10
  • Updated: 2010-07-29
  • Resolved: 2006-05-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.
JDK 6
6 b86Fixed
Related Reports
Relates :  
Relates :  
Description
As of Mustang b73 JConsole lost the ability to reconnect an established window to a remote VM that has been restarted on the same port. This may be the desired behavior, since it is difficult to verify that all the resources of the remote mbeans will match the previously collected data.

There are however some user experience issues involved here. I would think that if during a retry attempt we detect that a new VM has been started on the same port as the old, then we ought to either automatically create a new window (using a new ProxyClient instance), or at least inform the user about this and either offer to create the new window or suggest that it is done manually.

The most serious issue is that it is currently impossible to create a new window in order to make a new connection to the restarted VM.

Comments
EVALUATION I suspect that the old ProxyClient is found in the cache and reused, resulting in the same failure to reconnect to the old VM. The only workaround for the user is currently to start a new instance of JConsole. A minimal fix for beta2 is to remove the ProxyClient instance from the cache when we detect that a VM has been restarted. This will allow the user to create a new window to the new process, without being forced to close the old window. The problem with this fix is that we can't know if the VM is new unless we first try to reconnect to it. So, a user who knows that the VM was restarted will probably not click on "Retry" but will directly create a new window. This new window will then fail (because it uses the old connection) and the user will then have to create yet another new window to connect to the new VM. We will have to deal with this issue in a separate CR after beta2.
10-05-2006