Why XPP blocks when reading from input stream such as socket?

NOTE:pleasue use XPP version 2.1.8 or higher
- in previous version there is ogg-by-one buffering bug.

XPP is a streaming parser however it depends on Reader to provide data in timely manner.
The current JDK implementattion of InputStreamReader will try to read 8KB into internal buffer
unless InputStream.available() function returns 0
(this behavior can not be overriden).

Therefore it is necessary to use a wrapper around InputStream to make sure that
InputStreamReader will return as soon as data is available, for example: