out = new ObjectOutputStream(socket.getOutputStream());
out.writeObject(transaction);
in = new ObjectInputStream(socket.getInputStream());
Object result = in.readObject();
if (result instanceof ThrownException) {
ThrownException thrownException = (ThrownException) result;
throw thrownException.exception;
}
return (Serializable) result;
}