我收到了很少在此代码中引发的NullPointerException。这是视频流应用程序的一部分,该应用程序同时使用多个RTSP流,并定期断开连接并重新连接(即基于用户)。从Socket.getInputStream抛出的NullPointerException()
private void openSocket() throws IOException {
rtspSocket = new Socket();
rtspSocket.connect(new InetSocketAddress(ip, port), connectionTimeout);
rtspSocket.setSoTimeout(readTimeout);
// NullPointerException on next line
bufStream = new BufferedInputStream(rtspSocket.getInputStream());
}
堆栈跟踪如下:
我的谷歌福已拉起this bug from Apr 2000和this bug from Nov 1997,但我不相信他们是适用的。我也曾漫游过我正在构建的JDK 1.6 update 7代码,并注意到只有在PlainSocketImpl
中包含的FileDescriptor
为空时才会引发此异常。然后将该值从SocketInputStream
构造函数传递给FileInputStream
构造函数。
缺少捕获NPE并抛出IOException,有什么我可以在这里做的吗?我的怀疑是这是由某种IOException将FileDescriptor设置为null引起的。如果抛出IOException,会更容易!
它确实显得相关,除了我没有使用JMF。我无法在JDK上找到有关此行为的任何错误报告,这表明它不是固定的。错误评估建议赶上NPE,所以我想这是我的最佳选择。 – Bringer128