You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:oshi 6.1.6中LinuxNetworkParams.getDomainName调用抛出NPE的原因

LinuxNetworkParams.getDomainName() 抛出NullPointerException的可能原因

报错堆栈

Caused by: java.lang.NullPointerException
at oshi.software.os.linux.LinuxNetworkParams.getDomainName(LinuxNetworkParams.java:80) ~[oshi-core-6.1.6.jar!/:6.1.6]
at com.airwatch.common.diagnostics.DiagnosticCollector.fetchSystemConfiguration(DiagnosticCollector.java:148) ~[diagnostic-library-2.0.3.jar!/:?]

可能原因

  • 不符合规范的/etc/resolv.conf配置:如果/etc/resolv.conf中存在以domain 或search 开头的行,但该行仅有前缀和空白字符(无实际域名内容),执行line.split("\\s+")后会得到长度为1的数组,访问索引[1]时理论上会抛出数组越界异常,但在某些特殊环境下可能被包装为NullPointerException。
  • 异常的文件读取场景:极端情况下,读取/etc/resolv.conf时可能因文件系统异常、并发修改等问题,导致读取到null内容的行,此时调用line.split()方法会直接抛出NullPointerException(尽管Java规范中Files.lines()返回的流元素应为非null字符串,但实际场景中存在边缘case)。
  • 版本固有bug:Oshi 6.1.6版本的该方法未对split结果的数组长度做校验,即使filter逻辑确保行开头有前缀+空格,仍可能因后续全为空白字符导致split后数组长度不足,引发异常。后续版本的Oshi已修复此类问题,建议升级至较新版本规避。

内容的提问来源于stack exchange,提问作者kushal agrawal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 18:35:41