src/main/java/org/apache/sling/scripting/core/impl/helper/OnDemandWriter.java [33:99]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        this.response = response;
    }

    private Writer getWriter() throws IOException {
        if (delegatee == null) {
            delegatee = response.getWriter();
        }

        return delegatee;
    }

    @Override
    public void write(int c) throws IOException {
        synchronized (lock) {
            getWriter().write(c);
        }
    }

    @Override
    public void write(char[] cbuf) throws IOException {
        synchronized (lock) {
            getWriter().write(cbuf);
        }
    }

    @Override
    public void write(char[] cbuf, int off, int len) throws IOException {
        synchronized (lock) {
            getWriter().write(cbuf, off, len);
        }
    }

    @Override
    public void write(String str) throws IOException {
        synchronized (lock) {
            getWriter().write(str);
        }
    }

    @Override
    public void write(String str, int off, int len) throws IOException {
        synchronized (lock) {
            getWriter().write(str, off, len);
        }
    }

    @Override
    public void flush() throws IOException {
        synchronized (lock) {
            Writer writer = delegatee;
            if (writer != null) {
                writer.flush();
            }
        }
    }

    @Override
    public void close() throws IOException {
        synchronized (lock) {
            // flush and close the delegatee if existing, otherwise ignore
            Writer writer = delegatee;
            if (writer != null) {
                writer.flush();
                writer.close();

                // drop the delegatee now
                delegatee = null;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/main/java/org/apache/sling/scripting/core/impl/helper/OnDemandWriterJakarta.java [33:99]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        this.response = response;
    }

    private Writer getWriter() throws IOException {
        if (delegatee == null) {
            delegatee = response.getWriter();
        }

        return delegatee;
    }

    @Override
    public void write(int c) throws IOException {
        synchronized (lock) {
            getWriter().write(c);
        }
    }

    @Override
    public void write(char[] cbuf) throws IOException {
        synchronized (lock) {
            getWriter().write(cbuf);
        }
    }

    @Override
    public void write(char[] cbuf, int off, int len) throws IOException {
        synchronized (lock) {
            getWriter().write(cbuf, off, len);
        }
    }

    @Override
    public void write(String str) throws IOException {
        synchronized (lock) {
            getWriter().write(str);
        }
    }

    @Override
    public void write(String str, int off, int len) throws IOException {
        synchronized (lock) {
            getWriter().write(str, off, len);
        }
    }

    @Override
    public void flush() throws IOException {
        synchronized (lock) {
            Writer writer = delegatee;
            if (writer != null) {
                writer.flush();
            }
        }
    }

    @Override
    public void close() throws IOException {
        synchronized (lock) {
            // flush and close the delegatee if existing, otherwise ignore
            Writer writer = delegatee;
            if (writer != null) {
                writer.flush();
                writer.close();

                // drop the delegatee now
                delegatee = null;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



