四时宝库

程序员的知识宝库

一次空指针的排查盛宴(空指针异常常用解决办法)

在一次上线的过程中,通过观察日志发现有java.lang.NullPointerException的异常出现:

但这个空指针异常并不是我们的服务抛出的,显示的是下游服务抛出来的,但和下游服务的开发人员确认,他们最近没有发布过服务。

仔细观察日志发现:我们的服务在对下游服务发起RPC调用时,RPC框架在调用下游服务的client包时,执行了ListThriftCodec.write方法,而这个方法执行到boxedLongToLong方法时,抛出了java.lang.NullPointerException的异常。

观察到这,初步判断是:我们的服务在调用下游服务时,给一个Long类型的参数传了null到下游,导致RPC框架Long转Long的时候抛出了空指针异常。

然后仔细观察代码发现:我们对一个Long型参数没有做判空,把它写入到ArrayList中传给了下游,所以就出现了上面的异常。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接