Tags: simonbasle/rsocket-java
Tags
Merge pull request rsocket#154 from ReactiveSocket/requesthandler-int… …erface Make RequestHandler an interface
Disable Backup-Request / Retries. (rsocket#102) * Disable Backup-Request / Retries. **Problem** There are bugs related to Backup-Request/Retries subscription. The remaining part of the code is ok. **Solution** Disable the code in the ClientBuilder. * Address comments
Refactor ReactiveSocketServerHandler to be not shareable. (rsocket#94) ** Problem ** There's a memory leak in `ReactiveSocketServerHandler`, it keep adding entries in the `duplexConnections` map but never remove them. ** Solution ** Instead of having only one `ReactiveSocketServerHandler`, and manage resources manually, we let Netty allocate one instance per Channel. Then no resource management is necessary. ** Modifications ** I refactored all the uage of `ReactiveSocketServerHandler` whithout changing the logic. I also got rid of the method ``` public void channelReadComplete(ChannelHandlerContext ctx) { ctx.flush(); } ``` since we only use `writeAndFlush` in the DuplexConnection (we're sure there's nothing to flush).
Frame instance was referenced longer than required. (rsocket#88) Problem: `handleXXX` methods in `Responder` were closing over the passed `requestFrame` and using it later in the lifecycle of request processing. `Frame` objects and the underlying buffers are not designed to be retained after the scope of the parent method as these objects are threadlocal and reused. This causes issues when the frame object is referenced later in the request processing (eg: `cleanup()`) Solution: The only reason frame object was retained was to get the stream Id. This change pre-fetches the `streamId` and uses that from within the processing closure. Result: No more issue with frame access.
Merge pull request rsocket#84 from ReactiveSocket/error-handling Added error handling in Responder
Merge pull request rsocket#83 from robertroeser/master added toString for tracing
adding a callback when a reactive socket is closed (rsocket#82)