I analyzed the issue as described in the JIRA. Personally, I don't believe that this is really an issue. The current behavior is that in case of an empty stream an empty descriptor is returned. TO remote the available() call would break this concept and introduce big error handling on the user side.
The javadoc says:
... It is never correct to use the return value of this method to allocate a buffer
intended to hold all data in this stream. ...
The point is that the implementation doesn't allocate buffer at all. Googling around indicates that a solution is to use the PushpackInputStream, which is a real implementation instead of the abstract inputstream.
I implemented a simple solution by using this concrete InputStream class. In my opinion, we have two options:
To leave at it is now. So far, I am not aware of issues regarding this.
Hi Andrew
I analyzed the issue as described in the JIRA. Personally, I don't believe that this is really an issue. The current behavior is that in case of an empty stream an empty descriptor is returned. TO remote the available() call would break this concept and introduce big error handling on the user side.
The javadoc says: ... It is never correct to use the return value of this method to allocate a buffer intended to hold all data in this stream. ...
The point is that the implementation doesn't allocate buffer at all. Googling around indicates that a solution is to use the PushpackInputStream, which is a real implementation instead of the abstract inputstream.
I implemented a simple solution by using this concrete InputStream class. In my opinion, we have two options:
Regards, Ralf