Ciao, a tutti!!
Nel mio programma ho un thread che sta in ascolto su una ServerSocket e ogni volta che esegue una accept crea un thread per la comunicazione sulla Socket creata dalla accept, il codice è il seguente:

codice:
public class TaskServerSocket implements Runnable{
    private Server ser;
    
    public TaskServerSocket(Server ser) {
	this.ser= ser;
    }
    
    public synchronized void run() {
	while(true) {
	    try {
		Socket s = ser.getServSock().accept();
                //Aggiungo un elemento al vettore delle connessioni
		ser.getConnessioni().addConnessione(new Connessione(s, ser));
		System.out.println("Stabilita connessione con: "+ s.getInetAddress().getHostAddress());
	    } catch(IOException ex) {
		System.out.println(ex);
	    }
	}
    }
}
Con la creazione dell'oggetto connessione viene creato il thread per la comunicazione:

codice:
public class Connessione {

    private Socket s;
    private long timeRif;
    private Thread threadServerQuery;
    private Server ser;
    
    public Connessione(Socket s, Server ser) {
	Date h = new Date();
	this.s = s;
	this.timeRif = new Long(h.getTime());
	this.ser = ser;
	TaskServerQuery sq = new TaskServerQuery(s, ser);
	threadServerQuery = new Thread(sq);
	threadServerQuery.start();
    }
    ....
}
Il metodo run della classe TaskServerQuery è il seguente:
codice:
public void run() {
	System.err.println("Server Query attivo [" + s.getInetAddress().getHostAddress() + "]");
	ObjectInputStream input = null;
	ObjectOutputStream output = null;
	Messaggio m = null;
	try {
	    input = new ObjectInputStream(s.getInputStream()); 
	    System.out.println("Input stram creato");
	} catch (IOException ex) {
	    System.err.println("ECC0: " + ex);
	}
     ....
    }
Il problema è nella riga in rosso, il thread si blocca su questa riga e quando la connessione viene chiusa, ovvero un altro thread rimuove il relativo elemento di tipo Connessione dal vettore delle connessioni, viene stampata la seguente eccezione:
codice:
ECC0: java.io.EOFException
Sapete dirmi dov'è l'errore? Perchè non riesce ad ottenere l'input stream associato alla socket??

Grazie