You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2006/01/04 08:48:43 UTC

svn commit: r365858 - /tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java

Author: costin
Date: Tue Jan  3 23:48:42 2006
New Revision: 365858

URL: http://svn.apache.org/viewcvs?rev=365858&view=rev
Log:
few extra checks 

Modified:
    tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java

Modified: tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java
URL: http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java?rev=365858&r1=365857&r2=365858&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java (original)
+++ tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java Tue Jan  3 23:48:42 2006
@@ -690,15 +690,19 @@
             int myPos=i+1;
 
             // not enough chars to have a match
-            if( i + srcLen >= end ) {
+            if( myPos + srcLen >= end ) {
                 break;
             }
             
+            try {
 	    for( int srcPos=srcOff + 1; srcPos< srcEnd; ) {
                 if( bb.get(myPos++) != src.charAt( srcPos++ ))
 		    break;
                 if( srcPos==srcEnd ) return i-start; // found it
 	    }
+            } catch( Throwable t ) {
+                t.printStackTrace();
+            }
 	}
 	return -1;
     }



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


Re: svn commit: r365858 - /tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java

Posted by Costin Manolache <co...@gmail.com>.
On 1/4/06, Tino Schwarze <ti...@tisc.de> wrote:
> On Wed, Jan 04, 2006 at 07:48:43AM -0000, costin@apache.org wrote:
>
> > Modified: tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java
> > URL: http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java?rev=365858&r1=365857&r2=365858&view=diff
> > > > +            try {
> >           for( int srcPos=srcOff + 1; srcPos< srcEnd; ) {
> >                  if( bb.get(myPos++) != src.charAt( srcPos++ ))
> >                   break;
> >                  if( srcPos==srcEnd ) return i-start; // found it
> >           }
> > +            } catch( Throwable t ) {
> > +                t.printStackTrace();
> > +            }
>
> Argh! Never ever do that!
> 1) don't catch Throwable - you'll happily consume OutOfMemoryError and
>    similar bad things here which should certainly be passed along.
> 2) don't use printStackTrace() - use a suitable logger instead

Will go away - using the buffers is very messy right now, I'm trying
to find a better way.

Costin

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


Re: svn commit: r365858 - /tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java

Posted by Tino Schwarze <ti...@tisc.de>.
On Wed, Jan 04, 2006 at 07:48:43AM -0000, costin@apache.org wrote:

> Modified: tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java
> URL: http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java?rev=365858&r1=365857&r2=365858&view=diff
> ==============================================================================
> --- tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java (original)
> +++ tomcat/sandbox/java/org/apache/tomcat/util/buf/ByteChunk.java Tue Jan  3 23:48:42 2006
> @@ -690,15 +690,19 @@
>              int myPos=i+1;
>  
>              // not enough chars to have a match
> -            if( i + srcLen >= end ) {
> +            if( myPos + srcLen >= end ) {
>                  break;
>              }
>              
> +            try {
>  	    for( int srcPos=srcOff + 1; srcPos< srcEnd; ) {
>                  if( bb.get(myPos++) != src.charAt( srcPos++ ))
>  		    break;
>                  if( srcPos==srcEnd ) return i-start; // found it
>  	    }
> +            } catch( Throwable t ) {
> +                t.printStackTrace();
> +            }

Argh! Never ever do that!
1) don't catch Throwable - you'll happily consume OutOfMemoryError and
   similar bad things here which should certainly be passed along.
2) don't use printStackTrace() - use a suitable logger instead

Just my 2 cents,

Tino.


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