class SecureShellTask implements Runnable {

    private static final Logger log = LoggerFactory.getLogger(SecureShellTask.class);

    InputStream outFromChannel;
    SessionOutput sessionOutput;

    public SecureShellTask(SessionOutput sessionOutput, InputStream outFromChannel) {

        this.sessionOutput = sessionOutput;
        this.outFromChannel = outFromChannel;
    }

    public void run() {<FILL_FUNCTION_BODY>}

}

        InputStreamReader isr = new InputStreamReader(outFromChannel);
        BufferedReader br = new BufferedReader(isr);

        SessionOutputUtil.addOutput(sessionOutput);

        char[] buff = new char[1024];
        int read;
        try {
            while ((read = br.read(buff)) != -1) {
                SessionOutputUtil.addToOutput(sessionOutput.getSessionId(), sessionOutput.getInstanceId(), buff, 0, read);
                Thread.sleep(50);
            }
            SessionOutputUtil.removeOutput(sessionOutput.getSessionId(), sessionOutput.getInstanceId());

        } catch (IOException | InterruptedException ex) {
            log.error(ex.toString(), ex);
        }
    
<no_super_class>