Java
Suspicious byte value returned from 'InputStream.read()'
Warning
New
Last modified: 03 December 2024 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 |
Thanks for your feedback!
Was this page helpful?