重现java.io.IOException: Stream closed异常
来源:互联网 发布:音节划分规则知乎 编辑:程序博客网 时间:2024/05/17 07:04
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
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 异常。
我写了一小段测试程序,模拟这个场景,如下:
public static void main(String[] args) ...{
File f = new File("c:/test/StoreTest-1.xml");
java.io.BufferedReader br = null;
try ...{
br = new java.io.BufferedReader(new java.io.FileReader(f));
} catch (FileNotFoundException e) ...{}
final java.io.BufferedReader br1 = br;
final java.io.BufferedReader br2 = br;
Thread t = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br1.readLine()) != null;) ...{
System.out.println("Process stdout: " );
try ...{
Thread.sleep(1000);
} catch (InterruptedException e) ...{}
}
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
Thread t2 = new Thread() ...{
public void run() ...{
try ...{
for (String line = null; (line = br2.readLine()) != null;) ...{}
System.out.println("Process stdout2: ");
br2.close();
} catch (IOException ioe) ...{
ioe.printStackTrace();
}
}
};
t.start();
t2.start();
}
}
当执行这段程序之后,会看到如下输出:
Process stdout:
Process stdout2:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:293)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at test.common.util.IOTest$1.run(IOTest.java:38)
- 重现java.io.IOException: Stream closed异常
- 重现java.io.IOException: Stream closed异常
- 重现java.io.IOException: Stream closed异常
- 重现java.io.IOException: Stream closed异常
- java.io.IOException: Stream closed异常
- java.io.IOException: Stream closed
- java.io.IOException: Stream closed
- java.io.IOException: Stream closed
- 【Java】异常 java.io.IOException: Stream closed 的解决办法
- Java文件流“java.io.IOException: Stream closed”异常解决
- java.io.IOException:stream closed 异常的原因及处理
- java.io.IOException:stream closed 异常的原因及处理
- java.io.IOException:stream closed 异常的原因及处理
- java.io.IOException:stream closed 异常的原因及处理
- java.io.IOException:stream closed 异常的原因及处理
- java.io.IOException: The stream is closed
- java.io.IOException: Stream closed解决办法
- java.io.IOException: Stream closed解决办法
- 围绕EMF探索(2)之再探查询组件
- 围绕EMF探索(1)之存储和查询
- 《SOA中国路线图》可圈可点之处
- 我对SOA的反思:SOA架构的本质
- 参加“SOA产业链及企业软件趋势研讨会”的感想
- 重现java.io.IOException: Stream closed异常
- 终于读完了《杰克·韦尔奇自传》
- 为中科院软件学院学生义务提供了一场工作流及企业应用的讲解
- 夜晚在家的工作环境(开发中的乐趣)
- BPM与BI的融合趋势(抑或这是一个炒作?)
- Bea user group的BPM主题会后随笔
- 与李文章兄弟畅谈他的嵌入式工作流引擎思想,及为他的周末的BEA user group演讲呐喊
- 畅谈工作流应用
- 技术媒体和软件应用杂谈(20070313聚会)