我正在接受"更改此条件,以便它不会总是评估为false"以下代码的声纳问题
UserTransaction tx = null;
try {
tx = (UserTransaction) new InitialContext()
.lookup("java:comp/UserTransaction");
tx.begin();
// ...
} catch (NamingException | NotSupportedException | SystemException | CommandException e) {
Logger.logError(getClass(), e);
try {
if(null != tx) {
tx.rollback(); // gives Change this condition so that it does not always evaluate to "false"
}
} catch (NullPointerException | IllegalStateException | SecurityException | SystemException rollbackt) {
logError("Rollback exception", rollbackt);
}
throw new UserDefinedException("failed save incomplete order due to a command exception", e);
}
我们可以处理这个好主意吗?
答案 0 :(得分:-4)
这是对sonar lint报道的问题的解释。部分:
if(null!= tx){ tx.rollback(); //给出更改此条件,以便它不总是评估为" false" }
这里,如果你看到你写条件的方式" null!= tx" ,因为我们知道" null" &安培;如果我们将比较" null"等同于任何不可能的东西。
如果条件写成:
if(tx!= null){ tx.rollback(); }
声纳棉绒问题将被修复,因为现在不是检查null的值,而是#34; tx"将被评估&如果它现在等于null,那么" tx.rollback()"将执行。
我希望这能澄清一切:)