Community
Participate
Working Groups
While working on that code I discovered that when using GZIP the BufferEntryManager.putBuffer() never gets called because the GZIPInputStream never gets closed. This happens because the HessianProxy.invoke() closes the input stream passed to the overridden RienaHessianProxyFactory.getInputStream(). The getInputStream() wrapps the passed in input stream with the GZIP input stream and returns it. This explains why everything is still working.
If GZIPInputStream will not be closed, Inflater.end() will not be called which leads to memory problems. See bug 5072161 and related bugs.
This problem exists on both client side and server side (RienaHessianDispatcherServlet).
Fixed in: RienaHessianDispatcherServlet 1.12 GZippingHttpURLConnectionWrapper 1.1 RienaHessianProxyFactory 1.26