You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by lu...@apache.org on 2003/01/14 02:56:05 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime BodyContentImpl.java
luehe 2003/01/13 17:56:05
Modified: jasper2/src/share/org/apache/jasper/runtime
BodyContentImpl.java
Log:
Removed redundant 'isBodyContent' and added comment about 'bufferSizeSave'
Revision Changes Path
1.8 +24 -19 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/BodyContentImpl.java
Index: BodyContentImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/BodyContentImpl.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- BodyContentImpl.java 10 Oct 2002 15:33:29 -0000 1.7
+++ BodyContentImpl.java 14 Jan 2003 01:56:05 -0000 1.8
@@ -83,13 +83,7 @@
// Enclosed writer to which any output is written
private Writer writer;
- /*
- * Indicates whether this BodyContentImpl is returned as the result of a
- * call to JspContext.pushBody(java.io.Writer) (FALSE) or
- * PageContext.pushBody() (TRUE)
- */
- private boolean isBodyContent;
-
+ // See comment in setWriter()
private int bufferSizeSave;
/**
@@ -505,10 +499,10 @@
* @throws IOException If an I/O error occurs
*/
public void clear() throws IOException {
- if (isBodyContent) {
- nextChar = 0;
- } else {
+ if (writer != null) {
throw new IOException();
+ } else {
+ nextChar = 0;
}
}
@@ -521,7 +515,9 @@
* @throws IOException If an I/O error occurs
*/
public void clearBuffer() throws IOException {
- if (isBodyContent) this.clear();
+ if (writer == null) {
+ this.clear();
+ }
}
/**
@@ -544,7 +540,7 @@
* @return the number of bytes unused in the buffer
*/
public int getRemaining() {
- return isBodyContent ? bufferSize-nextChar : 0;
+ return (writer == null) ? bufferSize-nextChar : 0;
}
/**
@@ -555,7 +551,7 @@
* @return the value of this BodyJspWriter as a Reader
*/
public Reader getReader() {
- return isBodyContent ? new CharArrayReader (cb, 0, nextChar) : null;
+ return (writer == null) ? new CharArrayReader (cb, 0, nextChar) : null;
}
/**
@@ -566,7 +562,7 @@
* @return the value of the BodyJspWriter as a String
*/
public String getString() {
- return isBodyContent ? new String(cb, 0, nextChar) : null;
+ return (writer == null) ? new String(cb, 0, nextChar) : null;
}
/**
@@ -578,7 +574,7 @@
* evaluation
*/
public void writeOut(Writer out) throws IOException {
- if (isBodyContent) {
+ if (writer == null) {
out.write(cb, 0, nextChar);
// Flush not called as the writer passed could be a BodyContent and
// it doesn't allow to flush.
@@ -600,11 +596,20 @@
void setWriter(Writer writer) {
this.writer = writer;
if (writer != null) {
- isBodyContent = false;
- bufferSizeSave = bufferSize;
- bufferSize = 0;
+ // According to the spec, the JspWriter returned by
+ // JspContext.pushBody(java.io.Writer writer) must behave as
+ // though it were unbuffered. This means that its getBufferSize()
+ // must always return 0. The implementation of
+ // JspWriter.getBufferSize() returns the value of JspWriter's
+ // 'bufferSize' field, which is inherited by this class.
+ // Therefore, we simply save the current 'bufferSize' (so we can
+ // later restore it should this BodyContentImpl ever be reused by
+ // a call to PageContext.pushBody()) before setting it to 0.
+ if (bufferSize != 0) {
+ bufferSizeSave = bufferSize;
+ bufferSize = 0;
+ }
} else {
- isBodyContent = true;
bufferSize = bufferSizeSave;
clearBody();
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>