1*455610afSAndroid Build Coastguard WorkerLicensed to the Apache Software Foundation (ASF) under one or more 2*455610afSAndroid Build Coastguard Workercontributor license agreements. See the NOTICE file distributed with 3*455610afSAndroid Build Coastguard Workerthis work for additional information regarding copyright ownership. 4*455610afSAndroid Build Coastguard WorkerThe ASF licenses this file to You under the Apache License, Version 2.0 5*455610afSAndroid Build Coastguard Worker(the "License"); you may not use this file except in compliance with 6*455610afSAndroid Build Coastguard Workerthe License. You may obtain a copy of the License at 7*455610afSAndroid Build Coastguard Worker 8*455610afSAndroid Build Coastguard Workerhttp://www.apache.org/licenses/LICENSE-2.0 9*455610afSAndroid Build Coastguard Worker 10*455610afSAndroid Build Coastguard WorkerUnless required by applicable law or agreed to in writing, software 11*455610afSAndroid Build Coastguard Workerdistributed under the License is distributed on an "AS IS" BASIS, 12*455610afSAndroid Build Coastguard WorkerWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*455610afSAndroid Build Coastguard WorkerSee the License for the specific language governing permissions and 14*455610afSAndroid Build Coastguard Workerlimitations under the License. 15*455610afSAndroid Build Coastguard Worker 16*455610afSAndroid Build Coastguard Worker============================================================================= 17*455610afSAndroid Build Coastguard Worker 18*455610afSAndroid Build Coastguard Worker Commons Lang Package 19*455610afSAndroid Build Coastguard Worker Version 2.2 20*455610afSAndroid Build Coastguard Worker Release Notes 21*455610afSAndroid Build Coastguard Worker 22*455610afSAndroid Build Coastguard Worker 23*455610afSAndroid Build Coastguard WorkerINTRODUCTION: 24*455610afSAndroid Build Coastguard Worker 25*455610afSAndroid Build Coastguard WorkerThis document contains the release notes for the 2.2 version of Apache Jakarta Commons Lang. 26*455610afSAndroid Build Coastguard WorkerCommons Lang is a set of utility functions and reusable components that 27*455610afSAndroid Build Coastguard Workershould be of use in any Java environment. 28*455610afSAndroid Build Coastguard Worker 29*455610afSAndroid Build Coastguard WorkerINCOMPATIBLE CHANGES WITH VERSION 2.1: 30*455610afSAndroid Build Coastguard Worker 31*455610afSAndroid Build Coastguard Worker- None 32*455610afSAndroid Build Coastguard Worker 33*455610afSAndroid Build Coastguard WorkerADDITIONAL INCOMPATIBLE CHANGES WITH VERSION 2.0: 34*455610afSAndroid Build Coastguard Worker 35*455610afSAndroid Build Coastguard Worker- The Nestable interface defines the method indexOfThrowable(Class). 36*455610afSAndroid Build Coastguard WorkerPreviously the implementations checked only for a specific Class. 37*455610afSAndroid Build Coastguard WorkerNow they check for subclasses of that Class as well. 38*455610afSAndroid Build Coastguard WorkerFor most situations this will be the expected behavior (i.e. it's a bug fix). 39*455610afSAndroid Build Coastguard WorkerIf it causes problems, please use the ExceptionUtils.indexOfThrowable(Class) method instead. 40*455610afSAndroid Build Coastguard WorkerNote that the ExceptionUtils method is available in v1.0 and v2.0 of commons-lang and has not been changed. 41*455610afSAndroid Build Coastguard Worker(An alternative to this is to change the public static matchSubclasses flag on NestableDelegate. 42*455610afSAndroid Build Coastguard WorkerHowever, we don't recommend that as a long-term solution.) 43*455610afSAndroid Build Coastguard Worker 44*455610afSAndroid Build Coastguard Worker- The StopWatch class has had much extra validation added. 45*455610afSAndroid Build Coastguard WorkerIf your code previously relied on unusual aspects, it may no longer work. 46*455610afSAndroid Build Coastguard Worker 47*455610afSAndroid Build Coastguard Worker- Starting with version 2.1, Ant version 1.6.x is required to build. Copy 48*455610afSAndroid Build Coastguard Workerjunit.jar to ANT_HOME/lib. You can get JUnit from https://www.junit.org. See the developer's guide 49*455610afSAndroid Build Coastguard Workerfor more details. 50*455610afSAndroid Build Coastguard Worker 51*455610afSAndroid Build Coastguard WorkerDEPRECATIONS FROM 2.1 to 2.2: 52*455610afSAndroid Build Coastguard Worker 53*455610afSAndroid Build Coastguard Worker- None 54*455610afSAndroid Build Coastguard Worker 55*455610afSAndroid Build Coastguard WorkerDEPRECATIONS FROM 2.0 to 2.1: 56*455610afSAndroid Build Coastguard Worker 57*455610afSAndroid Build Coastguard Worker- The enum package has been renamed to enums for JDK 1.5 compliance. 58*455610afSAndroid Build Coastguard WorkerAll functionality is identical, just the package has changed. 59*455610afSAndroid Build Coastguard WorkerThis package will be removed in v3.0. 60*455610afSAndroid Build Coastguard Worker 61*455610afSAndroid Build Coastguard Worker- NumberUtils.stringToInt - renamed to toInt 62*455610afSAndroid Build Coastguard Worker 63*455610afSAndroid Build Coastguard Worker- DateUtils - four constants, MILLIS_IN_* have been deprecated as they were defined 64*455610afSAndroid Build Coastguard Workeras int not long. The replacements are MILLIS_PER_*. 65*455610afSAndroid Build Coastguard Worker 66*455610afSAndroid Build Coastguard Worker 67*455610afSAndroid Build Coastguard WorkerBUG FIXES IN 2.2: 68*455610afSAndroid Build Coastguard Worker 69*455610afSAndroid Build Coastguard WorkerLANG-2 javadoc example for StringUtils.splitByWholeSeparator incorrect 70*455610afSAndroid Build Coastguard WorkerLANG-3 PADDING array in StringUtils overflows on '\uffff' 71*455610afSAndroid Build Coastguard WorkerLANG-10 [patch] ClassUtils.primitiveToWrapper and Void 72*455610afSAndroid Build Coastguard WorkerLANG-21 escapeXML() -> Not escaping low characters 73*455610afSAndroid Build Coastguard WorkerLANG-25 DurationFormatUtils.formatDurationISO() javadoc is missing T in duration string between date and time part 74*455610afSAndroid Build Coastguard WorkerLANG-37 unit test for org.apache.commons.lang.text.StrBuilder 75*455610afSAndroid Build Coastguard WorkerLANG-42 EqualsBuilder.append(Object[], Object[]) crashes with a NullPointerException if an element of the first array is null 76*455610afSAndroid Build Coastguard WorkerLANG-45 StrBuilderTest#testReplaceStringString fails. 77*455610afSAndroid Build Coastguard WorkerLANG-50 Replace Clover with Cobertura 78*455610afSAndroid Build Coastguard WorkerLANG-59 DateUtils.truncate method is buggy when dealing with DST switching hours 79*455610afSAndroid Build Coastguard WorkerLANG-100 RandomStringUtils.random() family of methods create invalid unicode sequences 80*455610afSAndroid Build Coastguard WorkerLANG-105 ExceptionUtils goes into infinite loop in getThrowables is throwable.getCause() == throwable 81*455610afSAndroid Build Coastguard WorkerLANG-106 StringUtils#getLevenshteinDistance() performance is suboptimal 82*455610afSAndroid Build Coastguard WorkerLANG-112 Wrong length check in StrTokenizer.StringMatcher 83*455610afSAndroid Build Coastguard WorkerLANG-117 FastDateFormat: wrong format for date "01.01.1000" 84*455610afSAndroid Build Coastguard WorkerLANG-122 EscapeUtil.escapeHtml() should clarify that it does not escape ' chars to ' 85*455610afSAndroid Build Coastguard WorkerLANG-123 Unclear javadoc for DateUtils.iterator() 86*455610afSAndroid Build Coastguard WorkerLANG-127 Minor tweak to fix of bug # 26616 87*455610afSAndroid Build Coastguard WorkerLANG-130 Memory "leak" in StringUtils 88*455610afSAndroid Build Coastguard WorkerLANG-140 DurationFormatUtils.formatPeriod() returns the wrong result 89*455610afSAndroid Build Coastguard WorkerLANG-141 Fraction.toProperString() returns -1/1 for -1 90*455610afSAndroid Build Coastguard WorkerLANG-148 Performance modifications on StringUtils.replace 91*455610afSAndroid Build Coastguard WorkerLANG-150 StringEscapeUtils.unescapeHtml skips first entity after standalone ampersand 92*455610afSAndroid Build Coastguard WorkerLANG-152 DurationFormatUtils.formatDurationWords "11 <unit>s" gets converted to "11 <unit>" 93*455610afSAndroid Build Coastguard WorkerLANG-259 ValuedEnum.compareTo(Object other) not typesafe - it easily could be... 94*455610afSAndroid Build Coastguard WorkerLANG-261 Error in an example in the javadoc of the StringUtils.splitPreserveAllTokens() method 95*455610afSAndroid Build Coastguard WorkerLANG-264 ToStringBuilder/HashCodeBuilder javadoc code examples 96*455610afSAndroid Build Coastguard WorkerLANG-271 LocaleUtils test fails under Mustang 97*455610afSAndroid Build Coastguard WorkerLANG-272 Minor build and checkstyle changes 98*455610afSAndroid Build Coastguard WorkerLANG-277 Javadoc errors on StringUtils.splitPreserveAllTokens(String, char) 99*455610afSAndroid Build Coastguard WorkerLANG-278 javadoc for StringUtils.removeEnd is incorrect 100*455610afSAndroid Build Coastguard Worker 101*455610afSAndroid Build Coastguard WorkerIMPROVEMENTS IN 2.2: 102*455610afSAndroid Build Coastguard Worker 103*455610afSAndroid Build Coastguard WorkerLANG-159 Add WordUtils.getInitials(String) 104*455610afSAndroid Build Coastguard WorkerLANG-161 Add methods and tests to StrBuilder 105*455610afSAndroid Build Coastguard WorkerLANG-162 replace() length calculation improvement 106*455610afSAndroid Build Coastguard WorkerLANG-165 parseDate with TimeZone 107*455610afSAndroid Build Coastguard WorkerLANG-166 New interpolation features 108*455610afSAndroid Build Coastguard WorkerLANG-169 Implementation of escape/unescapeHtml methods with Writer 109*455610afSAndroid Build Coastguard WorkerLANG-176 CompareToBuilder excludeFields for reflection method 110*455610afSAndroid Build Coastguard WorkerLANG-186 Request for MutableBoolean implementation 111*455610afSAndroid Build Coastguard WorkerLANG-194 add generic add method to DateUtils 112*455610afSAndroid Build Coastguard WorkerLANG-198 New method for EqualsBuilder 113*455610afSAndroid Build Coastguard WorkerLANG-212 New ExceptionUtils method setCause() 114*455610afSAndroid Build Coastguard WorkerLANG-216 Provides a Class.getPublicMethod which returns public invocable Method 115*455610afSAndroid Build Coastguard WorkerLANG-217 Add Mutable<Type> to<Type>() methods. 116*455610afSAndroid Build Coastguard WorkerLANG-220 Tokenizer Enhancements: reset input string, static CSV/TSV factories 117*455610afSAndroid Build Coastguard WorkerLANG-226 Using ReflectionToStringBuilder and excluding secure fields 118*455610afSAndroid Build Coastguard WorkerLANG-242 Trivial cleanup of javadoc in various files 119*455610afSAndroid Build Coastguard WorkerLANG-246 CompositeFormat 120*455610afSAndroid Build Coastguard WorkerLANG-250 Performance boost for RandomStringUtils 121*455610afSAndroid Build Coastguard WorkerLANG-254 Enhanced Class.forName version 122*455610afSAndroid Build Coastguard WorkerLANG-260 StringEscapeUtils should expose escape*() methods taking Writer argument 123*455610afSAndroid Build Coastguard WorkerLANG-263 Add StringUtils.containsIgnoreCase(...) 124*455610afSAndroid Build Coastguard WorkerLANG-267 Support char array converters on ArrayUtils 125*455610afSAndroid Build Coastguard WorkerLANG-270 minor javadoc improvements for StringUtils.stripXxx() methods 126*455610afSAndroid Build Coastguard Worker New ExceptionUtils methods getMessage/getRootCauseMessage 127*455610afSAndroid Build Coastguard Worker 128