tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r...@apache.org
Subject cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime BodyContentImpl.java
Date Thu, 10 Oct 2002 15:33:29 GMT
remm        2002/10/10 08:33:29

  Modified:    jasper2/src/share/org/apache/jasper/runtime
                        BodyContentImpl.java
  Log:
  - Fix array out of bounds. After calling setWriter, the bufferSize doesn't match
    the actual buffer size (which is a problem when you need to resize the buffer).
    This was introduced in rev 1.5 by Jan (and I don't understand what that
    saveBufferSize is).
  
  Revision  Changes    Path
  1.7       +16 -13    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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- BodyContentImpl.java	3 Oct 2002 23:50:11 -0000	1.6
  +++ BodyContentImpl.java	10 Oct 2002 15:33:29 -0000	1.7
  @@ -594,7 +594,7 @@
   	bodyContent.writeOut (new PrintWriter (System.out));
       }
   
  -    /*
  +    /**
        * Sets the writer to which all output is written.
        */
       void setWriter(Writer writer) {
  @@ -614,25 +614,28 @@
   	if (closed) throw new IOException("Stream closed");
       }
   
  -    /*
  +    /**
        * Reallocates buffer since the spec requires it to be unbounded.
        */
  -    private void reAllocBuff (int len) {
  +    private void reAllocBuff(int len) {
   
  -	char[] tmp = null;
  +        if (bufferSize + len <= cb.length) {
  +            bufferSize = cb.length;
  +            return;
  +        }
  +
  +        if (len < Constants.DEFAULT_TAG_BUFFER_SIZE) {
  +            len = Constants.DEFAULT_TAG_BUFFER_SIZE;
  +        }
   
  -	//XXX Should it be multiple of DEFAULT_TAG_BUFFER_SIZE?
  -
  -	if (len <= Constants.DEFAULT_TAG_BUFFER_SIZE) {
  -	    tmp = new char [bufferSize + Constants.DEFAULT_TAG_BUFFER_SIZE];
  -	    bufferSize += Constants.DEFAULT_TAG_BUFFER_SIZE;
  -	} else {
  -	    tmp = new char [bufferSize + len];
  -	    bufferSize += len;
  -	}
  +        bufferSize = cb.length + len;
  +        char[] tmp = new char[bufferSize];
   
   	System.arraycopy(cb, 0, tmp, 0, cb.length);
   	cb = tmp;
   	tmp = null;
  +
       }
  +
  +
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>


Mime
View raw message