Eric,
correct diagnosis!  We have already fixed this (see
https://github.com/eclipse/jetty.project/issues/4461) and a new release
will be coming soon.

regards


On Fri, 10 Jan 2020 at 12:45, Eric Theriault <[email protected]> wrote:

> Hi--
>
>
>
> I have just upgraded to 9.4.25.v20191220 and I have a piece of code that
> calls org.apache.commons.io.IOUtils.copy(inputStream, outputStream), where
> the outputStream is an instance of HttpOutput -- this code essentially just
> reads the code in chunks of 4096 bytes and writes that to the outputStream.
>
> For one stream in particular (I'm still trying to figure out what is
> different with it), after sending 64,428 bytes, it sets the _apiState to
> BLOCKED.  When the next segment is copied over, however, the _apiState is
> still BLOCKED and falls into the default case which throws
> an IllegalStateException.
>
> I've traced through the code and in line 806, I wonder why the code does
> not call onWriteComplete as would happen in line 835.  Is that the bug?  Or
> is there something more subtle here?
>
>
> https://github.com/eclipse/jetty.project/blob/jetty-9.4.25.v20191220/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java#L806
>
>
> https://github.com/eclipse/jetty.project/blob/jetty-9.4.25.v20191220/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java#L835
>
> Looks like this was recently changed in
> https://github.com/eclipse/jetty.project/pull/4409 if I understand
> correctly.
>
> This is the exception for reference:
>
> java.lang.IllegalStateException: s=OPEN,api=BLOCKED,sc=false,e=null
> at
> org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:767)~[jetty-server-9.4.25.v20191220.jar:9.4.25.v20191220]
> at
> org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:639)
> ~[spring-security-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
> at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2315)
> ~[commons-io-2.6.jar:2.6]
> at org.apache.commons.io.IOUtils.copy(IOUtils.java:2270)
> ~[commons-io-2.6.jar:2.6]
> at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2291)
> ~[commons-io-2.6.jar:2.6]
> at org.apache.commons.io.IOUtils.copy(IOUtils.java:2246)
> ~[commons-io-2.6.jar:2.6]
>
> Thanks for any insight.
>
>
>
>
> Eric
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://www.eclipse.org/mailman/listinfo/jetty-users



-- 
Greg Wilkins <[email protected]> CTO http://webtide.com
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to