我有SonarQube 5.1.2和声纳蚂蚁任务2.3。
源文件中有下面一行
if((~b & 0b10000000) > 0)在此源文件上运行声纳返回
由: java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Long.parseLong(Long.java:589) at java.lang.Long.valueOf(Long.java:776) at java.lang.Long.decode(Long.java:928) at org.sonar.java.checks.SillyBitOperationCheck.evaluateExpression(SillyBitOperationCheck.java:101) at org.sonar.java引起: java.lang.NumberFormatException:用于输入字符串:"b10000000“.checks.SillyBitOperationCheck.visitNode(SillyBitOperationCheck.java:66) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:95) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:73) at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:67) at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:122) at com.sonar.sslr.impl.astorg.sonar.java.ast.AstScanner.simpleScan(AstScanner.java:107)的.AstWalker.walkAndVisit(AstWalker.java:67) . 53 --为什么会发生这种事?SonarQube似乎没有读取0b10000000,而忽略了前一个0。
我能做些什么来阻止这件事吗?
谢谢
发布于 2015-08-28 08:54:28
这是一个(相对较新的,Java 7)二进制文字。
我认为你需要升级你的声纳到一个新的版本,可以处理它。
如果这是您控制的源代码,您还可以避免二进制文本,并将其替换为“经典的”文本,比如这里的0x80 (但是过时的Sonar也会在其他一些事情上出错,Java 8中有很多新语法)。
https://stackoverflow.com/questions/32267031
复制相似问题