Apache Commons logo Commons Lang

Lang 2.2 Release Notes

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