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; } }

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

SuspiciousReturnByteInputStream
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Probable bugs

New in 2023.2

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Java, 241.18072

Last modified: 18 June 2024