SonarQube показывает ошибку, даже если реализованы предложения
Выполнив анализ кода нижеприведенного кода в SonarQube, я обнаружил, что предлагаю закрыть HttpClient.
import org.apache.http.impl.client.CloseableHttpClient;
public void request() {
CloseableHttpClient httpclient = null;
try {
httpclient = HttpClients.createDefault();
/**
* Rest of the code
*/
} catch(IOException e) {
LOGGER.error("Error in processing : {}", e.getMessage(), e);
} finally {
try {
if(httpclient != null) {
httpclient.close();
}
} catch(IOException e) {
LOGGER.error("Error in closing client : {}", e.getMessage(), e);
}
}
}
SonarQube до сих пор жалуется, что httpclient
должен быть закрыт, хотя я закрываю его в finally
блок.
Ошибка от SonarQube:
Close this "CloseableHttpClient".
Java - 1.8 SonarQube - 5.6
Любые идеи, что я могу делать неправильно. Спасибо
1 ответ
Используйте попытку с ресурсами
public void request() {
try (CloseableHttpClient httpclient = HttpClients.createDefault()){
/**
* Rest of the code
*/
} catch(IOException e) {
LOGGER.error("Error in processing : {}", e.getMessage(), e);
}
}