Nie mogę zrozumieć co oznaczają błędy, które sypie aplikacja serwera:

java.io.StreamCorruptedException: invalid type code: AC

Serwer:

package ldoran.server;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

import ldoran.chat.user.ChatUser;


public class ServerCore {
	private static int connects = 0;
	private ServerSocket server;
	private ArrayList<Socket> socket;
	
	public ServerCore(int port) throws IOException {
		server = new ServerSocket(port);
		socket = new ArrayList<Socket>();
	}
	
	public ServerSocket getServerSocket() {
		return this.server;
	}
	
	//Create new connection
	public void add(Socket s) {
		synchronized(socket) {
			if(!socket.contains(s)) 
				socket.add(connects, s);
			
			Runnable run	= new ThreadServerCore(connects);
			Thread thread	= new Thread(run);
			thread.start();
			
			if(connects < socket.size()) {
				connects++;
				System.out.println("Connected: [" + connects + "]");
			}
		}
	}
	
	
	private class ThreadServerCore implements Runnable {
		private int index = 0;
		private ChatUser user;
		
		public ThreadServerCore(int i) {
			super();
			index = i;
			user = new ChatUser();
		}
		
		public void run() {
			try {
				ObjectInputStream in = new ObjectInputStream(socket.get(index).getInputStream());
				while(socket.get(index).isConnected()) {
					synchronized(socket) {
						for(int i = 0; i < socket.size(); i++) {	
							user = null;
							ObjectOutputStream out = new ObjectOutputStream(socket.get(i).getOutputStream());	
					
							user = (ChatUser)in.readObject();
							System.out.println(user.getName() + ": " + user.getMsg());
							
							
							out.writeObject(user);
							out.flush();						
						}
					}
				}
				
				synchronized(socket) {
					socket.get(index).close();
					socket.remove(index);
					index--;
					connects--;
					System.out.println("Connceted: [" + connects + "]");
				}
			} catch(Exception ex) {
				System.err.println(ex);
			}
		}
	}
}


[EDIT]:
Zauważyłem, że obiekt jest poprawnie wysyłany client->server
Problem tkwi w jego rozgłoszeniu przez serwer do reszty klientów