Questa è la parte server!

codice:
public class SimpleMaviServer implements Runnable {


    private ServerSocket server = null;
    private Thread thread = null;
    private MaviServerThread client = null;
    private boolean quit = false;


    //costruttore che mi legge la porta e mi 
    //crea connessione con il client
    public SimpleMaviServer(int port) {
        try {
            //stampo che sta avvenendo la connessione alla porta
            System.out.println("Binding to port " + port + ", please wait  ...");
            //creo un serversocket
            server = new ServerSocket(port);
            //stampo l'avvio del server
            System.out.println("Server started: " + server);
            //avvio il serversocket
            start();
        } catch (IOException ioe) {
            System.out.println(ioe);
        }
    }


    public void run() {
       
        //avvio un ciclo che non finisce finchè non viene digitato quit
        while (quit == false) {
            try {
                System.out.println("Waiting for a client ...");
                //richiamo il metodo addThread accettando il serversocket
                addThread(server.accept());
            } catch (IOException ie) {
                System.out.println("Acceptance Error: " + ie);
            }
        }
        //System.out.println("esco da run");
    }


    public void addThread(Socket socket) {
        try {
            System.out.println("Client accepted: " + socket);
            
            //creo un oggetto della classe MaviServerThread
            client = new MaviServerThread(this, socket);
            client.open();
            client.start();
        } catch (IOException ex) {
            Logger.getLogger(SimpleMaviServer.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


    public void start() { /* no change */ }


    public void stop() { /* no change */ }


    public static void main(String args[]) {
        
        //creo oggetto della classe SimpleMaviServer
        SimpleMaviServer s = new SimpleMaviServer(2996);
        //richiamo il metodo run della classe SimpleMaviServer
        s.run();


    }
}
codice:
package Server;


import java.net.*;
import java.io.*;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import server.JavaConnectDb;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.io.Serializable;
import negozio.Rquery;


public class MaviServerThread extends Thread implements Serializable {


    private Socket socket = null;
    private SimpleMaviServer server = null;
    private int ID = -1;
    // private DataInputStream streamIn = null;
    private Scanner scannerIn;
    private ObjectOutputStream printOut;
    private String received = "";
    private String cod_filiale;
    private static JavaConnectDb jcd = new JavaConnectDb("sweethome","root","kobraman94");
    public MaviServerThread(SimpleMaviServer _server, Socket _socket) {
        server = _server;
        socket = _socket;
        ID = socket.getPort();
    }


    @Override
    public void run() {
        try {
            System.out.println("Server Thread " + ID + " running.");
            scannerIn = new Scanner(socket.getInputStream());
            printOut = new ObjectOutputStream(socket.getOutputStream());
            boolean connessione = jcd.connetti();
       //gestisco il caso in cui non avvenga la connessione
            if (connessione == false) 
            {
                System.out.println("ERRORE: errore durante la connessione");
                System.out.println(jcd.getErrore());
             } connessione = jcd.connetti();
            while (!received.equals("QUIT")) {
                received = scannerIn.nextLine();
                String comando="";
                String contenuto="";
                if (received.contains("|"))
                {
                    String[] parts = received.split("|");
                    comando = received.substring(0, received.indexOf('|'));
                    contenuto = received.substring(received.indexOf('|')+1);
                }
                 switch(comando)
                {
                     case "cod_fil": cod_filiale = contenuto;
                                     System.out.println("codice filiale:" + cod_filiale);
                         break;             
                    case "listComm": printOut.writeObject(listComm());
                        break;
                    case "gestMag": printOut.writeObject(gestMag());
                    case "prova":printOut.writeObject(gestMag());
                        break;
                }
                
                
                System.out.println("client " + ID + " says: " + received);
                //System.out.println("client " + ID + " command: " + comando);
                //System.out.println("client " + ID + " content: " + contenuto);
                
                
                //printOut.println("your command: " + comando);
                //printOut.println("your content: " + contenuto);
            }
            socket.close();
        } catch (IOException ex) {
            Logger.getLogger(MaviServerThread.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


     public ResultSet gestMag()
     {
        String sql = "select * from prodotti_filiale where cod_filiale='"+ cod_filiale +"'";
        
        PreparedStatement pst = null;
        ResultSet rs = null;
        
        try
        {
            pst = JavaConnectDb.db.prepareStatement(sql);
            rs = pst.executeQuery();
            
        }
        catch(Exception ex)
        {}
        
        return rs;
    }
     
     public ResultSet listComm()
     {
         String id_tipo = "1";
         String sql = "select * from personale p, filiale f, tipo_personale t where p.cod_filiale=f.cod_filiale and p.id_tipo_personale=t.id_tipo and p.cod_filiale="+ cod_filiale+" and t.id_tipo="+ id_tipo;
         
         PreparedStatement pst = null;
         ResultSet rs = null;
         Rquery res=new Rquery(rs);
         try
         {
             pst = JavaConnectDb.db.prepareStatement(sql);
             rs = pst.executeQuery();
         }
         catch(Exception e)
         {}
         
         return rs;
     }
     public ResultSet prova()
     {
         String sql="select * from sweethome.prodotti";
         PreparedStatement pst = null;
         ResultSet rs = null;
           try
         {
             pst = JavaConnectDb.db.prepareStatement(sql);
             rs = pst.executeQuery();
         }
         catch(Exception e)
         {}
         return rs;
     }
    
    
    public void open() throws IOException {
//        streamIn = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
    }


    public void close() throws IOException {
  /*      if (socket != null) {
            socket.close();
        }
        if (streamIn != null) {
            streamIn.close();
        }
    */
    }
}
Sto cercando di far funzionare solo il metodo prova ma con scarsi risultati!