Community
Participate
Working Groups
+++ This bug was initially created as a clone of Bug #235756 +++ From bug 235756: When user has specified a different timeout for connections, both the local client and the server launcher must agree on the timeout value. Therefore IServerLauncher#setTimeout() API is needed. In order to clean up the way this is currently done, we'll need new API. In order to remain API Compatible, we'll need IServerLauncher2#setTimeout(), since IServerLauncher is an interface that can be implemented by clients, so extending the interface would break binary compatibility.
Currently the only IServerLauncher is the REXEC one and it's setSocketTimeoutValue() is set via: if (starter instanceof RexecDstoreServer){ ((RexecDstoreServer)starter).setSocketTimeoutValue(timeout); } Since this involves a breaking API change, I'll defer the fix for this.
A simpler way for achieving the setTimeout() capability without breaking API may be to define a well-known Property slot for the remote socket timeout. Server Launcher implementations are then expected to read that timeout property from the IServerLauncherProperties / PropertySets. Older implementations who are not yet aware of this Property slot would simply not read it. It looks like all we need is a public static final String REMOTE_SOCKET_TIMEOUT to hold the Property key. Does that make sense?