ObjectOutputStream colgando para siempre

Tengo un cliente que se conecta a un servidor mediante SSLSocket. A continuación, trato de crear un OOS con ObjectOutputStream oos = new ObjectOutputStream(sslsocket.getOutputStream());

Si todo funciona bien en el lado del servidor, esto está bien. Sin embargo, me gustaría poner algo en su lugar del lado del cliente que intente crear el ObjectOutputStream, pero si no ha sucedido en 60 segundos, registre el error y continúe procesando. No veo ninguna opción de tiempo de espera para esto. ¿Algún ejemplo de cómo se podría hacer esto?

  SSLSocket sslsocket; try { System.setProperty("javax.net.ssl.trustStore", ); System.setProperty("javax.net.ssl.trustStorePassword", ); SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); sslsocket = (SSLSocket) sslsocketfactory.createSocket(InetAddress.getLocalHost(), ); } catch (Throwable e) { logger.logError(e.getMessage()); return null; } // This is where it hangs forever ObjectOutputStream oos = new ObjectOutputStream(sslsocket.getOutputStream()); oos.flush(); // never gets here oos.writeObject(orders); ObjectInputStream ois = new ObjectInputStream(sslsocket.getInputStream()); 

Debe crear ObjectOutputStream antes que ObjectInputStream.

EDITAR: ver comentarios a continuación. El problema real fue un lento protocolo de enlace SSL, que ocurre en la primera E / S en el socket, y durante el cual se realizan las lecturas y las escrituras. Así que la solución fue establecer un tiempo de espera de lectura.