Upgrade

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