@Override
    public void mark(int arg0) {
        try {
            delegate.mark(arg0);
        } catch (RuntimeException e) {
            try {
                observer.exceptionOccurred(e);
            } catch (IOException e1) {
                throw new RuntimeException("The observer threw against the  API contract.", e1);
            }
            throw new RuntimeException("The observer failed to throw per API contract.");
        }
    }
@see java.io.InputStream#mark(int)
src/nu/validator/io/ObservableInputStream.java