我有我在谷歌的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