Encoding of throwables to be sent to the other side will need to be
recursively written. Basically it would be best to record the entire state
Throwable, this includes causes, suppressed throwables, and the
stack trace. At least with all of the information it should be much simpler
to determine where failure has occurred on the remote end.
Also for easier usage, the
printStackTrace() methods will be replaced in
RemoteThrowable. So this way I can much better represent on the console
itself the exception which was thrown on the other side.
Okay so the the
PacketStream threads not being daemon threads is quite a
problem, I will need to figure that one out so that they appear as such
because otherwise the VM will just sit there waiting for them to die
ClientInstance interface factory would be better.
Going to need a way to send packets to handlers, but I believe I know a way I can do that.