I already answered your question some while ago and explained what you
were doing incorrectly. You basically dismissed my answer and keep on
posting the same query over and over again. This is not going to help.

Oleg 


On Thu, 2023-03-30 at 14:39 +0530, sreenivas somavarapu wrote:
> Hi Team,
> 
> There is a hang issue happening with SharedOutputBuffer when trying
> to
> insert data chunck of 1024 bytes or above. However this works fine if
> data
> chunck being inserted is less that 1024 bytes.
> 
> Simple way to reproduce the problem is
> - Create SharedOutputBuffer with 4096 bytes of capacity
> - Now try to write 1024 bytes of data chunck to above created buffer
> 
> Second step will cause hang and by looking at code it looks like
> below
> condition is causing problem
> 
> if (src.remaining() < 1024 && buffer().remaining() > src.remaining())
> {
> 
> Problem with this above condition is that even though buffer has
> capacity
> to store complete contents of src, this condition will not satisfy if
> src
> has 1024 bytes or more data (may well be in limit of actual size
> provided
> during creation of buffer) to be written to buffer
> 
> second step still will cause in a hang as first if condition is not
> satisfied due to src.remaining() < 1024 even though there is enough
> capacity to store data and it proceeds to second condition which will
> cause
> the program to wait on a condition for flush (even though this is the
> first
> write we are performing)
> 
> if (buffer().position() > 0 || dataStreamChannel == null) {
>                          waitFlush();
> }
> 
> Regards,
> Sreenivas


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
For additional commands, e-mail: httpclient-users-h...@hc.apache.org

Reply via email to