Inspectopedia Help

Suspicious byte value returned from 'InputStream.read()'

Reports expressions of byte type returned from a method implementing the InputStream.read() method.

This is suspicious because InputStream.read() should return a value in the range from 0 to 255, while an expression of byte type contains a value from -128 to 127. The quick-fix converts the expression into an unsigned byte by applying the bitmask 0xFF.

Example:

class MyInputStream extends InputStream { int pos = 0; byte[] data; MyInputStream(byte[] input) { data = input; } @Override public int read() { if (pos == data.length) { return -1; } return data[pos++]; // problem } }

After applying the quick-fix:

class MyInputStream extends InputStream { int pos = 0; byte[] data; MyInputStream(byte[] input) { data = input; } @Override public int read() { if (pos == data.length) { return -1; } return data[pos++] & 0xFF; } }

New in 2023.2

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023