我有我在谷歌的AppEngine應用將引發NullPointerException異常像一個令人沮喪的問題:谷歌的AppEngine:User.equals引發NullPointerException異常
java.lang.NullPointerException
at com.google.appengine.api.users.User.equals(User.java:143)
我的代碼如下所示:
if (excludeUser.equals(someEntity.getProperty("user")))
在用戶屬性實體是先前存儲在數據存儲中的另一個用戶對象。即使我的代碼更改爲類似下面,它不會引發異常:
if (excludeUser.equals(null))
所以我想這是在User.equals一些內部邏輯存儲用戶時,引起該問題,或其他一些棘手的事情對象進入數據存儲?
此外,邏輯在開發環境中運行良好。這個問題只發生在GAE上。
我使用Google帳戶API,而不是聯合登錄名。我嘗試了他們兩個。結果相同。任何線索表示讚賞,謝謝。
該對象不爲空。首先可以從管理控制檯中的數據存儲查看器查看它。第二我顯式更改該值爲空,並沒有這樣的異常(這意味着User.equals(空)工作正常)。第三,它適用於開發環境......這個問題真的很讓人困惑:(... – Verilocos
最有可能的是excludeUser爲null如果excludeUser對象從數據存儲中被取出,那麼生產數據存儲中的數據可能與你的dev_appserver版本會導致它崩潰 – dragonx
excludeUser不爲null在User.equals()方法本身內部拋出空指針異常所以調用者引用(excludeUser)不應該爲null – Verilocos