[ 
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

        

Reply via email to