此方法调用为非null方法参数传递一个null值.要么将参数注释为应始终为非null的参数



SonarQube以下方法出现错误,任何关于如何解决问题的建议专家-此方法调用为非null方法参数传递null值。参数被注释为应该始终为非null的参数,或者分析表明它将始终被取消引用。

public ByteArrayResource readFile() throws IOException {
byte[] content = null;
try (S3Object object = amazonS3.getObject(new GetObjectRequest(bucketName, key))) {
content = IOUtils.toByteArray(object.getObjectContent());
return new ByteArrayResource(content);
} catch (IOException e) {
LOG.error("IOException caught while reading file", e);
} 
return new ByteArrayResource(content);
}

问题是return new ByteArrayResource(content);语句在try/catch块之外。由于你的方法是抛出IOException,你不应该抓住它。下面应该解决它:

public ByteArrayResource readFile() throws IOException {
try (S3Object object = amazonS3.getObject(new GetObjectRequest(bucketName, key))) {
byte[] content = IOUtils.toByteArray(object.getObjectContent());
return new ByteArrayResource(content);
}
}

最新更新