@Override
    @DoesServiceRequest
    public void write(final byte[] data, final int offset, final int length) throws IOException {
        if (offset < 0 || length < 0 || length > data.length - offset) {
            throw new IndexOutOfBoundsException();
        }

        this.writeInternal(data, offset, length);
    }
@Override
    @DoesServiceRequest
    public void write(final byte[] data, final int offset, final int length) throws IOException {
        if (offset < 0 || length < 0 || length > data.length - offset) {
            throw new IndexOutOfBoundsException();
        }

        this.writeInternal(data, offset, length);
    }
@ Override @ DoesServiceRequest public void write ( final byte [ ] data , final int offset , final int length ) throws IOException { if ( offset < 0 || length < 0 || length > data . length - offset ) { throw new IndexOutOfBoundsException ( ) ; } this . writeInternal ( data , offset , length ) ; }
Writes length bytes from the specified byte array starting at offset to this output stream.

@param data
A <code>byte</code> array which represents the data to write.
@param offset
An <code>int</code> which represents the start offset in the data.
@param length
An <code>int</code> which represents the number of bytes to write.

@throws IOException
If an I/O error occurs. In particular, an IOException may be thrown if the output stream has been
closed.
Writes length bytes from the specified byte array starting at offset to this output stream .