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;
}
}
- 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
New in 2023.2
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |