[
https://issues.apache.org/jira/browse/OODT-145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12996232#comment-12996232
]
Chris A. Mattmann commented on OODT-145:
----------------------------------------
Hey Brian, couldn't we just sublcass StreamGobbler, and then @Override its run
method with something like:
{code}
class TestStreamGobbler extends TestCase{
class StreamGobblerTester extends StreamGobbler{
private TestCase test;
public StreamGobblerTester(TestCase t){
this.test = t;
}
@Override
public void run(){
try{
super.run();
}
catch(Exception e){
test.fail(e.getMessage());
}
}
}
{code}
> StreamGobbler stopGobblingAndDie() method doesn't wait until gobble is really
> dead
> ----------------------------------------------------------------------------------
>
> Key: OODT-145
> URL: https://issues.apache.org/jira/browse/OODT-145
> Project: OODT
> Issue Type: Bug
> Components: commons
> Affects Versions: 0.2
> Environment: none
> Reporter: Brian Foster
> Assignee: Brian Foster
> Priority: Minor
> Fix For: 0.3
>
> Attachments: StreamGobber.OODT-145.2011-02-17.patch.txt
>
>
> This causes the streams in ExecUtils to close its output and input streams
> before the gobbler finishes it's flush causing the following errors:
> java.io.IOException: Stream closed
> at
> java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:308)
> at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
> at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
> at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
> at java.io.InputStreamReader.read(InputStreamReader.java:167)
> at java.io.BufferedReader.fill(BufferedReader.java:136)
> at java.io.BufferedReader.readLine(BufferedReader.java:299)
> at java.io.BufferedReader.readLine(BufferedReader.java:362)
> at org.apache.oodt.commons.exec.StreamGobbler.run(StreamGobbler.java:67)
> java.io.IOException: Bad file descriptor
> at java.io.FileInputStream.readBytes(Native Method)
> at java.io.FileInputStream.read(FileInputStream.java:199)
> at
> java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227)
> at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
> at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
> at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
> at java.io.InputStreamReader.read(InputStreamReader.java:167)
> at java.io.BufferedReader.fill(BufferedReader.java:136)
> at java.io.BufferedReader.readLine(BufferedReader.java:299)
> at java.io.BufferedReader.readLine(BufferedReader.java:362)
> at org.apache.oodt.commons.exec.StreamGobbler.run(StreamGobbler.java:67)
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira