dgü created SSHD-1302:
-------------------------

             Summary: Handling empty ChannelExec#getInvertedOut() to rely on 
InputStream
                 Key: SSHD-1302
                 URL: https://issues.apache.org/jira/browse/SSHD-1302
             Project: MINA SSHD
          Issue Type: Improvement
    Affects Versions: 2.9.1
         Environment: Java 8
            Reporter: dgü


Hello!

If I read an input stream until end of it, and then read it again, it throws an 
exception.

Here is the test case:

{code:java}
            BufferedReader input;
            String line;

            //process.getInputStream() gets its value from 
ChannelExec#getInvertedOut()

            System.out.println("getInputStream: " + process.getInputStream());
            input = new BufferedReader(new 
InputStreamReader(process.getInputStream()));
            while ((line = input.readLine()) != null) {
                System.out.println(line);
            }

            System.out.println("getInputStream: " + process.getInputStream());
            input = new BufferedReader(new 
InputStreamReader(process.getInputStream()));
            while ((line = input.readLine()) != null) {
                System.out.println(line);
            }
{code}

Here is an output excerpt:

{quote}getInputStream: 
org.apache.sshd.common.channel.ChannelPipedInputStream@bd8db5a
total 0
drwx------. 3 root root 17 Oct 17 10:31 
systemd-private-c3ce924f90c24e4a86f637831f434fe3-chronyd.service-DwM2fR
drwx------. 3 root root 17 Oct 14 13:22 
systemd-private-e0701fd845894b6087a236a976c00b35-chronyd.service-2z3OOv
getInputStream: org.apache.sshd.common.channel.ChannelPipedInputStream@bd8db5a
Exception in thread "main" java.io.IOException: Pipe closed after 0 cycles
        at 
org.apache.sshd.common.channel.ChannelPipedInputStream.read(ChannelPipedInputStream.java:126)
        at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
        at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
        at java.io.InputStreamReader.read(InputStreamReader.java:184)
        at java.io.BufferedReader.fill(BufferedReader.java:161)
        at java.io.BufferedReader.readLine(BufferedReader.java:324)
        at java.io.BufferedReader.readLine(BufferedReader.java:389){quote}

It looks the input stream is closed.

is it possible not to throw an exception to rely on java.io.InputStream ?

Thanks in advance...



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to