2015-08-28 69 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

相關問題