2015-08-28 66 views
1

我有SonarQube 5.1.2和sonar ant任务2.3。java.lang.NumberFormatException:对于输入字符串:“b10000000”

我源文件

if((~b & 0b10000000) > 0) 

在以下行这个源文件返回运行声纳

产生的原因:java.lang.NumberFormatException:对于输入字符串:“b10000000” 在java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 在java.lang.Long.parseLong(Long.java:589) 在java.lang.Long.valueOf(Long.java:776) 在java.lang.Long.de在org.sonar.java.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。访问(SubscriptionVisitor.java:97) at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionV isitor.java:113) 在org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) 在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.lang.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) 在org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97) 在org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113) 在有机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。 visitor.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.ast.AstWalker.walkAndVisit(AstWalker.java:67) at org.sonar.java.ast.AstScanner.simpleScan(AstScanner.java:107) ... 53更多 这是怎么回事?看来SonarQube没有阅读0b10000000并且省略了第一个0。

有什么我可以做,以防止这或?

谢谢

+1

这将是一个黑客,但它是否工作,如果你把128(即十进制等值)? –

+0

同样的问题在:http://stackoverflow.com/questions/30574009/sonarqube-error-while-analyzing-code-with-binary-literals – Thilo

回答

0

这是一个(相对较新的Java 7)二进制文字。

我认为你需要升级你的Sonar到一个可以处理它的新版本。如果这是你控制的源代码,你也可以避免使用二进制文字,并用“古典”替代它们,例如0x80(但也许过时的Sonar也会偶然发现其他一些东西,这里有很多Java 8中的新语法)。

+0

我使用最新版本的声纳。但感谢其他链接。我会跟进那里 –

+0

请升级到最新版本的sonar java插件。 (并确切地说你在你的问题上使用哪一个) – benzonico

相关问题