Author: kkolinko Date: Thu May 20 18:28:39 2010 New Revision: 946746 URL: http://svn.apache.org/viewvc?rev=946746&view=rev Log: Tabs to 8 spaces. No functional change.
Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/UDecoder.java Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/UDecoder.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/UDecoder.java?rev=946746&r1=946745&r2=946746&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/buf/UDecoder.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/buf/UDecoder.java Thu May 20 18:28:39 2010 @@ -49,53 +49,53 @@ public final class UDecoder { /** URLDecode, will modify the source. */ public void convert( ByteChunk mb, boolean query ) - throws IOException + throws IOException { - int start=mb.getOffset(); - byte buff[]=mb.getBytes(); - int end=mb.getEnd(); + int start=mb.getOffset(); + byte buff[]=mb.getBytes(); + int end=mb.getEnd(); - int idx= ByteChunk.indexOf( buff, start, end, '%' ); + int idx= ByteChunk.indexOf( buff, start, end, '%' ); int idx2=-1; if( query ) idx2= ByteChunk.indexOf( buff, start, end, '+' ); - if( idx<0 && idx2<0 ) { - return; - } - - // idx will be the smallest positive indexes ( first % or + ) - if( idx2 >= 0 && idx2 < idx ) idx=idx2; - if( idx < 0 ) idx=idx2; + if( idx<0 && idx2<0 ) { + return; + } + + // idx will be the smallest positive indexes ( first % or + ) + if( idx2 >= 0 && idx2 < idx ) idx=idx2; + if( idx < 0 ) idx=idx2; - boolean noSlash = !(ALLOW_ENCODED_SLASH || query); + boolean noSlash = !(ALLOW_ENCODED_SLASH || query); - for( int j=idx; j<end; j++, idx++ ) { - if( buff[ j ] == '+' && query) { - buff[idx]= (byte)' ' ; - } else if( buff[ j ] != '%' ) { - buff[idx]= buff[j]; - } else { - // read next 2 digits - if( j+2 >= end ) { - throw new CharConversionException("EOF"); - } - byte b1= buff[j+1]; - byte b2=buff[j+2]; - if( !isHexDigit( b1 ) || ! isHexDigit(b2 )) - throw new CharConversionException( "isHexDigit"); - - j+=2; - int res=x2c( b1, b2 ); - if (noSlash && (res == '/')) { - throw new CharConversionException( "noSlash"); - } - buff[idx]=(byte)res; - } - } - - mb.setEnd( idx ); - - return; + for( int j=idx; j<end; j++, idx++ ) { + if( buff[ j ] == '+' && query) { + buff[idx]= (byte)' ' ; + } else if( buff[ j ] != '%' ) { + buff[idx]= buff[j]; + } else { + // read next 2 digits + if( j+2 >= end ) { + throw new CharConversionException("EOF"); + } + byte b1= buff[j+1]; + byte b2=buff[j+2]; + if( !isHexDigit( b1 ) || ! isHexDigit(b2 )) + throw new CharConversionException( "isHexDigit"); + + j+=2; + int res=x2c( b1, b2 ); + if (noSlash && (res == '/')) { + throw new CharConversionException( "noSlash"); + } + buff[idx]=(byte)res; + } + } + + mb.setEnd( idx ); + + return; } // -------------------- Additional methods -------------------- @@ -105,7 +105,7 @@ public final class UDecoder { * Includes converting '+' to ' '. */ public void convert( CharChunk mb ) - throws IOException + throws IOException { convert(mb, true); } @@ -113,53 +113,53 @@ public final class UDecoder { /** In-buffer processing - the buffer will be modified */ public void convert( CharChunk mb, boolean query ) - throws IOException + throws IOException { - // log( "Converting a char chunk "); - int start=mb.getOffset(); - char buff[]=mb.getBuffer(); - int cend=mb.getEnd(); + // log( "Converting a char chunk "); + int start=mb.getOffset(); + char buff[]=mb.getBuffer(); + int cend=mb.getEnd(); - int idx= CharChunk.indexOf( buff, start, cend, '%' ); + int idx= CharChunk.indexOf( buff, start, cend, '%' ); int idx2=-1; if( query ) idx2= CharChunk.indexOf( buff, start, cend, '+' ); - if( idx<0 && idx2<0 ) { - return; - } - - if( idx2 >= 0 && idx2 < idx ) idx=idx2; - if( idx < 0 ) idx=idx2; - - for( int j=idx; j<cend; j++, idx++ ) { - if( buff[ j ] == '+' && query ) { - buff[idx]=( ' ' ); - } else if( buff[ j ] != '%' ) { - buff[idx]=buff[j]; - } else { - // read next 2 digits - if( j+2 >= cend ) { - // invalid - throw new CharConversionException("EOF"); - } - char b1= buff[j+1]; - char b2=buff[j+2]; - if( !isHexDigit( b1 ) || ! isHexDigit(b2 )) - throw new CharConversionException("isHexDigit"); - - j+=2; - int res=x2c( b1, b2 ); - buff[idx]=(char)res; - } - } - mb.setEnd( idx ); + if( idx<0 && idx2<0 ) { + return; + } + + if( idx2 >= 0 && idx2 < idx ) idx=idx2; + if( idx < 0 ) idx=idx2; + + for( int j=idx; j<cend; j++, idx++ ) { + if( buff[ j ] == '+' && query ) { + buff[idx]=( ' ' ); + } else if( buff[ j ] != '%' ) { + buff[idx]=buff[j]; + } else { + // read next 2 digits + if( j+2 >= cend ) { + // invalid + throw new CharConversionException("EOF"); + } + char b1= buff[j+1]; + char b2=buff[j+2]; + if( !isHexDigit( b1 ) || ! isHexDigit(b2 )) + throw new CharConversionException("isHexDigit"); + + j+=2; + int res=x2c( b1, b2 ); + buff[idx]=(char)res; + } + } + mb.setEnd( idx ); } /** URLDecode, will modify the source * Includes converting '+' to ' '. */ public void convert(MessageBytes mb) - throws IOException + throws IOException { convert(mb, true); } @@ -167,24 +167,24 @@ public final class UDecoder { /** URLDecode, will modify the source */ public void convert(MessageBytes mb, boolean query) - throws IOException + throws IOException { - - switch (mb.getType()) { - case MessageBytes.T_STR: - String strValue=mb.toString(); - if( strValue==null ) return; - mb.setString( convert( strValue, query )); - break; - case MessageBytes.T_CHARS: - CharChunk charC=mb.getCharChunk(); - convert( charC, query ); - break; - case MessageBytes.T_BYTES: - ByteChunk bytesC=mb.getByteChunk(); - convert( bytesC, query ); - break; - } + + switch (mb.getType()) { + case MessageBytes.T_STR: + String strValue=mb.toString(); + if( strValue==null ) return; + mb.setString( convert( strValue, query )); + break; + case MessageBytes.T_CHARS: + CharChunk charC=mb.getCharChunk(); + convert( charC, query ); + break; + case MessageBytes.T_BYTES: + ByteChunk bytesC=mb.getByteChunk(); + convert( bytesC, query ); + break; + } } // XXX Old code, needs to be replaced !!!! @@ -197,10 +197,10 @@ public final class UDecoder { public final String convert(String str, boolean query) { if (str == null) return null; - - if( (!query || str.indexOf( '+' ) < 0) && str.indexOf( '%' ) < 0 ) - return str; - + + if( (!query || str.indexOf( '+' ) < 0) && str.indexOf( '%' ) < 0 ) + return str; + StringBuilder dec = new StringBuilder(); // decoded string output int strPos = 0; int strLen = str.length(); @@ -235,11 +235,11 @@ public final class UDecoder { strPos++; continue; } else if (metaChar == '%') { - // We throw the original exception - the super will deal with - // it - // try { - dec.append((char)Integer. - parseInt(str.substring(strPos + 1, strPos + 3),16)); + // We throw the original exception - the super will deal with + // it + // try { + dec.append((char)Integer. + parseInt(str.substring(strPos + 1, strPos + 3),16)); strPos += 3; } } @@ -250,27 +250,27 @@ public final class UDecoder { private static boolean isHexDigit( int c ) { - return ( ( c>='0' && c<='9' ) || - ( c>='a' && c<='f' ) || - ( c>='A' && c<='F' )); + return ( ( c>='0' && c<='9' ) || + ( c>='a' && c<='f' ) || + ( c>='A' && c<='F' )); } private static int x2c( byte b1, byte b2 ) { - int digit= (b1>='A') ? ( (b1 & 0xDF)-'A') + 10 : - (b1 -'0'); - digit*=16; - digit +=(b2>='A') ? ( (b2 & 0xDF)-'A') + 10 : - (b2 -'0'); - return digit; + int digit= (b1>='A') ? ( (b1 & 0xDF)-'A') + 10 : + (b1 -'0'); + digit*=16; + digit +=(b2>='A') ? ( (b2 & 0xDF)-'A') + 10 : + (b2 -'0'); + return digit; } private static int x2c( char b1, char b2 ) { - int digit= (b1>='A') ? ( (b1 & 0xDF)-'A') + 10 : - (b1 -'0'); - digit*=16; - digit +=(b2>='A') ? ( (b2 & 0xDF)-'A') + 10 : - (b2 -'0'); - return digit; + int digit= (b1>='A') ? ( (b1 & 0xDF)-'A') + 10 : + (b1 -'0'); + digit*=16; + digit +=(b2>='A') ? ( (b2 & 0xDF)-'A') + 10 : + (b2 -'0'); + return digit; } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org