Я разрабатываю плагин для SonarQube 5.6, и у меня возникают проблемы с созданием объекта Issuable из-за объекта InputFile. При выполнении датчика я вижу все файлы, проиндексированные (путем итерации) с вызовом
Iterator<InputFile> files = fileSystem.inputFiles(p.and(p.hasLanguage("java"), p.hasType(InputFile.Type.MAIN))).iterator();
но когда я пытаюсь получить доступ к конкретному файлу (проиндексированному и показанному ранее) с помощью
java.io.File file = new java.io.File(path);
// file.exists() returns true
InputFile inputFile = fileSystem.inputFile(fileSystem.predicates().is(file));
«входной файл» имеет значение null. Даже если я пытаюсь составить путь, он возвращает null с помощью этой инструкции:
InputFile inputFile = fileSystem.inputFile(fileSystem.predicates().hasPath(file.getAbsolutePath()));
Это журнал, который я получаю, который действительно странный:
[INFO] File exists.
[INFO] That file AbsolutePath: C:\Program Files (x86)\Jenkins\workspace\soapui\soapui\src\main\java\com\eviware\soapui\impl\wsdl\support\wsdl\AbstractWsdlDefinitionLoader.java
[ERROR] File "C:\Program Files (x86)\Jenkins\workspace\soapui\soapui\src\main\java\com\eviware\soapui\impl\wsdl\support\wsdl\AbstractWsdlDefinitionLoader.java" is not indexed. Skip it.
Раздражает тот факт, что раньше это работало, но теперь почему-то нет, без изменения этого метода (который имеет только цель вернуть объект InputFile). Я допускаю, что проблема может быть в запрошенных FilePredicates. Любая помощь приветствуется. Заранее спасибо.
EDIT: забыл упомянуть тот странный факт, что после использования этой же самой инструкции для отображения всех проиндексированных файлов, если я попытаюсь использовать ее снова (для доступа к искомому входному файлу) , возвращаемый итератор не может продвигаться ни разу:
Iterator<InputFile> files = fileSystem.inputFiles(p.and(p.hasLanguage("java"), p.hasType(InputFile.Type.MAIN))).iterator();