Is there any way to catch the situation where the server side of the RMI program fails to return to the client (i.e. client calls a method on the server and while the server is processing, the client machine dies...I want to be able to catch this on the server side)

swarraj kulkarni

This can be implemented by using the CallBack mechanism, where the server holds the reference of the client object. For every call on the remote server using the object, pass on the client ID (which has information corresponding to the client machine) as one more parameter to the method. The server executes the method and before returning the result, can test that the client corresponding to passed client ID is alive (by using reverse call to the client for example).

If the client is alive, server can send the result to client.