I've setup a Github rep for this. Please run following commands -
cd jetty91asyncIO/jettyTest/
mvn package
java -Dlog4j.configurationFile=./src/main/resources/log4j.xml -jar target/jettyTest-1.0-SNAPSHOT.jar
Now, change your browser proxy to localhost:80.
As you can see, the in the code, it acts as a simple HTTP proxy. If you visit any website (not HTTPS, only HTTP site), you can see first few requests go just fine through proxy but after that nothing really happens. If you try to download a single large file (I've tested with 500+ MB file) it works just fine. So my hunch is that it is the number of requests which matter and not size of data written back to the client.
Also, as you can see I'm NOT using async processing- just simple async IO. Note that if I don't use ASYNC IO and only async processing, everything works just fine.
Just a little code walk through-
RabbitHole.java (yea, that's what I call my main class :) setups up Jetty proxy.
ProxyServlet.java is the servlet responsible for processing GET requests. Currently only GET is implemented
SetupServletAsyncExecutor.java - you can discard this for now
StandardDataStream.java - copy paste from blog
Let me know if you need any more information.
Cheers,
Gaurav