private void sendAck(String index, String message, GuacamoleStatus status) {

        // Error "ack" instructions implicitly close the stream
        if (status != GuacamoleStatus.SUCCESS)
            closeInterceptedStream(index);

        sendInstruction(new GuacamoleInstruction("ack", index, message,
                Integer.toString(status.getGuacamoleStatusCode())));

    }
Injects an "ack" instruction into the outbound Guacamole protocol
stream, as if sent by the connected client. "ack" instructions are used
to acknowledge the receipt of a stream and its subsequent blobs, and are
the only means of communicating success/failure status.

@param index
    The index of the stream that this "ack" instruction relates to.

@param message
    An arbitrary human-readable message to include within the "ack"
    instruction.

@param status
    The status of the stream operation being acknowledged via the "ack"
    instruction. Error statuses will implicitly close the stream via
    closeStream().
guacamole/src/main/java/org/apache/guacamole/tunnel/OutputStreamInterceptingFilter.java