Hey guys, I got through all the steps and everything verified, but I have a bug somewhere that stops it from working properly. I don't want to ask someone to go through all my code (there's way too much for that), but I'd appreciate it if someone could perhaps send me their completed code so I could compare. I can send mine if you want proof that I actually completed it on my own first. This is the error stack trace I'm getting. It looks like it ultimately boils down to my ObjectOutputStream. I attached my send() and receive() methods below too.
public void send(Message message) throws IOException {
        synchronized (out) {
            out.writeObject(message.getType());
            out.writeObject(message.getData());
            out.flush();
        }
    }

    public Message receive() throws IOException, ClassNotFoundException {
        Message message;
        synchronized (in) {
            MessageType messageType = (MessageType) this.in.readObject();
            String messageData = (String) this.in.readObject();
            message = new Message(messageType, messageData);
            in.close();
        }
        return message;
    }
I wrote both methods a few ways originally. At first I just wrote the object, so I tried writing the individual fields (as above), but that didn't solve it. I've tried checking it against the working code that others have posted in the other help sections, but I haven't managed to figure it out yet. Any thoughts?