¿Cómo compruebo si el flujo de salida de un socket está cerrado?

Tengo este codigo

public void post(String message) { output.close(); final String mess = message; (new Thread() { public void run() { while (true) { try { output.println(mess); System.out.println("The following message was successfully sent:"); System.out.println(mess); break; } catch (NullPointerException e) { try {Thread.sleep(1000);} catch (InterruptedException ie) {} } } } }).start(); } 

Como puede ver, cierro el zócalo al principio del código y luego try de usarlo para enviar información a otra computadora. El progtwig me escribe “El siguiente mensaje fue enviado con éxito”. Esto significa que la NullPointerException no fue lanzada.

Entonces, ¿Java no es una excepción si intenta usar una secuencia de salida cerrada de un socket? ¿Hay alguna forma de verificar si un socket está cerrado o abierto?

ADICIONAL

Inicializo el zócalo de la siguiente manera:

 clientSideSocket = new Socket(hostname,port); PrintWriter out = new PrintWriter(clientSideSocket.getOutputStream(), true); browser.output = out;