今天在處理一個bug的時候,發現該bug出現狀況十分特殊,只有在weblogic下出現,jboss下並不能出現。 java
通過屢次調試,發現業務邏輯沒問題(沒懷疑Action的)。每次在jboss下都能正確insert,但到了weblogic就沒響應,因爲Weblogic是在遠程服務器,因此沒在weblogic上調試。 web
實在不行,就在執行SQL語句那裏把語句打印出來,結果發現,調用的邏輯竟然是其餘的方法。 服務器
調用的邏輯是這樣的 spa
if 主鍵不爲空 調用更新邏輯 else 調用插入邏輯問題就出如今主鍵的判斷上。由於主鍵是字符串,因此代碼裏判斷的是
if (null != pk && "" != pk)這問題就在 ""!= pk上了。這裏修改成!"".equals(pk)問題就解決了。其實就是 字符串內容的比較不能用==或!=。
看來代碼不規範真的會害死人,有時候寫代碼的時候仍是要想下之後維護的。我猜寫這個代碼的人當時確定在本身機器上調試經過就滿心歡喜就提交了代碼了。 調試