null buffer || null address

         今天有同事搭建项目的冒烟环境,搭建了快一天一直没搭建成功。后来,晚上我帮忙查看的时候,发现系统在启动的时候大部分的service都启动失败,这些service都在通过log4j打log的时候就开始抛出异常,异常信息如下:

   Caused by: java.lang.NullPointerException: null buffer || null address

        at java.net.PlainDatagramSocketImpl.send(Native Method)

        at java.net.DatagramSocket.send(DatagramSocket.java:612)

        at org.apache.log4j.helpers.SyslogWriter.write(SyslogWriter.java:69)

        at org.apache.log4j.helpers.QuietWriter.write(QuietWriter.java:39)

        at org.apache.log4j.helpers.SyslogQuietWriter.write(SyslogQuietWriter.java:45)


        第一反应是不可思议,竟然通过log4j写日志出现异常了。后来发现当我们通过一个不可解析的SocketAddress来发送DatagramPacket信息时会抛出上诉的异常,这个异常信息太烂了,这是jdk的一个bug。查出这个问题之后就好办了,在对应的log4j.xml配置文件里面有配置了一个Appender来将日志写到一台远程机器上;而对应的机器名并没有加入DNS解析中,导致对应的主机找不到,抛出上述异常;后添加DNS解析后,应用恢复正常。
       
        怕日后忘记,在此做个小记~~

          上面说的JDK的bug链接见http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5021519

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值