上午,美国的QA报告了一个的异常:
public
class
IOTest
...
{

public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;

try
Caused by: java.io.IOException: Stream closed at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:134) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:235) at ........ |
这个异常发生在从某一个input stream流读取信息的时候发生的。在我们目前的系统中出现这个异常是比较不正常,特别是这个异常并不是很容易重现。我和本地的QA都没有重现出来。
虽然不能重现bug,但是凭借经验来说,这个异常是发生在这样一种场景之下:多个线程索引同一个input stream,当某一个thread在执行完之后,把这个inputstream关闭了;而此时正在从这个input stream流中读取信息的线程就会抛出 java.io.IOException: Stream closed 异常。
我写了一小段测试程序,模拟这个场景,如下:







