Hello,
I just updated from Smack 3.1 to 3.2.1 and now encounter a problem with IBBInputStream.
I am reading data from the stream in a simple loop like this
while ((len = stream.read(buf)) > 0){ ... }
This has worked fine before (and should IMO) but now an IOException is thrown saying
Stream is closed
at org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamSession$IBBInputStream. checkClosed(InBandBytestreamSession.java:395)
at org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamSession$IBBInputStream. read(InBandBytestreamSession.java:279)
Appearantly, the underlying stream has been closed by a different thread. (The debug output shows a respective IP:Close message.)
This should be handled in a more graceful way. - Especially, as there might be remaining buffered data which has not been read!
Cheers,
Sebastian