remm 02/03/31 11:27:08 Modified: jasper2/src/share/org/apache/jasper/runtime JspWriterImpl.java Log: - Synchronization of the writer doesn't seem to be useful (for the same reason the response writer isn't synced). Revision Changes Path 1.3 +119 -154 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspWriterImpl.java Index: JspWriterImpl.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspWriterImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JspWriterImpl.java 31 Mar 2002 09:02:52 -0000 1.2 +++ JspWriterImpl.java 31 Mar 2002 19:27:08 -0000 1.3 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspWriterImpl.java,v 1.2 2002/03/31 09:02:52 remm Exp $ - * $Revision: 1.2 $ - * $Date: 2002/03/31 09:02:52 $ + * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspWriterImpl.java,v 1.3 2002/03/31 19:27:08 remm Exp $ + * $Revision: 1.3 $ + * $Date: 2002/03/31 19:27:08 $ * * ==================================================================== * @@ -157,17 +157,15 @@ * may be invoked by PrintStream. */ protected final void flushBuffer() throws IOException { - synchronized (lock) { - if (bufferSize == 0) - return; - flushed = true; - ensureOpen(); - if (nextChar == 0) - return; - initOut(); - out.write(cb, 0, nextChar); - nextChar = 0; - } + if (bufferSize == 0) + return; + flushed = true; + ensureOpen(); + if (nextChar == 0) + return; + initOut(); + out.write(cb, 0, nextChar); + nextChar = 0; } protected void initOut() throws IOException { @@ -182,23 +180,19 @@ * Discard the output buffer. */ public final void clear() throws IOException { - synchronized (lock) { - if (bufferSize == 0) - throw new IllegalStateException(Constants.getString("jsp.error.ise_on_clear")); - if (flushed) - throw new IOException(Constants.getString("jsp.error.attempt_to_clear_flushed_buffer")); - ensureOpen(); - nextChar = 0; - } + if (bufferSize == 0) + throw new IllegalStateException(Constants.getString("jsp.error.ise_on_clear")); + if (flushed) + throw new IOException(Constants.getString("jsp.error.attempt_to_clear_flushed_buffer")); + ensureOpen(); + nextChar = 0; } public void clearBuffer() throws IOException { - synchronized (lock) { - if (bufferSize == 0) - throw new IllegalStateException(Constants.getString("jsp.error.ise_on_clear")); - ensureOpen(); - nextChar = 0; - } + if (bufferSize == 0) + throw new IllegalStateException(Constants.getString("jsp.error.ise_on_clear")); + ensureOpen(); + nextChar = 0; } private final void bufferOverflow() throws IOException { @@ -210,13 +204,11 @@ * */ public void flush() throws IOException { - synchronized (lock) { - flushBuffer(); - if (out != null) { - out.flush(); - // Also flush the response buffer. - response.flushBuffer(); - } + flushBuffer(); + if (out != null) { + out.flush(); + // Also flush the response buffer. + response.flushBuffer(); } } @@ -225,17 +217,15 @@ * */ public void close() throws IOException { - synchronized (lock) { - if (response == null || closed) - // multiple calls to close is OK - return; - flush(); - if (out != null) - out.close(); - out = null; - closed = true; - // cb = null; - } + if (response == null || closed) + // multiple calls to close is OK + return; + flush(); + if (out != null) + out.close(); + out = null; + closed = true; + // cb = null; } /** @@ -257,20 +247,18 @@ * */ public void write(int c) throws IOException { - synchronized (lock) { - ensureOpen(); - if (bufferSize == 0) { - initOut(); - out.write(c); - } - else { - if (nextChar >= bufferSize) - if (autoFlush) - flushBuffer(); - else - bufferOverflow(); - cb[nextChar++] = (char) c; - } + ensureOpen(); + if (bufferSize == 0) { + initOut(); + out.write(c); + } + else { + if (nextChar >= bufferSize) + if (autoFlush) + flushBuffer(); + else + bufferOverflow(); + cb[nextChar++] = (char) c; } } @@ -301,48 +289,47 @@ public void write(char cbuf[], int off, int len) throws IOException { - synchronized (lock) { - ensureOpen(); + ensureOpen(); + + if (bufferSize == 0) { + initOut(); + out.write(cbuf, off, len); + return; + } - if (bufferSize == 0) { - initOut(); - out.write(cbuf, off, len); - return; - } - - if ((off < 0) || (off > cbuf.length) || (len < 0) || - ((off + len) > cbuf.length) || ((off + len) < 0)) { - throw new IndexOutOfBoundsException(); - } else if (len == 0) { - return; - } - - if (len >= bufferSize) { - /* If the request length exceeds the size of the output buffer, - flush the buffer and then write the data directly. In this - way buffered streams will cascade harmlessly. */ + if ((off < 0) || (off > cbuf.length) || (len < 0) || + ((off + len) > cbuf.length) || ((off + len) < 0)) { + throw new IndexOutOfBoundsException(); + } else if (len == 0) { + return; + } + + if (len >= bufferSize) { + /* If the request length exceeds the size of the output buffer, + flush the buffer and then write the data directly. In this + way buffered streams will cascade harmlessly. */ + if (autoFlush) + flushBuffer(); + else + bufferOverflow(); + initOut(); + out.write(cbuf, off, len); + return; + } + + int b = off, t = off + len; + while (b < t) { + int d = min(bufferSize - nextChar, t - b); + System.arraycopy(cbuf, b, cb, nextChar, d); + b += d; + nextChar += d; + if (nextChar >= bufferSize) if (autoFlush) flushBuffer(); else bufferOverflow(); - initOut(); - out.write(cbuf, off, len); - return; - } - - int b = off, t = off + len; - while (b < t) { - int d = min(bufferSize - nextChar, t - b); - System.arraycopy(cbuf, b, cb, nextChar, d); - b += d; - nextChar += d; - if (nextChar >= bufferSize) - if (autoFlush) - flushBuffer(); - else - bufferOverflow(); - } } + } /** @@ -362,25 +349,23 @@ * */ public void write(String s, int off, int len) throws IOException { - synchronized (lock) { - ensureOpen(); - if (bufferSize == 0) { - initOut(); - out.write(s, off, len); - return; - } - int b = off, t = off + len; - while (b < t) { - int d = min(bufferSize - nextChar, t - b); - s.getChars(b, b + d, cb, nextChar); - b += d; - nextChar += d; - if (nextChar >= bufferSize) - if (autoFlush) - flushBuffer(); - else - bufferOverflow(); - } + ensureOpen(); + if (bufferSize == 0) { + initOut(); + out.write(s, off, len); + return; + } + int b = off, t = off + len; + while (b < t) { + int d = min(bufferSize - nextChar, t - b); + s.getChars(b, b + d, cb, nextChar); + b += d; + nextChar += d; + if (nextChar >= bufferSize) + if (autoFlush) + flushBuffer(); + else + bufferOverflow(); } } @@ -404,9 +389,7 @@ */ public void newLine() throws IOException { - synchronized (lock) { - write(lineSeparator); - } + write(lineSeparator); } @@ -554,10 +537,8 @@ * <code>{@link #println()}</code>. */ public void println(boolean x) throws IOException { - synchronized (lock) { - print(x); - println(); - } + print(x); + println(); } /** @@ -566,10 +547,8 @@ * #println()}</code>. */ public void println(char x) throws IOException { - synchronized (lock) { - print(x); - println(); - } + print(x); + println(); } /** @@ -578,10 +557,8 @@ * #println()}</code>. */ public void println(int x) throws IOException { - synchronized (lock) { - print(x); - println(); - } + print(x); + println(); } /** @@ -590,10 +567,8 @@ * <code>{@link #println()}</code>. */ public void println(long x) throws IOException { - synchronized (lock) { - print(x); - println(); - } + print(x); + println(); } /** @@ -602,10 +577,8 @@ * <code>{@link #println()}</code>. */ public void println(float x) throws IOException { - synchronized (lock) { - print(x); - println(); - } + print(x); + println(); } /** @@ -614,10 +587,8 @@ * #print(double)}</code> and then <code>{@link #println()}</code>. */ public void println(double x) throws IOException { - synchronized (lock) { - print(x); - println(); - } + print(x); + println(); } /** @@ -626,10 +597,8 @@ * <code>{@link #println()}</code>. */ public void println(char x[]) throws IOException { - synchronized (lock) { - print(x); - println(); - } + print(x); + println(); } /** @@ -638,10 +607,8 @@ * <code>{@link #println()}</code>. */ public void println(String x) throws IOException { - synchronized (lock) { - print(x); - println(); - } + print(x); + println(); } /** @@ -650,10 +617,8 @@ * <code>{@link #println()}</code>. */ public void println(Object x) throws IOException { - synchronized (lock) { - print(x); - println(); - } + print(x); + println(); } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>