I would seriously consider not using gnu classpath 0.9.1otherwise,there is
little we can do to workaround a bug in this component...
Le 27 août 2013 14:59, "Florent Monjalet" <florent.monja...@gmail.com> a
écrit :

> Hello,
>
> We encountered an issue in GNU Classpath 0.91 (same issue in 0.92 but not
> in 0.93): in SocketIoProcessor.read(SocketSessionImpl), the
> SocketChannel.read(ByteBuffer) call was erroneously returning -1 instead of
> 0 when the buffer was full but more data was to be read. It caused a reset
> of the connection even if the connection itself was ok and still open.
>
> Classpath 0.93 fixed this problem (release notes here:
> http://www.gnu.org/software/classpath/announce/20061211.html). We had to
> work with classpath 0.91 for some reasons, so I partially fixed the problem
> by replacing
>
> if (ret < 0) {
>     scheduleRemove(session);
> }
>
> by
>
> // If the buffer was full, there may be more bytes to read
> if (ret < 0 && readBytes < initialReadBufferSize) {
>     scheduleRemove(session);
> }
>
> But in some cases (not every time), if the connection closed by the other
> peer, I receive a TCP FIN but do not answer and keep reading 0 bytes
> forever in the socket. Do you have any idea of a better fix? This solution
> never causes trouble in classpath 0.93+ (mainly tested with 0.98 and JamVM
> 1.5.4), only in 0.92 and lower (tested with 0.91 and JamVM 1.4.3).
>
> Thank you in advance for any answer or hint!
>
> Florent.
>

Reply via email to