ciao a tutti, ho un grosso problema..
sto sviluppando un server ftp :
ad ogni connessione che riceve apre un nuovo thread con runnable e fin qui nessun problema..
quando poi l'utente si disconnette (ad esempio con quit), vengono svolte delle operazioni particolari sul mio server.
il problema che ho invece è che non riesco ad intercettare quando la connessione socket cade, ad esempio per una assenza di rete, e non vengono eseguite correttamente le operazioni di chiusura sul server..
come posso fare ? qualche suggerimento / idea ??

posto qui il codice..
ho messo un commento a fianco alla riga che richiama le operazioni di disconnessione..
purtroppo di li non passa però..

codice:
	public void run(){
		
		try {
			
			BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream() ) );
			String st="";
	  
			while(st!=null){
				st = in.readLine();
				if (st!=null) {
					st = st.trim();
					doCommand(st);
				}
			} // FINE CICLO WHILE
			
		}catch(IOException e) {
			if (ses.logedIn)
				bb.probeException(e, "Could not read from sessionnumber: " + ses.sessionNr + ". The username was: " + ses.getLogin() + ".");
		}
		
		// CHIUSURA DEL SOCKET
		try{
			socket.close();
		}catch(Exception e){
			bb.probeException(e, "Cold not close the connection to sessionnumber: " + ses.sessionNr + ". The username was: " + ses.getLogin() + ".");
		}
		
		bb.message("Fine connessione : " + ses.getLogin() + "(" + ses.logedIn + ")");
		
		dock.disconnect(this); // IN QUESTA RIGA NON PASSA SE MUORE LA CONNESSIONE 
		
		ses.us.userDisconnected(UserSessionObserver.USER_NORMAL_END);

	  }