- Added a pipe method for skipping a fixed amount of bytes, and added a method to skip objects.
- Added support for data methods.
- Fixed a race condition which caused AutoDisposed objects to be disposed of prematurely.
- Fixed disposed stub cleanup by calling the correct method.
- Fixed handling of root stub reconnect when declared as AutoDispose.
- Eagerly attempt to restore stubs after a reconnect.
- Eagerly disable reference mode when writing stubs and skeletons.
- The Pipe interface also implements ByteChannel now.
- Ignore static methods in remote interfaces.
- Added pipe methods for efficiently encoding and decoding complex objects.
- Added support for automatic remote object disposal.
- Added a session reconnect method.
- Optimize reading and writing primitive arrays.
- Fixed a bug when comparing the client and server remote interfaces. Remote methods which differed only by their annotations or exceptions would sometimes be treated as equal, leading to mismatched code generation on the client and server sides.
- More lenient restorable object race condition fixes.
- Fixed a race condition which prevented lenient restorable objects from being restored.
- Fixed a bug when a restored object has access to a method which wasn't originally implemented.
- Fixed a few race conditions during object restoration.
- Replaced the Session.stateListener method with addStateListener.
- Added a debug option to close pipes when they are recycled.
- Methods unimplemented on the server throw an exception only allowed by the RemoteFailure annotation. Before, UnimplementedException would be thrown always.
- RemoteException now includes the remote address.
- Added a lenient option for restorable methods.
- Relax the pipe recycling check to consider the case when the remote side has already sent the next request. This prevents a bogus IllegalStateException from being thrown.
- Added a feature to stitch a local stack trace when reading throwables.
- Added a feature to pass an uncaught exception directly to the handler.
- Added a feature to transfer bytes from a pipe to an OutputStream.
- Fixed a bug when reading arrays of length zero when the input stream has no available bytes.
- Fixed handling of remote methods which have custom remote exceptions when restoring sessions.
- Added a feature to observe all accepted sockets.
- Version 2 is a complete rewrite.