Ho un server multithread che accetta connessioni di client su un socket ServerSocket e le assegna a socket Socket.
Una volta accettata una nuova connessione, viene avviato un nuovo thread per gestirla del tipo :

queryHandler queryHand = new queryHandler(clientSock);

La classe queryHandler funziona su un altro thread (estende Thread e si avvia nel costruttore) deve mettersi in attesa di oggetti inviati dal client, riceverli, elaborarli e reinviarli.

Per fare questo, dopo aver costruito l oggetto, viene usato un metodo run() del tipo:

...
ObjectInputStream ois = new ObjectInputStream(client.getInputStream());
ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream());
queryAsk ask = (queryAsk)ois.readObject();
...
queryReply reply = new queryReply();
oos.writeObject(reply);
...

il problema che ho rilevato inserendo la stampa di alcuni messaggi di controllo sta nel fatto che nel momento dell acquisizione delle streams il thread si blocca e non va piu avanti (avevo provato anche a farle prendere nel costruttore ma cosi facendo non si avviava nemmeno il main, si bloccava prima di this.start())

qualcuno mi illumina?

grazie : )