337271 Flush SSL endpoint when dispatch thread held forever

git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2797 7e9141cc-0065-0410-87d8-b60c137991c4
This commit is contained in:
Greg Wilkins 2011-02-16 21:19:43 +00:00
parent 01955d7295
commit cc3d015e60
2 changed files with 11 additions and 1 deletions

View File

@ -435,6 +435,14 @@ public abstract class AbstractGenerator implements Generator
while ((content!=null && content.length()>0 ||buffer!=null && buffer.length()>0) && _endp.isOpen())
blockForOutput(maxIdleTime);
}
// make sure buffered data is also flushed
while (_endp.isBufferingOutput() && _endp.isOpen())
{
if (!_endp.isBlocking())
_endp.blockWritable(maxIdleTime);
_endp.flush();
}
}
/* ------------------------------------------------------------ */

View File

@ -963,6 +963,8 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
final NIOBuffer i=_inNIOBuffer;
final NIOBuffer o=_outNIOBuffer;
return "SSL"+super.toString()+","+_engine.getHandshakeStatus()+", in/out="+
(i==null?0:_inNIOBuffer.length())+"/"+(o==null?0:o.length())+" "+_result;
(i==null?0:_inNIOBuffer.length())+"/"+(o==null?0:o.length())+
" bi/o="+isBufferingInput()+"/"+isBufferingOutput()+
" "+_result;
}
}