[
https://issues.apache.org/jira/browse/OODT-145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12996159#comment-12996159
]
Brian Foster commented on OODT-145:
-----------------------------------
- actually i looked in to writing an unit-test and i can't write a unit-test to
prove it because the exception that gets thrown in is the StreamGobbler's run
thread which i don't have access to . . . my proof that it works is in running
it with the current version which prints out the exceptions stack trace and
then running with my patch version and the exception not getting thrown
> 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