2.2 Release Notes Commons Documentation Team

These are the release notes and advice for upgrading Commons-Lang from version 2.1 to version 2.2. INTRODUCTION: This document contains the release notes for the 2.2 version of Apache Jakarta Commons Lang. Commons Lang is a set of utility functions and reusable components that should be of use in any Java environment. INCOMPATIBLE CHANGES WITH VERSION 2.1: - None DEPRECATIONS FROM 2.1 to 2.2: - None BUG FIXES IN 2.2: LANG-2 javadoc example for StringUtils.splitByWholeSeparator incorrect LANG-3 PADDING array in StringUtils overflows on '\uffff' LANG-10 [patch] ClassUtils.primitiveToWrapper and Void LANG-21 escapeXML() -> Not escaping low characters LANG-25 DurationFormatUtils.formatDurationISO() javadoc is missing T in duration string between date and time part LANG-37 unit test for org.apache.commons.lang.text.StrBuilder LANG-42 EqualsBuilder.append(Object[], Object[]) crashes with a NullPointerException if an element of the first array is null LANG-45 StrBuilderTest#testReplaceStringString fails. LANG-50 Replace Clover with Cobertura LANG-59 DateUtils.truncate method is buggy when dealing with DST switching hours LANG-100 RandomStringUtils.random() family of methods create invalid Unicode sequences LANG-105 ExceptionUtils goes into infinite loop in getThrowables is throwable.getCause() == throwable LANG-106 StringUtils#getLevenshteinDistance() performance is sub-optimal LANG-112 Wrong length check in StrTokenizer.StringMatcher LANG-117 FastDateFormat: wrong format for date "01.01.1000" LANG-122 EscapeUtil.escapeHtml() should clarify that it does not escape ' chars to ' LANG-123 Unclear javadoc for DateUtils.iterator() LANG-127 Minor tweak to fix of bug # 26616 LANG-130 Memory "leak" in StringUtils LANG-140 DurationFormatUtils.formatPeriod() returns the wrong result LANG-141 Fraction.toProperString() returns -1/1 for -1 LANG-148 Performance modifications on StringUtils.replace LANG-150 StringEscapeUtils.unescapeHtml skips first entity after standalone ampersand LANG-152 DurationFormatUtils.formatDurationWords "11 <units>" gets converted to "11 <unit>" LANG-259 ValuedEnum.compareTo(Object other) not typesafe - it easily could be... LANG-261 Error in an example in the javadoc of the StringUtils.splitPreserveAllTokens() method LANG-264 ToStringBuilder/HashCodeBuilder javadoc code examples LANG-271 LocaleUtils test fails under Mustang LANG-272 Minor build and checkstyle changes LANG-277 Javadoc errors on StringUtils.splitPreserveAllTokens(String, char) LANG-278 javadoc for StringUtils.removeEnd is incorrect IMPROVEMENTS IN 2.2: LANG-159 Add WordUtils.getInitials(String) LANG-161 Add methods and tests to StrBuilder LANG-162 replace() length calculation improvement LANG-165 parseDate with TimeZone LANG-166 New interpolation features LANG-169 Implementation of escape/unescapeHtml methods with Writer LANG-176 CompareToBuilder excludeFields for reflection method LANG-186 Request for MutableBoolean implementation LANG-194 add generic add method to DateUtils LANG-198 New method for EqualsBuilder LANG-212 New ExceptionUtils method setCause() LANG-216 Provides a Class.getPublicMethod which returns public invocable Method LANG-217 Add Mutable<Type> to<Type>() methods. LANG-220 Tokenizer Enhancements: reset input string, static CSV/TSV factories LANG-226 Using ReflectionToStringBuilder and excluding secure fields LANG-242 Trivial cleanup of javadoc in various files LANG-246 CompositeFormat LANG-250 Performance boost for RandomStringUtils LANG-254 Enhanced Class.forName version LANG-260 StringEscapeUtils should expose escape*() methods taking Writer argument LANG-263 Add StringUtils.containsIgnoreCase(...) LANG-267 Support char array converters on ArrayUtils LANG-270 minor javadoc improvements for StringUtils.stripXxx() methods New ExceptionUtils methods getMessage/getRootCauseMessage