[ 
https://issues.apache.org/jira/browse/DERBY-5608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kristian Waagan updated DERBY-5608:
-----------------------------------

    Attachment: derby-5608-1a-use_spawnedprocess.diff

Attaching a patch that makes BaseTestCase.readProcessOutout use SpawnedProcess 
to handle the output from the subprocess.

Only tested with derbynet._Suite so far.

Patch ready for review.
                
> BaseTestCase.readProcessOutput should read getInputStream()  and 
> getErrorStream() in separate threads
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5608
>                 URL: https://issues.apache.org/jira/browse/DERBY-5608
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.9.0.0
>            Reporter: Kathey Marsden
>            Priority: Minor
>         Attachments: derby-5608-1a-use_spawnedprocess.diff
>
>
> BaseTestCase.readProcessOutput() reads the streams from 
> Process.getInputStream() and Process.getErrorStream() sequentially 
> InputStream is = pr.getInputStream();
> InputStream es = pr.getErrorStream();
> ...
>  output += "<STDOUT> " + inputStreamToString(is) + "<END STDOUT>\n";
>  output += "<STDERR>" + inputStreamToString(es) + "<END STDERR>\n";
> I think that to be really correct the  two streams need to be read in 
> separate threads because if the error output  is  large it could block and 
> cause a hang  if they are read sequentially like this.
> I noticed during the DERBY-5601 discussion as Myrna referenced in that  the 
> addition of draining the error stream caused a different problem (an 
> InterruptException). I don't understand how it could cause that problem but 
> do think a hang blocking on  reading the input would be possible if the error 
> output was large enough both  before and after the change to add the reading 
> of the error stream sequentially.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to