$Id$

                        Commons Lang Package
                            Version 2.5
                           Release Notes


INTRODUCTION:

This document contains the release notes for the 2.5 version of Apache Commons Lang.
Commons Lang is a set of utility functions and reusable components that should be of use in any Java environment.


COMPATIBILITY WITH 2.4
======================
Lang 2.5 is binary compatible release with Lang 2.4, containing bug fixes and small enhancements.

Lang 2.5 requires a minimum of JDK 1.3.


IMPROVEMENTS IN 2.5
===================

    * [LANG-583] - ArrayUtils - add isNotEmpty() methods
    * [LANG-534] - ArrayUtils - add nullToEmpty() methods
    * [LANG-454] - CharRange - provide an iterator that lets you walk the chars in the range
    * [LANG-514] - CharRange - add more readable static builder methods
    * [        ] - ClassUtils - new isAssignable() methods with autoboxing
    * [LANG-535] - ClassUtils - add support to getShortClassName and getPackageName for arrays
    * [LANG-434] - DateUtils - add ceiling() method
    * [LANG-486] - DateUtils - add parseDateStrictly() method
    * [LANG-466] - EqualsBuilder - add reset() method
    * [LANG-461] - NumberUtils - add toByte() and toShort() methods
    * [LANG-522] - Mutable numbers - add string constructors
    * [        ] - MutableBoolean - add toBoolean(), isTrue() and isFalse() methods
    * [LANG-422] - StrBuilder - add appendSeparator() methods with an alternative default separator if the StrBuilder is currently empty
    * [LANG-555] - SystemUtils - add IS_OS_WINDOWS_7 constant
    * [LANG-554] - SystemUtils - add IS_JAVA_1_7 constant for JDK 1.7
    * [LANG-405] - StringUtils - add abbreviateMiddle() method
    * [LANG-569] - StringUtils - add indexOfIgnoreCase() and lastIndexOfIgnoreCase() methods
    * [LANG-471] - StringUtils - add isAllUpperCase() and isAllLowerCase() methods
    * [LANG-469] - StringUtils - add lastOrdinalIndexOf() method to complement the existing ordinalIndexOf() method
    * [LANG-438] - StringUtils - add repeat() method
    * [LANG-445] - StringUtils - add startsWithAny() method
    * [LANG-430] - StringUtils - add upperCase(String, Locale) and lowerCase(String, Locale) methods
    * [LANG-416] - New Reflection package containing ConstructorUtils, FieldUtils, MemberUtils and MethodUtils

BUG FIXES IN 2.5
================

    * [LANG-494] - CharSet - Synchronizing the COMMON Map so that getInstance doesn't miss a put from a subclass in another thread
    * [LANG-500] - ClassUtils - improving performance of getAllInterfaces
    * [LANG-587] - ClassUtils - toClass() throws NullPointerException on null array element
    * [LANG-530] - DateUtils - Fix parseDate() cannot parse ISO8601 dates produced by FastDateFormat
    * [LANG-440] - DateUtils - round() doesn't work correct for Calendar.AM_PM
    * [LANG-443] - DateUtils - improve tests
    * [LANG-204] - Entities - multithreaded initialization
    * [LANG-538] - FastDateFormat - call getTime() on a calendar to ensure timezone is in the right state
    * [LANG-547] - FastDateFormat - Remove unused field
    * [LANG-506] - Entities missing final modifiers; thread-safety issues
    * [LANG-584] - ExceptionUtils - use immutable lock target
    * [LANG-477] - ExtendedMessageFormat - OutOfMemory with a pattern containing single quotes
    * [LANG-511] - LocaleUtils - initialization of available locales can be deferred
    * [LANG-457] - NumberUtils - createNumber() thows a StringIndexOutOfBoundsException for "l"
    * [LANG-521] - NumberUtils - isNumber(String) and createNumber(String) both modified to support '2.'
    * [LANG-432] - StringUtils - improve handling of case-insensitive Strings
    * [LANG-552] - StringUtils - replaceEach() no longer NPEs when null appears in the last String[]
    * [LANG-460] - StringUtils - correct JavaDocs for startsWith() and startsWithIgnoreCase()
    * [LANG-421] - StringEscapeUtils - escapeJava() escapes '/' characters
    * [LANG-450] - StringEscapeUtils - change escapeJavaStyleString() to throw UnhandledException instead swallowing IOException
    * [LANG-419] - WordUtils - fix StringIndexOutOfBoundsException when lower is greater than the String length
    * [LANG-523] - StrBuilder - Performance improvement by doubling the size of the String in ensureCapacity
    * [LANG-575] - Compare, Equals and HashCode builders - use ArrayUtils to avoid creating a temporary List
    * [LANG-467] - EqualsBuilder - removing the special handling of BigDecimal (LANG-393) to use compareTo 
    * [LANG-574] - HashCodeBuilder - Performance improvement: check for isArray to short-circuit the 9 instanceof checks
    * [LANG-520] - HashCodeBuilder - Changing the hashCode() method to return toHashCode()
    * [LANG-459] - HashCodeBuilder - reflectionHashCode() can generate incorrect hashcodes
    * [LANG-586] - HashCodeBuilder and ToStringStyle - use of ThreadLocal causes memory leaks in container environments
    * [LANG-487] - ToStringBuilder - make default style thread-safe
    * [LANG-472] - RandomUtils - nextLong() always produces even numbers

