2014-09-22 2 views
1

Недавно я написал несколько запросов XPath на sonarqube 4.4. Некоторые из них работают на гидролокаторе 4.4, а некоторые - нет. Например, когда я определил запросы XPath следующим образом:Некоторые правила работы XPath в SonarQube 4.4

  1. //IfStatement/statement[not(block)]
  2. //WhileStatement/statement[not(block)]
  3. //variableDeclarator[not(block)]

сонара 4.4 обнаружения проблем и, когда я определил запросы XPath следующим образом:

  1. //qualifiedIdentifier/IDENTIFIER[@tokenValue= "println"]

Гидролокатор не обнаруживает проблем. Почему причина этого?

Как объясняет Фабрицио в here, это известная ошибка в sonarqube 4.4, но почему некоторые запросы XPath (например, If/Statement) работают на гидролокаторе 4.4, а другой нет?

+0

Загрузите инструментарий [SSLR Java toolkit] (http://repository.codehaus.org/org/codehaus/sonar-plugins/java/sslr-java-toolkit/2.4/sslr-java-toolkit-2.4.jar) , вы сможете получить структуру AST для любого исходного файла java и даже протестировать ваше выражение Xpath. –

+0

Да. Я загрузил инструмент SSLR java toolkit, и запрос XPath работает с инструментарием SSLR java, но в сонаре он не сохраняет и не обнаруживает проблем. –

ответ

0

Как вы отметили, что это известная проблема: https://jira.codehaus.org/browse/SONAR-5575

Это, кажется, связанно с плохим экранированием, цитат при вставке в базу данных, и это объясняет, почему некоторые XpathQueries будут сохранены и некоторые другие выиграли» т.

Смежные вопросы