Предполагая, что find
здесь Files.find
, вам следует использовать
final Path startPath = Paths.get(nasProps.getUpstreamOutputDirectory() +
File.separator +
inputSource.concat("_").concat(contentGroup).concat("_").concat(parentId));
BiPredicate<Path, BasicFileAttributes> matcher = (filePath, fileAttr) ->
fileAttr.isRegularFile() && filePath.getFileName().toString().matches(".*\\." + extTxt);
try (Stream<Path> pathStream = Files.find(startPath, Integer.MAX_VALUE, matcher)) {
pathStream.forEach(path -> textFileQueue.add(path));
} catch (IOException e) {
e.printStackTrace(); // handle or add to method calling this block
}
Причина, по которой sonarqube предупреждает здесь, упоминается в примечании API связанного документа:
Этот метод должен использоваться внутри оператора try-with-resources или аналогичной структуры управления, чтобы гарантировать, что открытые каталоги потока будут закрыты сразу после выполнения операций потоказавершено.