一次空指针的排查盛宴(空指针怎么解决啊)

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

一次空指针的排查盛宴

异常堆栈

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

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

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

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

本文链接:https://www.dzdvip.com/34240.html 版权声明:本文内容均来源于互联网。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 395045033@qq.com,一经查实,本站将立刻删除。
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年6月28日 23:56
下一篇 2022年6月29日 00:05

相关推荐

  • 美的空调VS格力空调,谁更值得买?

    正值炎炎夏日,又是一年的空调销售旺季,消费者到底购买哪个品牌的空调,着实挑花了眼。作为一个消费者,我简单分析了一下头部的两个国产空调品牌,到底买哪个好? 先贴两张图给大家看看美的和格力2020年的毛利率作为参考 美的空调毛利率24.16% 格力空调毛利率34.32% 然后再贴两张图,都是截取自天猫旗舰店的拳头产品(1.5匹) 美的空调到手2299元 格力空调到手2699元 美的空调售价2299元,毛利率24.16%,成本1743.56元 格力空调售价2699元,毛利率34.32%,成本1772.70元 美的空调的成本大概比格力空调少29.14元,两家都是拥有一万多名研发人员的家电企业,对于空调这种技术已经很成熟的家电产品来说,相差的这点成本几乎可以忽略不计。 最后再贴两张图给大家看看这两款空调耗电量的对比 美的空调制冷耗电量342千瓦时,制冷量3500W 格力空调制冷耗电量354千瓦时,制冷量3510W 耗电量差不多,美的空调低一些,但格力空调制冷稍微好那么一丢丢~~~ 总结:两款空调质量和性能都相差不大的情况下,美的空调每台更便宜400元,按照三个房间算,就便宜1200元,如果客厅再安装柜机的话,差价就更大了。空调这东西不像汽车一样是开出去给别看的,需要强调面子属性,客人来家里做客也并不会因为你家里安装了2699的格力空调就显得更有品味。个人更偏好于性价比更高的美的空调,你们呢?

    2021年6月20日
    43
  • 苹果m1可以安装虚拟机吗(苹果m1处理器可以运行虚拟机吗)

    苹果电脑m1机主最大的烦恼应该就是无法在mac上使用虚拟机和安装 Windows 系统了。现在,随着Parallels Desktop 17 for M1 Mac版 pd虚拟机发布 和微软的 Windows 10 ARM 系统发布,这个问题终于轻松解决!通过与M1 Mac兼容的Parallels 17的安装win10,运行良好。也就是说,M1 终于可以跑 Win10了了了。。现在支持M1的win10系统给你安排好了,拿走不谢!     参考教材:M1芯片Mac也可以安装Windows系统啦!使用PD16虚拟机安装ARM版Windows10教程!     window10最新系统介绍 通过 PD 17 for M1 Mac 虚拟机最新版本,我们终于可以在 macOS 上安装和运行 ARM 版本的 Windows 10 了。

    2021年9月20日
    43
  • 以太坊(ETH)挖矿硬件配置介绍

    随着以太坊一直横盘,挖矿收益持续下降,加上老黄的新卡发售,进一步导致显卡价格有些回落。 正好又赶上618,所以现在不管是游戏党还是矿工,对现在的显卡都是蠢蠢欲动。 因为最近有些小伙伴问我怎么组装一台以太坊矿机,所以就写了这篇文章,供大家参考。 挖矿配置只对显卡有一定要求,考虑利润,其他配置能缩减就缩减。 配置预览 CPU:赛扬G1820te主板:华硕H81-A大板散热器:最基础的就可以固态:SATA接口120G内存:DDR3 1333 4g机架:六卡机架电源:1000w以上电源显卡:1660s 六张 以上是我给出的配置单,除了显卡价格波动比较大其他硬件价格都稳定一些,不算显卡的话,2000以内完全可以搞定。另外也结合现在的算力计算收益,仅作参考 1.CPU 因为挖矿对cpu要求并不高,所以不需要选那么好的,能用就行,这里推荐G1820TE,功率只有35瓦,没有这款的话可以用1820替代也可以 2.主板 CPU选好之后主板一定要跟cpu配的上,华硕H81-A这个板子是支持6张卡的,不一定要是华硕的,别的牌子都可以;硬插6张卡肯定是插不进去的,所以这边还介绍个显卡延长线 显卡延长线 3.CPU散热器 最便宜的就够用了 4.固态 注意是SATA接口,120G,用10几个G装个系统,一张卡虚拟内存6G,算下来还多了60个G左右,就算后面用八卡也完全够用。 5.内存 DDR3 1333 4G内存,内存的作用主要能点亮就行,没有其他的,频率不要选错了。 6.机架 如果是一般电脑,这里就是机箱,机架的效果就是可以多放几张显卡,还可以增强散热效果,这种机架很好找的 7.电源 电源尽量选好点稳定的,额定功率要够用,1000w以上就可以了 够用 8.显卡 最最重要的部件了,没有他其他都是空气,显卡这里重点说下 ,因为靠算力来产生收益的,那算力的多少跟显卡显存颗粒相关,买的时候新卡没办法判断颗粒,颗粒排行:三星>海力士>镁光;所以尽量买一线品牌的,基本上是海力士或是三星的颗粒。 另外就是根据现在的算力算算一天能有多少收益,一张卡30算力,六张就是180,按照当前(6月19号)币价来算,一天收益是71.24 当然这个不是固定的,主要是根据币价和交易量随之波动的。

    2021年6月20日
    51
  • Axure教程:制作一个APP原型

    刚开始制作一个APP的原型时,页面布局很简单,状态切换也不难,预览时也得到了想要的效果,但是后来却发现根本没有把框架搭建好,导致一切都做在了一个页面里,嵌套了太多的动态面板。本文记录下我自己制作APP原型的第一步,希望对于刚接触Axure的产品小白们有所帮助。 01 框架搭建 这里笔者使用自己正在制作的APP原型进行讲解。 版本:Axure RP9 企业版   1. 新建页面 底部导航分为5个部分,所以也对应着五个页面。在制作时先不考虑登录等其他页面,只做主界面。 1. 在页面部分(注意不是概要部分)添加文件夹命名为主界面,放置主界面的页面。 2. 在文件夹下面添加页面,底部导航点击每个图标跳转后对应的页面。由于该原型底部导航分为5个部分,所以在主界面下是五个子页面。每个子页面可以继续添加子页面,类似下图中我——个人主页,代表页面内跳转的页面。这里不再赘述。   2. 页面布局 一个简易的页面基本都会包括状态栏、导航栏与标签栏(即底部导航)。 一般来说移动端的页面制作时尺寸设置为375*667 状态栏高20(状态栏可以下载AXURE元件库进行导入,也可以自己制作。) 导航栏高44 底部导航高49 除了这些以外的位置,便是可以放置主要内容的地方。 建议初学者可以直接使用矩形工具包括中间部分,再设置为动态面板。(下图中蓝色框线部分即是放置主要内容的地方,右键设置为动态面板后即可双击此动态面板进入编辑) 注意,在右边样式部分,需要对动态面板进行选择“按需滚动”,这样才可以在预览时看到所有编辑的部分。   02 底部导航 页面跳转 了解完大致的框架搭建与页面的布局,那么就开始制作底部导航吧。网上许多教程都是状态的转换,虽然预览效果一样,但是对于制作一个APP而言还是不对的。 1. 首先先添加一个母版,命名为底部导航。 2. 接着选择好图片和文字,熟练运用组合,居中等将导航排布整齐。 一个图标与其对应文字为一个组合,方便后面的交互情形添加。 3. 五个页面,对应该底部导航的五个状态。所以既要挑好选中前的图标,也要挑好选中后的图标。在这里我只对图标进行了改变表示选中。一般情况下文字颜色也会相应改变。 4. 在状态1对其他图标组合进行交互设置。选中店铺组合,在右侧进行设置。 5. 以此类推,将后面四个图标组合与页面进行相应的设置。然后复制多四个状态,…

    2021年6月7日
    94
  • ascii码对照表(ascii码对照表从小到大)

    ASCII码 在较早的计算时代,ASCII 代码用于表示字符。英语只有 26 个字母和一些其他特殊字符和符号。 下表是 ASCII 码对照表,包含字符及其相应的十进制和十六进制值。 ASCII 码对照表 从上表可以推断出,ASCII 值可以在十进制数系统中表示为 0 到 127。让我们看看 0 和 127 在 8 位字节中的二进制表示。 0 表示为 0 的二进制表示 127表示为 127 二进制表示 从上面的二进制表示可以推断,十进制值 0 到 127 可以使用 7 位来表示,而第 8 位是空闲的。 警告 从这个地方起,混乱开始了。 人们想出了不同的方法来使用剩余的第八位,从而使其可以表示从 128 到 255 的十进制值。那么冲突就发生了。例如,越南人使用十进制值 182 来表示越南字母 ờ,而印度人使用相同的值 182 来表示印地语字母घ。因此,如果印度人写的电子邮件包含字母घ并且它被越南人阅读,那么将会显示为ờ。显然这不是预期的效果。 那么如何解决这个问题呢,接下来就该 Unicode 出场了。 Unicode 和代码点 Unicode 字符集将世界上的每个字符都映射到一个唯一的数字上。这确保了不同语言的字母之间没有冲突。这些数字与平台无关。 这些唯一的数字在 unicode 术语中称为代码点。 让我们看看它们是如何被引用的。 使用代码点引用 拉丁字符ṍ U+1E4D U+ 表示 unicode,1E4D是分配给字符 ṍ 的十六进制值。 英文字母A表示为 U+0041 好了,了解了这些,接下来该是重头戏了 UTF-8 编码 现在我们知道什么是 unicode 以及如何将世界上的每个字母分配给一个唯一的代码点,我们需要一种在计算机内存中表示这些代码点的方法。这就是字符编码登场的地方。 其中最为人们所熟知的就是 UTF-8 编码。 UTF-8 编码是一种大小可变的编码方案,用于表示内存中的 unicode 代码点。大小可变编码意味着代码点根据其大小使用 1、2、3 或 4 个字节表示。 UTF-8 1 字节编码 1个字节编码的标识是第一个比特位为0。 UTF8 1字节编码表示方式 英文字母A的 unicode 代码点为 U+0041。它的二进制表示是1000001。 A 以 UTF-8 编码表示为 01000001 红色的0位表示使用1字节编码,其余位代表码位 U…

    2021年12月23日
    146
  • iOS 15.4推送更新:口罩解锁和37个emoji

    Apple 正式推送了 iOS 15.4 正式版,带来一系列功能更新。其中,iPhone 12 及之后的机型支持戴口罩解锁,Siri 也可以离线使用,都是非常实用的更新。 目前的疫情环境下,能够戴口罩解锁Face ID给用户带来了极大的方便,意味着用户无需购买Apple Watch,省去了很多麻烦,但此功能仅限于iPhone 12和iPhone 13系列。 本次升级的其他功能包括手机离线时,Siri可以提供时间和日期信息。另外,iOS 15.4 带来了超过 37 种新的表情符号,包括融化表情、偷看表情和巨魔。

    2022年3月15日
    11