https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/sun/misc/CEStreamExhausted.java
/** This exception is thrown when EOF is reached */
public class CEStreamExhausted extends IOException { };
Which is executed at line 117 de BASE64Decoder :
https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/sun/misc/BASE64Decoder.java
do {
i = inStream.read();
if (i == -1) {
throw new CEStreamExhausted();
}
} while (i == '\n' || i == '\r');
Therefore it's a false-positive if any APM raise it.
--------------------------------------------------------------------------------
Me faltó agregar que la clase que llama a la lanza la excepcion en cuestion es: CharacterDecoder.java
Y lo que hace es tener un loop infinito while(true) que se sale de ahi al atrapar dicha exception.
Por lo tanto queda demostrado que es un falso-positivo.
| while (true) { | |
| int length; | |
| try { | |
| length = decodeLinePrefix(ps, bStream); | |
| for (i = 0; (i+bytesPerAtom()) < length; i += bytesPerAtom()) { | |
| decodeAtom(ps, bStream, bytesPerAtom()); | |
| totalBytes += bytesPerAtom(); | |
| } | |
| if ((i + bytesPerAtom()) == length) { | |
| decodeAtom(ps, bStream, bytesPerAtom()); | |
| totalBytes += bytesPerAtom(); | |
| } else { | |
| decodeAtom(ps, bStream, length - i); | |
| totalBytes += (length - i); | |
| } | |
| decodeLineSuffix(ps, bStream); | |
| } catch (CEStreamExhausted e) { | |
| break; | |
| } | |
No comments:
Post a Comment