This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit adf4d35169baf102048ebfa13b516e96501451a6 Author: Mark Thomas <ma...@apache.org> AuthorDate: Mon Mar 16 16:29:57 2020 +0000 Remove deprecated methods --- java/org/apache/tomcat/util/buf/UDecoder.java | 180 -------------------------- 1 file changed, 180 deletions(-) diff --git a/java/org/apache/tomcat/util/buf/UDecoder.java b/java/org/apache/tomcat/util/buf/UDecoder.java index f37aa73..73c7238 100644 --- a/java/org/apache/tomcat/util/buf/UDecoder.java +++ b/java/org/apache/tomcat/util/buf/UDecoder.java @@ -130,186 +130,6 @@ public final class UDecoder { // -------------------- Additional methods -------------------- /** - * In-buffer processing - the buffer will be modified. - * <p> - * <b>WARNING:</b> This method assumes US-ASCII encoding. - * - * @param mb The URL encoded chars - * @param query <code>true</code> if this is a query string - * @throws IOException Invalid %xx URL encoding - * - * @deprecated Unused. Will be removed in Tomcat 10 - */ - @Deprecated - public void convert( CharChunk mb, boolean query ) - throws IOException - { - // 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 idx2=-1; - if( query ) { - idx2= CharChunk.indexOf( buff, start, (idx >= 0 ? idx : cend), '+' ); - } - if( idx<0 && idx2<0 ) { - return; - } - - // idx will be the smallest positive index ( first % or + ) - if( (idx2 >= 0 && idx2 < idx) || idx < 0 ) { - idx=idx2; - } - - final boolean noSlash = !(ALLOW_ENCODED_SLASH || query); - - 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 EXCEPTION_EOF; - } - char b1= buff[j+1]; - char b2=buff[j+2]; - if( !isHexDigit( b1 ) || ! isHexDigit(b2 )) { - throw EXCEPTION_NOT_HEX_DIGIT; - } - - j+=2; - int res=x2c( b1, b2 ); - if (noSlash && (res == '/')) { - throw EXCEPTION_SLASH; - } - buff[idx]=(char)res; - } - } - mb.setEnd( idx ); - } - - /** - * URLDecode, will modify the source. - * <p> - * <b>WARNING:</b> This method assumes US-ASCII encoding. - * - * @param mb The URL encoded String, bytes or chars - * @param query <code>true</code> if this is a query string - * @throws IOException Invalid %xx URL encoding - * - * @deprecated Unused. Will be removed in Tomcat 10 - */ - @Deprecated - public void convert(MessageBytes mb, boolean query) - throws IOException - { - - switch (mb.getType()) { - case MessageBytes.T_STR: - String strValue=mb.toString(); - if( strValue==null ) { - return; - } - try { - mb.setString( convert( strValue, query )); - } catch (RuntimeException ex) { - throw new DecodeException(ex.getMessage()); - } - 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; - } - } - - /** - * %xx decoding of a string. - * <p> - * <b>WARNING:</b> This method assumes US-ASCII encoding. - * <p> - * FIXME: this is inefficient. - * - * @param str The URL encoded string - * @param query <code>true</code> if this is a query string - * @return the decoded string - * - * @deprecated Unused. Will be removed in Tomcat 10 - */ - @Deprecated - public final String convert(String str, boolean query) - { - if (str == null) { - return null; - } - - if( (!query || str.indexOf( '+' ) < 0) && str.indexOf( '%' ) < 0 ) { - return str; - } - - final boolean noSlash = !(ALLOW_ENCODED_SLASH || query); - - StringBuilder dec = new StringBuilder(); // decoded string output - int strPos = 0; - int strLen = str.length(); - - dec.ensureCapacity(str.length()); - while (strPos < strLen) { - int laPos; // lookahead position - - // look ahead to next URLencoded metacharacter, if any - for (laPos = strPos; laPos < strLen; laPos++) { - char laChar = str.charAt(laPos); - if ((laChar == '+' && query) || (laChar == '%')) { - break; - } - } - - // if there were non-metacharacters, copy them all as a block - if (laPos > strPos) { - dec.append(str.substring(strPos,laPos)); - strPos = laPos; - } - - // shortcut out of here if we're at the end of the string - if (strPos >= strLen) { - break; - } - - // process next metacharacter - char metaChar = str.charAt(strPos); - if (metaChar == '+') { - dec.append(' '); - strPos++; - continue; - } else if (metaChar == '%') { - // We throw the original exception - the super will deal with - // it - // try { - char res = (char) Integer.parseInt( - str.substring(strPos + 1, strPos + 3), 16); - if (noSlash && (res == '/')) { - throw new IllegalArgumentException(sm.getString("uDecoder.noSlash")); - } - dec.append(res); - strPos += 3; - } - } - - return dec.toString(); - } - - - /** * Decode and return the specified URL-encoded String. It is assumed the * string is not a query string. * --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org