blob: d85410d8044e6b9e9b9bbbe0c285a922cc7a56fd [file] [log] [blame]
$Id$
Commons Lang Package
Version 2.4
Release Notes
INTRODUCTION:
This document contains the release notes for the 2.4 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.
INCOMPATIBLE CHANGES WITH VERSION 2.3:
INCOMPATIBLE CHANGES WITH VERSION 2.2:
- Calling stop on a suspended StopWatch will no longer change the underlying time.
It's very unlikely anyone was relying on that bug as a feature.
ADDITIONAL INCOMPATIBLE CHANGES WITH VERSION 2.0:
- The Nestable interface defines the method indexOfThrowable(Class).
Previously the implementations checked only for a specific Class.
Now they check for subclasses of that Class as well.
For most situations this will be the expected behaviour (ie. its a bug fix).
If it causes problems, please use the ExceptionUtils.indexOfThrowable(Class) method instead.
Note that the ExceptionUtils method is available in v1.0 and v2.0 of commons-lang and has not been changed.
(An alternative to this is to change the public static matchSubclasses flag on NestableDelegate.
However, we don't recommend that as a long-term solution.)
- The StopWatch class has had much extra validation added.
If your code previously relied on unusual aspects, it may no longer work.
- Starting with version 2.1, Ant version 1.6.x is required to build. Copy
junit.jar to ANT_HOME/lib. You can get JUnit from http://www.junit.org. See the developer's guide
for more details.
DEPRECATIONS FROM 2.3 to 2.4:
- ObjectUtils.appendIdentityToString(StringBuffer, Object) - has very odd semantics, use
ObjectUtils.identityToString(StringBuffer, Object) instead.
DEPRECATIONS FROM 2.2 to 2.3:
- None
DEPRECATIONS FROM 2.1 to 2.2:
- None
DEPRECATIONS FROM 2.0 to 2.1:
- The enum package has been renamed to enums for JDK1.5 compilance.
All functionality is identical, just the package has changed.
This package will be removed in v3.0.
- NumberUtils.stringToInt - renamed to toInt
- DateUtils - four constants, MILLIS_IN_* have been deprecated as they were defined
as int not long. The replacements are MILLIS_PER_*.
BUG FIXES IN 2.4:
* [LANG-76 ] - [lang] EnumUtils.getEnum() doesn't work well in 1.5
* [LANG-328] - LocaleUtils.toLocale() rejects strings with only language+variant
* [LANG-334] - Enum is not thread-safe
* [LANG-346] - Dates.round() behaves incorrectly for minutes and seconds
* [LANG-349] - Deadlock using ReflectionToStringBuilder
* [LANG-353] - Javadoc Example for EqualsBuilder is questionable
* [LANG-360] - Why does appendIdentityToString return null?
* [LANG-361] - BooleanUtils toBooleanObject javadoc does not match implementation
* [LANG-363] - StringEscapeUtils..escapeJavaScript() method did not escape '/' into '\/', it will make IE render page uncorrectly
* [LANG-364] - Documentation bug for ignoreEmptyTokens accessors in StrTokenizer
* [LANG-365] - BooleanUtils.toBoolean() - invalid drop-thru in case statement causes StringIndexOutOfBoundsException
* [LANG-367] - FastDateFormat thread safety
* [LANG-368] - FastDateFormat getDateInstance() and getDateTimeInstance() assume Locale.getDefault() won't change
* [LANG-369] - ExceptionUtils not thread-safe
* [LANG-372] - ToStringBuilder: MULTI_LINE_STYLE does not print anything from appendToString methods.
IMPROVEMENTS IN 2.4:
* [LANG-269] - Shouldn't Commons Lang's StringUtils have a "common" string method?
* [LANG-321] - [patch] Add toArray() method to IntRange and LongRange classes
* [LANG-322] - ClassUtils.getShortClassName(String) inefficient
* [LANG-326] - StringUtils: startsWith / endsWith / startsWithIgnoreCase / endsWithIgnoreCase / removeStartIgnoreCase / removeEndIgnoreCase methods
* [LANG-329] - Pointless synchronized in ThreadLocal.initialValue should be removed
* [LANG-333] - ArrayUtils.toClass
* [LANG-337] - Utility class constructor javadocs should acknowledge that they may sometimes be used, e.g. with Velocity.
* [LANG-338] - truncateNicely method which avoids truncating in the middle of a word
* [LANG-345] - Optimize HashCodeBuilder.append(Object)
* [LANG-351] - Extension to ClassUtils: Obtain the primitive class from a wrapper
* [LANG-356] - Add getStartTime to StopWatch
* [LANG-362] - Add ExtendedMessageFormat to org.apache.commons.lang.text
* [LANG-366] - add MultiFormat
* [LANG-371] - ToStringStyle javadoc should show examples of styles
* [LANG-404] - Add Calendar flavour format methods to DateFormatUtils