1<?xml version="1.0"?> 2<!-- 3Licensed to the Apache Software Foundation (ASF) under one or more 4contributor license agreements. See the NOTICE file distributed with 5this work for additional information regarding copyright ownership. 6The ASF licenses this file to You under the Apache License, Version 2.0 7(the "License"); you may not use this file except in compliance with 8the License. You may obtain a copy of the License at 9 10 http://www.apache.org/licenses/LICENSE-2.0 11 12Unless required by applicable law or agreed to in writing, software 13distributed under the License is distributed on an "AS IS" BASIS, 14WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15See the License for the specific language governing permissions and 16limitations under the License. 17--> 18<document> 19 <properties> 20 <title>2.2 Release Notes</title> 21 <author email="dev@commons.apache.org">Commons Documentation Team</author> 22 </properties> 23<body> 24 25<section name="Lang 2.2 Release Notes"> 26<p> 27These are the release notes and advice for upgrading Commons-Lang from 28version 2.1 to version 2.2. 29<source> 30INTRODUCTION: 31 32This document contains the release notes for the 2.2 version of Apache Jakarta Commons Lang. 33Commons Lang is a set of utility functions and reusable components that 34should be of use in any Java environment. 35 36INCOMPATIBLE CHANGES WITH VERSION 2.1: 37 38- None 39 40DEPRECATIONS FROM 2.1 to 2.2: 41 42- None 43 44BUG FIXES IN 2.2: 45 46<a href="https://issues.apache.org/jira/browse/LANG-2">LANG-2</a> javadoc example for StringUtils.splitByWholeSeparator incorrect 47<a href="https://issues.apache.org/jira/browse/LANG-3">LANG-3</a> PADDING array in StringUtils overflows on '\uffff' 48<a href="https://issues.apache.org/jira/browse/LANG-10">LANG-10</a> [patch] ClassUtils.primitiveToWrapper and Void 49<a href="https://issues.apache.org/jira/browse/LANG-21">LANG-21</a> escapeXML() -> Not escaping low characters 50<a href="https://issues.apache.org/jira/browse/LANG-25">LANG-25</a> DurationFormatUtils.formatDurationISO() javadoc is missing T in duration string between date and time part 51<a href="https://issues.apache.org/jira/browse/LANG-37">LANG-37</a> unit test for org.apache.commons.lang.text.StrBuilder 52<a href="https://issues.apache.org/jira/browse/LANG-42">LANG-42</a> EqualsBuilder.append(Object[], Object[]) crashes with a NullPointerException if an element of the first array is null 53<a href="https://issues.apache.org/jira/browse/LANG-45">LANG-45</a> StrBuilderTest#testReplaceStringString fails. 54<a href="https://issues.apache.org/jira/browse/LANG-50">LANG-50</a> Replace Clover with Cobertura 55<a href="https://issues.apache.org/jira/browse/LANG-59">LANG-59</a> DateUtils.truncate method is buggy when dealing with DST switching hours 56<a href="https://issues.apache.org/jira/browse/LANG-100">LANG-100</a> RandomStringUtils.random() family of methods create invalid Unicode sequences 57<a href="https://issues.apache.org/jira/browse/LANG-105">LANG-105</a> ExceptionUtils goes into infinite loop in getThrowables is throwable.getCause() == throwable 58<a href="https://issues.apache.org/jira/browse/LANG-106">LANG-106</a> StringUtils#getLevenshteinDistance() performance is sub-optimal 59<a href="https://issues.apache.org/jira/browse/LANG-112">LANG-112</a> Wrong length check in StrTokenizer.StringMatcher 60<a href="https://issues.apache.org/jira/browse/LANG-117">LANG-117</a> FastDateFormat: wrong format for date "01.01.1000" 61<a href="https://issues.apache.org/jira/browse/LANG-122">LANG-122</a> EscapeUtil.escapeHtml() should clarify that it does not escape ' chars to ' 62<a href="https://issues.apache.org/jira/browse/LANG-123">LANG-123</a> Unclear javadoc for DateUtils.iterator() 63<a href="https://issues.apache.org/jira/browse/LANG-127">LANG-127</a> Minor tweak to fix of bug # 26616 64<a href="https://issues.apache.org/jira/browse/LANG-130">LANG-130</a> Memory "leak" in StringUtils 65<a href="https://issues.apache.org/jira/browse/LANG-140">LANG-140</a> DurationFormatUtils.formatPeriod() returns the wrong result 66<a href="https://issues.apache.org/jira/browse/LANG-141">LANG-141</a> Fraction.toProperString() returns -1/1 for -1 67<a href="https://issues.apache.org/jira/browse/LANG-148">LANG-148</a> Performance modifications on StringUtils.replace 68<a href="https://issues.apache.org/jira/browse/LANG-150">LANG-150</a> StringEscapeUtils.unescapeHtml skips first entity after standalone ampersand 69<a href="https://issues.apache.org/jira/browse/LANG-152">LANG-152</a> DurationFormatUtils.formatDurationWords "11 <units>" gets converted to "11 <unit>" 70<a href="https://issues.apache.org/jira/browse/LANG-259">LANG-259</a> ValuedEnum.compareTo(Object other) not typesafe - it easily could be... 71<a href="https://issues.apache.org/jira/browse/LANG-261">LANG-261</a> Error in an example in the javadoc of the StringUtils.splitPreserveAllTokens() method 72<a href="https://issues.apache.org/jira/browse/LANG-264">LANG-264</a> ToStringBuilder/HashCodeBuilder javadoc code examples 73<a href="https://issues.apache.org/jira/browse/LANG-271">LANG-271</a> LocaleUtils test fails under Mustang 74<a href="https://issues.apache.org/jira/browse/LANG-272">LANG-272</a> Minor build and checkstyle changes 75<a href="https://issues.apache.org/jira/browse/LANG-277">LANG-277</a> Javadoc errors on StringUtils.splitPreserveAllTokens(String, char) 76<a href="https://issues.apache.org/jira/browse/LANG-278">LANG-278</a> javadoc for StringUtils.removeEnd is incorrect 77 78IMPROVEMENTS IN 2.2: 79 80<a href="https://issues.apache.org/jira/browse/LANG-159">LANG-159</a> Add WordUtils.getInitials(String) 81<a href="https://issues.apache.org/jira/browse/LANG-161">LANG-161</a> Add methods and tests to StrBuilder 82<a href="https://issues.apache.org/jira/browse/LANG-162">LANG-162</a> replace() length calculation improvement 83<a href="https://issues.apache.org/jira/browse/LANG-165">LANG-165</a> parseDate with TimeZone 84<a href="https://issues.apache.org/jira/browse/LANG-166">LANG-166</a> New interpolation features 85<a href="https://issues.apache.org/jira/browse/LANG-169">LANG-169</a> Implementation of escape/unescapeHtml methods with Writer 86<a href="https://issues.apache.org/jira/browse/LANG-176">LANG-176</a> CompareToBuilder excludeFields for reflection method 87<a href="https://issues.apache.org/jira/browse/LANG-186">LANG-186</a> Request for MutableBoolean implementation 88<a href="https://issues.apache.org/jira/browse/LANG-194">LANG-194</a> add generic add method to DateUtils 89<a href="https://issues.apache.org/jira/browse/LANG-198">LANG-198</a> New method for EqualsBuilder 90<a href="https://issues.apache.org/jira/browse/LANG-212">LANG-212</a> New ExceptionUtils method setCause() 91<a href="https://issues.apache.org/jira/browse/LANG-216">LANG-216</a> Provides a Class.getPublicMethod which returns public invocable Method 92<a href="https://issues.apache.org/jira/browse/LANG-217">LANG-217</a> Add Mutable<Type> to<Type>() methods. 93<a href="https://issues.apache.org/jira/browse/LANG-220">LANG-220</a> Tokenizer Enhancements: reset input string, static CSV/TSV factories 94<a href="https://issues.apache.org/jira/browse/LANG-226">LANG-226</a> Using ReflectionToStringBuilder and excluding secure fields 95<a href="https://issues.apache.org/jira/browse/LANG-242">LANG-242</a> Trivial cleanup of javadoc in various files 96<a href="https://issues.apache.org/jira/browse/LANG-246">LANG-246</a> CompositeFormat 97<a href="https://issues.apache.org/jira/browse/LANG-250">LANG-250</a> Performance boost for RandomStringUtils 98<a href="https://issues.apache.org/jira/browse/LANG-254">LANG-254</a> Enhanced Class.forName version 99<a href="https://issues.apache.org/jira/browse/LANG-260">LANG-260</a> StringEscapeUtils should expose escape*() methods taking Writer argument 100<a href="https://issues.apache.org/jira/browse/LANG-263">LANG-263</a> Add StringUtils.containsIgnoreCase(...) 101<a href="https://issues.apache.org/jira/browse/LANG-267">LANG-267</a> Support char array converters on ArrayUtils 102<a href="https://issues.apache.org/jira/browse/LANG-270">LANG-270</a> minor javadoc improvements for StringUtils.stripXxx() methods 103 New ExceptionUtils methods getMessage/getRootCauseMessage 104 105</source> 106</p> 107</section> 108 109</body> 110</document> 111