Why does the inReady method of StreamDecoder swallow IOException?
Jeff Evans
jeffrey.wayne.evans at gmail.com
Wed Nov 15 23:11:37 UTC 2017
Hello,
We are dealing with an issue where an underlying exception appears to
be getting swallowed by the StreamDecoder class. In particular, the
Jersey client library we are using (which happens to be version
2.25.1) is throwing an IOException out of its implementation of
InputStream#available
https://github.com/jersey/jersey/blob/master/core-common/src/main/java/org/glassfish/jersey/internal/util/collection/ByteBufferInputStream.java#L143
by way of calling checkThrowable
https://github.com/jersey/jersey/blob/master/core-common/src/main/java/org/glassfish/jersey/internal/util/collection/ByteBufferInputStream.java#L127
The caller of that is ultimately StreamDecoder#inReady. We are seeing
the problem under Oracle JDK 1.8.0_121, but it seems the StreamDecoder
code hasn't changed in a while:
http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/sun/nio/cs/StreamDecoder.java#l366
Is there some issue with the way the Jersey library code
implementation, or potentially some issue with our code that is
resulting in this exception not being propagated out from
StreamDecoder? Any insight is appreciated.
Full stack trace image here: https://i.imgur.com/AuyYFAp.png
More information about the jdk-dev
mailing list