Commons Lang Changes

Release History

VersionDateDescription
3.2TBANext release
3.12011-11-14November release
3.0.12011-08-09August release
3.02011-07-18Backwards incompatible update of Commons Lang to Java 5
2.62011-01-16Bug Fixes/Enhancements for the 2.6 release (requires minimum of Java 1.3)
2.52010-02-25
2.42008-03-18
2.32007-02-13
2.22006-10-04
2.12005-06-13
2.02003-09-02
1.0.12002-11-25Quick bugfix to 1.0
1.02002-10-04First release of Commons Lang

Release 3.2 - TBA

TypeChangesBy

fix

LocaleUtils.toLocale does not parse strings starting with an underscore Fixes LANG-865.

add

StrBuilder should support StringBuilder as an input parameter Fixes LANG-835.

fix

StringEscapeUtils.escapeJava() and escapeEcmaScript() do not output the escaped surrogate pairs that are Java parsable Fixes LANG-858.

add

StringIndexOutOfBoundsException in CharSequenceTranslator Fixes LANG-857.

add

Code refactoring in NumberUtils Fixes LANG-856.

add

NumberUtils#createBigInteger does not allow for hex and octal numbers Fixes LANG-855.

add

NumberUtils#createNumber - does not allow for hex numbers to be larger than Long Fixes LANG-854.

add

StringUtils join APIs for primitives Fixes LANG-853.

fix

FastDateFormat and FastDatePrinter generates Date objects wastefully Fixes LANG-849.

fix

Spelling fixes Fixes LANG-845.

fix

Fix examples contained in javadoc of StringUtils.center methods Fixes LANG-844.

add

Add StringUtils API to call String.replaceAll in DOTALL a.k.a. single-line mode Fixes LANG-841.

update

ArrayUtils removeElements methods use unnecessary HashSet Fixes LANG-839.

update

ArrayUtils removeElements methods clone temporary index arrays unnecessarily Fixes LANG-838.

fix

FastDateParser does not handle unterminated quotes correctly Fixes LANG-832.

fix

FastDateParser does not handle white-space properly Fixes LANG-831.

fix

FastDateParser could use \Q \E to quote regexes Fixes LANG-830.

fix

FastDateParser does not handle non-Gregorian calendars properly Fixes LANG-828.

fix

FastDateParser does not handle non-ASCII digits correctly Fixes LANG-826.

add

Create StrBuilder APIs similar to String.format(String, Object...) Fixes LANG-825.

fix

NumberUtils#createNumber - bad behaviour for leading "--" Fixes LANG-822.

fix

FastDateFormat's "z" pattern does not respect timezone of Calendar instances passed to format() Fixes LANG-818.

fix

Add org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS_8 Fixes LANG-817.

fix

StringUtils.equalsIgnoreCase doesn't check string reference equality Fixes LANG-813.

fix

StringUtils.join() endIndex, bugged for loop Fixes LANG-810.

fix

RandomStringUtils throws confusing IAE when end <= start Fixes LANG-807.

fix

RandomStringUtils.random(count, 0, 0, false, false, universe, random) always throws java.lang.ArrayIndexOutOfBoundsException Fixes LANG-805.

fix

LocaleUtils - unnecessary recursive call in SyncAvoid class. Fixes LANG-802.

fix

Javadoc bug in DateUtils#ceiling for Calendar and Object versions. Fixes LANG-800.

update

DateUtils#parseDate uses default locale; add Locale support Fixes LANG-799.

update

Use generics in SerializationUtils Fixes LANG-798.

fix

SerializationUtils throws ClassNotFoundException when cloning primitive classes Fixes LANG-788.

fix

StringUtils equals() relies on undefined behavior Fixes LANG-786.

fix

Documentation bug: StringUtils.split Fixes LANG-783.

fix

jar contains velocity template of release notes Fixes LANG-777.

fix

TypeUtilsTest contains incorrect type assignability assertion Fixes LANG-776.

fix

TypeUtils.getTypeArguments() misses type arguments for partially-assigned classes Fixes LANG-775.

fix

ImmutablePair doc contains nonsense text Fixes LANG-773.

fix

ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage text Fixes LANG-772.

fix

EventListenerSupport.ProxyInvocationHandler no longer defines serialVersionUID Fixes LANG-765.

fix

StrBuilder is now serializable Fixes LANG-764.

fix

Fix Javadoc Ant warnings Fixes LANG-761.

fix

NumberUtils does not handle Long Hex numbers Fixes LANG-747.

fix

Javadoc bug in static inner class DateIterator Fixes LANG-743.

add

Add Triple class (ternary version of Pair) Fixes LANG-675.

add

FastDateFormat supports parse methods Fixes LANG-462.

Release 3.1 - 2011-11-14

TypeChangesBy

add

Add API StringUtils.toString(byte[] intput, String charsetName) Fixes LANG-760.

update

Add an example with whitespace in StringUtils.defaultIfEmpty Fixes LANG-758.

add

Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and isPrimitiveOrWrapper(Class<?>) Fixes LANG-756.

update

Fix createLong() so it behaves like createInteger() Fixes LANG-752.

update

Include the actual type in the Validate.isInstance and isAssignableFrom exception messages Fixes LANG-751.

fix

Incorrect Bundle-SymbolicName in Manifest Fixes LANG-749.

update

Deprecating chomp(String, String) Fixes LANG-748.

fix

NumberUtils does not handle upper-case hex: 0X and -0X Fixes LANG-746.

fix

StringUtils throws java.security.AccessControlException on Google App Engine Fixes LANG-744.

fix

Ant build has wrong component.name Fixes LANG-741.

update

CharUtils static final array CHAR_STRING is not needed to compute CHAR_STRING_ARRAY Fixes LANG-736.

fix

Document that the Mutable numbers don't work as expected with String.format Fixes LANG-698.

add

SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a Unix system Fixes LANG-695.

Release 3.0.1 - 2011-08-09

TypeChangesBy

fix

SerializationUtils.clone: Fallback to context classloader if class not found in current classloader. Fixes LANG-626.

fix

ToStringBuilderTest.testReflectionHierarchyArrayList fails with IBM JDK 6. Fixes LANG-727.

fix

StringEscapeUtils.escapeXml(input) wrong when input contains characters in Supplementary Planes. Fixes LANG-720.

fix

StringEscapeUtils.escapeEcmaScript from lang3 cuts off long unicode string. Fixes LANG-708.

update

Improve exception message when StringUtils.replaceEachRepeatedly detects recursion. Fixes LANG-686.

update

Specify source encoding for Ant build. Fixes LANG-717.

add

Complement ArrayUtils.addAll() variants with by-index and by-value removal methods. Fixes LANG-721.

add

Add Range<T> Range<T>.intersectionWith(Range<T>). Fixes LANG-726.

add

Add mode and median Comparable... methods to ObjectUtils. Fixes LANG-723.

add

Add BooleanUtils.and + or varargs methods. Fixes LANG-722.

add

EnumSet -> bit vector. Fixes LANG-730.

fix

The CHAR_ARRAY cache in CharUtils duplicates the cache in java.lang.Character. Fixes LANG-734.

update

Deprecate CharUtils.toCharacterObject(char) in favor of java.lang.Character.valueOf(char). Fixes LANG-735.

add

Missing method getRawMessage for ContextedException and ContextedRuntimeException. Fixes LANG-737.

fix

Use internal Java's Number caches instead creating new objects. Fixes LANG-738.

Release 3.0 - 2011-07-18

TypeChangesBy

fix

StringEscapeUtils.escapeXml(input) outputs wrong results when an input contains characters in Supplementary Planes. Fixes LANG-720.

update

build.xml Java 1.5+ updates. Fixes LANG-718.

fix

swapCase and *capitalize speedups. Fixes LANG-716.

fix

CharSetUtils.squeeze() speedup. Fixes LANG-715.

fix

StringUtils doc/comment spelling fixes. Fixes LANG-714.

update

Increase test coverage of FieldUtils read methods and tweak Javadoc. Fixes LANG-713.

fix

Add includeantruntime=false to javac targets to quell warnings in ant 1.8.1 and better (and modest performance gain). Fixes LANG-711.

fix

StringIndexOutOfBoundsException when calling unescapeHtml4(""). Fixes LANG-710.

fix

StringEscapeUtils.escapeEcmaScript from lang3 cuts off long Unicode string. Fixes LANG-708.

fix

StringUtils.join throws NPE when toString returns null for one of objects in collection. Fixes LANG-703.

add

Add FormattableUtils class. Fixes LANG-697.

add

Add ClassUtils.getSimpleName() methods.

add

Add hashCodeMulti varargs method. Fixes LANG-692.

remove

Removed DateUtils.UTC_TIME_ZONE. Fixes LANG-691.

update

Convert more of the StringUtils API to take CharSequence.

fix

EqualsBuilder synchronizes on HashCodeBuilder. Fixes LANG-685.

fix

StringUtils.isAlpha, isAlphanumeric and isNumeric now return false for "". Fixes LANG-428.

add

Add support for ConcurrentMap.putIfAbsent(). Fixes LANG-678.

add

Documented potential NPE if auto-boxing occurs for some BooleanUtils methods. Fixes LANG-676.

fix

DateUtils.isSameLocalTime compares using 12 hour clock and not 24 hour. Fixes LANG-677.

add

Extend exception handling in ConcurrentUtils to runtime exceptions. Fixes LANG-610.

fix

SystemUtils.getJavaVersionAsFloat throws StringIndexOutOfBoundsException on Android runtime/Dalvik VM. Fixes LANG-624.

remove

WordUtils.abbreviate() removed. Fixes LANG-673.

fix

Doc bug in DateUtils#ceiling. Fixes LANG-672.

fix

StringEscapeUtils.unescapeJava doesn't handle octal escapes and Unicode with extra u. Fixes LANG-646.

fix

org.apache.commons.lang3.math.Fraction does not reduce (Integer.MIN_VALUE, 2^k). Fixes LANG-662.

fix

org.apache.commons.lang3.math.Fraction does not always succeed in multiplyBy and divideBy. Fixes LANG-663.

update

Change ObjectUtils min() & max() functions to use varargs rather than just two parameters. Fixes LANG-668.

add

Add a Null-safe compare() method to ObjectUtils. Fixes LANG-667.

fix

NumberUtils.isNumber(String) is not right when the String is "1.1L". Fixes LANG-664.

fix

EntityArrays typo: {"\u2122", "&minus;"}, // minus sign, U+2212 ISOtech. Fixes LANG-659.

fix

Some Entitys like &Ouml; are not matched properly against its ISO8859-1 representation. Fixes LANG-658.

fix

Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 incorrect. Fixes LANG-656.

add

Add StringUtils.defaultIfBlank(). Fixes LANG-655.

add

Provide a very basic ConcurrentInitializer implementation. Fixes LANG-653.

add

Support lazy initialization using atomic variables. Fixes LANG-609.

add

Enhance StrSubstitutor to support nested ${var-${subvr}} expansion. Fixes LANG-482.

add

Provide documentation about the new concurrent package. Fixes LANG-644.

fix

Charset may not be threadsafe, because the HashSet is not synch. Fixes LANG-629.

fix

StringEscapeUtils.escapeXML() can't process UTF-16 supplementary characters. Fixes LANG-617.

add

StringUtils.endsWithAny method. Fixes LANG-614.

add

Add AnnotationUtils. Fixes LANG-651.

add

BooleanUtils.toBooleanObject to support single character input. Fixes LANG-649.

fix

FastDateFormat.format() outputs incorrect week of year because locale isn't respected. Fixes LANG-645.

fix

StrSubstitutor should also handle the default properties of a java.util.Properties class. Fixes LANG-596.

fix

Javadoc StringUtils.left() claims to throw on negative len, but doesn't. Fixes LANG-643.

add

Add normalizeSpace to StringUtils. Fixes LANG-640.

fix

NumberUtils createNumber throws a StringIndexOutOfBoundsException when argument containing "e" and "E" is passed in. Fixes LANG-638.

?

NOTE: The below were included in the Commons Lang 3.0-beta release.

update

Convert StringUtils API to take CharSequence.

update

Push down WordUtils to "text" sub-package.

add

Extend exception handling in ConcurrentUtils to runtime exceptions. Fixes LANG-610.

fix

Some StringUtils methods should take an int character instead of char to use String API features. Fixes LANG-608.

fix

EqualsBuilder causes StackOverflowException. Fixes LANG-606.

update

DefaultExceptionContext overwrites values in recursive situations. Fixes LANG-605.

fix

ContextedRuntimeException no longer an 'unchecked' exception. Fixes LANG-602.

add

Add Builder Interface / Update Builders to Implement It. Fixes LANG-601.

fix

Javadoc is incorrect for public static int lastIndexOf(String str, String searchStr). Fixes LANG-600.

update

ClassUtils.getClass(): Allow Dots as Inner Class Separators. Fixes LANG-599.

add

DateUtils equal & compare functions up to most significant field. Fixes LANG-594.

remove

Remove JDK 1.2/1.3 bug handling in StringUtils.indexOf(String, String, int). Fixes LANG-590.

add

Create a basic Pair<L, R> class. Fixes LANG-588.

fix

exception.DefaultExceptionContext.getFormattedExceptionMessage catches Throwable. Fixes LANG-585.

add

Provide an implementation of the ThreadFactory interface. Fixes LANG-582.

update

Add new Validate methods. Fixes LANG-579.

fix

ArrayUtils.add(T[] array, T element) can create unexpected ClassCastException. Fixes LANG-571.

update

Do the test cases really still require main() and suite() methods?. Fixes LANG-570.

fix

@SuppressWarnings("unchecked") is used too generally. Fixes LANG-568.

fix

Improve StrLookup API documentation. Fixes LANG-564.

update

Change Java package name. Fixes LANG-563.

update

Change Maven groupId. Fixes LANG-562.

add

New TimedSemaphore class. Fixes LANG-560.

add

Added validState validation method. Fixes LANG-559.

add

Added isAssignableFrom and isInstanceOf validation methods. Fixes LANG-559.

add

Add TypeUtils class to provide utility code for working with generic types. Fixes LANG-553.

update

Replace Range classes with generic version. Fixes LANG-551.

update

Use Iterable on API instead of Collection. Fixes LANG-548.

add

Add methods to Validate to check whether the index is valid for the array/list/string. Fixes LANG-546.

add

Add ability to create a Future for a constant. Fixes LANG-545.

update

Replace StringBuffer with StringBuilder. Fixes LANG-541.

update

Make NumericEntityEscaper immutable. Fixes LANG-540.

update

Compile commons.lang for CDC 1.1/Foundation 1.1. Fixes LANG-539.

add

Add ArrayUtils.toArray to create generic arrays. Fixes LANG-537.

add

Validate: support for validating blank strings. Fixes LANG-533.

add

Add a concurrent package. Fixes LANG-529.

update

Mutable classes should implement an appropriately typed Mutable interface. Fixes LANG-528.

update

Better EnumUtils. Fixes LANG-513.

update

StringEscapeUtils.unescapeJava should support \u+ notation. Fixes LANG-507.

update

Rewrite StringEscapeUtils. Fixes LANG-505.

update

bring ArrayUtils.isEmpty to the generics world. Fixes LANG-504.

add

Add support for background initialization. Fixes LANG-501.

add

Add support for the handling of ExecutionExceptions. Fixes LANG-499.

add

Add StringEscapeUtils.escapeText() methods. Fixes LANG-498.

add

Addition of ContextedException and ContextedRuntimeException. Fixes LANG-497.

add

A generic implementation of the Lazy initialization pattern. Fixes LANG-496.

remove

Remove code that does not hold enough value to remain. Fixes LANG-493.

remove

Remove code handled now by the JDK. Fixes LANG-492.

add

StrSubstitutor now supports substitution in variable names. Fixes LANG-482.

fix

Possible race-conditions in hashCode of the range classes. Fixes LANG-481.

fix

StringEscapeUtils.escapeHtml incorrectly converts Unicode characters above U+00FFFF into 2 characters. Fixes LANG-480.

update

Document where in SVN trunk is. Fixes LANG-479.

fix

StopWatch does not resist to system time changes. Fixes LANG-478.

fix

Fixes for thread safety. Fixes LANG-474.

update

Refactor Validate.java to eliminate code redundancy. Fixes LANG-458.

fix

Lower Ascii Characters don't get encoded by Entities.java. Fixes LANG-448.

add

StringUtils.emptyToNull. Fixes LANG-444.

fix

StringEscapeUtils.escapeHTML() does not escape chars (0x00-0x20). Fixes LANG-439.

remove

Remove @deprecateds. Fixes LANG-438.

add

Add ClassUtils.isAssignable() variants with autoboxing. Fixes LANG-435.

update

Improve Javadoc for StringUtils class. Fixes LANG-424.

fix

Javadoc incorrect for StringUtils.endsWithIgnoreCase. Fixes LANG-418.

update

Investigate for vararg usages. Fixes LANG-396.

fix

JDK 1.5 build/runtime failure on LANG-393 (EqualsBuilder). Fixes LANG-468.

add

LeftOf/RightOfNumber in Range convenience methods necessary. Fixes LANG-386.

fix

ExceptionUtils not thread-safe. Fixes LANG-369.

add

ObjectUtils.coalesce. Fixes LANG-358.

update

StrBuilder should implement CharSequence and Appendable. Fixes LANG-355.

fix

StringEscapeUtils.escapeHtml() escapes multibyte characters like Chinese, Japanese, etc. Fixes LANG-339.

update

Finally start using generics. Fixes LANG-336.

fix

StrBuilder does not implement clone(). Fixes LANG-302.

update

EnumUtils for JDK 5.0. Fixes LANG-290.

add

Wish : method unaccent. Fixes LANG-285.

add

MutableBigDecimal and MutableBigInteger. Fixes LANG-276.

fix

StringEscaper.escapeXml() escapes characters > 0x7f. Fixes LANG-66.

fix

Depend on JDK 1.5+. Fixes LANG-11.

Release 2.6 - 2011-01-16

TypeChangesBy

update

BooleanUtils: use same optimization in toBooleanObject(String) as in toBoolean(String). Fixes LANG-633.

update

ClassUtils: allow Dots as Inner Class Separators in getClass(). Fixes LANG-599.

add

DateUtils: equal and compare functions up to most significant field. Fixes LANG-594.

add

DateUtils: provide a Date to Calendar convenience method. Fixes LANG-632.

add

ObjectUtils: add clone methods to ObjectUtils. Fixes LANG-576.

add

ObjectUtils: add a Null-safe compare() method. Fixes LANG-667.

add

ObjectUtils: add notEqual() method. Fixes LANG-670.

add

StrBuilder: implement clone() method. Fixes LANG-302.

add

StringUtils: add a normalizeSpace() method. Fixes LANG-640.

add

StringUtils: add endsWithAny() method. Fixes LANG-614.

add

StringUtils: add defaultIfBlank() method. Fixes LANG-655.

add

StrSubstitutor: add a replace(String, Properties) variant. Fixes LANG-596.

add

StrSubstitutor: support substitution in variable names. Fixes LANG-482.

update

Use StrBuilder instead of StringBuffer to improve performance where sync. is not an issue. Fixes LANG-669.

fix

CharSet: make the underlying set synchronized. Fixes LANG-629.

fix

CompareToBuilder: fix passing along compareTransients to the reflectionCompare method. Fixes LANG-635.

fix

ExtendedMessageFormat doesn't override equals(Object). Fixes LANG-636.

fix

FastDateFormat: fix to properly include the locale when formatting a Date. Fixes LANG-645.

fix

NumberUtils: createNumber() throws a StringIndexOutOfBoundsException when argument containing "e" and "E" is passed in. Fixes LANG-638.

fix

StringUtils methods do not handle Unicode 2.0+ supplementary characters correctly. Fixes LANG-607.

fix

SystemUtils: getJavaVersionAsFloat throws StringIndexOutOfBoundsException on Android runtime/Dalvik VM. Fixes LANG-624.

fix

MemberUtils: getMatchingAccessibleMethod does not correctly handle inheritance and method overloading. Fixes BEANUTILS-381.

update

Javadoc is incorrect for lastIndexOf() method. Fixes LANG-600.

update

Javadoc for HashCodeBuilder.append(boolean) does not match implementation. Fixes LANG-628.

update

Javadoc StringUtils.left() claims to throw an exception on negative lenth, but doesn't. Fixes LANG-643.

update

Javadoc - document thread safety. Fixes LANG-370.

update

Test for StringUtils replaceChars() icelandic characters. Fixes LANG-623.

Release 2.5 - 2010-02-25

TypeChangesBy

add

ArrayUtils - add isNotEmpty() methods. Fixes LANG-583.

add

ArrayUtils - add nullToEmpty() methods. Fixes LANG-534.

add

CharRange - provide an iterator that lets you walk the chars in the range. Fixes LANG-454.

add

CharRange - add more readable static builder methods. Fixes LANG-514.

add

ClassUtils - new isAssignable() methods with autoboxing.

add

ClassUtils - add support to getShortClassName and getPackageName for arrays. Fixes LANG-535.

add

DateUtils - add ceiling() method. Fixes LANG-434.

add

DateUtils - add parseDateStrictly() method. Fixes LANG-486.

add

EqualsBuilder - add reset() method. Fixes LANG-466.

add

NumberUtils - add toByte() and toShort() methods. Fixes LANG-461.

add

Mutable numbers - add string constructors. Fixes LANG-522.

add

MutableBoolean - add toBoolean(), isTrue() and isFalse() methods.

add

StrBuilder - add appendSeparator() methods with an alternative default separator if the StrBuilder is currently empty. Fixes LANG-422.

add

SystemUtils - add IS_OS_WINDOWS_7 constant. Fixes LANG-555.

add

SystemUtils - add IS_JAVA_1_7 constant for JDK 1.7. Fixes LANG-554.

add

StringUtils - add abbreviateMiddle() method. Fixes LANG-405.

add

StringUtils - add indexOfIgnoreCase() and lastIndexOfIgnoreCase() methods. Fixes LANG-569.

add

StringUtils - add isAllUpperCase() and isAllLowerCase() methods. Fixes LANG-471.

add

StringUtils - add lastOrdinalIndexOf() method to complement the existing ordinalIndexOf() method. Fixes LANG-469.

add

StringUtils - add repeat() method. Fixes LANG-348.

add

StringUtils - add startsWithAny() method. Fixes LANG-445.

add

StringUtils - add upperCase(String, Locale) and lowerCase(String, Locale) methods. Fixes LANG-430.

add

New Reflection package containing ConstructorUtils, FieldUtils, MemberUtils and MethodUtils. Fixes LANG-416.

fix

ArrayUtils - addAll() does not handle mixed types very well. Fixes LANG-567.

fix

CharSet - Synchronizing the COMMON Map so that getInstance doesn't miss a put from a subclass in another thread. Fixes LANG-494.

fix

ClassUtils - improving performance of getAllInterfaces. Fixes LANG-500.

fix

ClassUtils - toClass() throws NullPointerException on null array element. Fixes LANG-587.

fix

DateUtils - Fix parseDate() cannot parse ISO8601 dates produced by FastDateFormat. Fixes LANG-530.

fix

DateUtils - round() doesn't work correct for Calendar.AM_PM. Fixes LANG-440.

fix

DateUtils - improve tests. Fixes LANG-443.

fix

Entities - multithreaded initialization. Fixes LANG-204.

fix

Entities - missing final modifiers; thread-safety issues. Fixes LANG-506.

fix

EnumUtils - getEnum() doesn't work well in 1.5+. Fixes LANG-76.

fix

ExceptionUtils - use immutable lock target. Fixes LANG-584.

fix

ExtendedMessageFormat - OutOfMemory with a pattern containing single quotes. Fixes LANG-477.

fix

FastDateFormat - call getTime() on a calendar to ensure timezone is in the right state. Fixes LANG-538.

fix

FastDateFormat - Remove unused field. Fixes LANG-547.

fix

LocaleUtils - Initialization of available locales in LocaleUtils can be deferred. Fixes LANG-511.

fix

NumberUtils - createNumber() thows a StringIndexOutOfBoundsException when only an "l" is passed in. Fixes LANG-457.

fix

NumberUtils - isNumber(String) and createNumber(String) both modified to support '2.'. Fixes LANG-521.

fix

StringUtils - improve handling of case-insensitive Strings. Fixes LANG-432.

fix

StringUtils - replaceEach() no longer NPEs when null appears in the last String[]. Fixes LANG-552.

fix

StringUtils - correct Javadoc for startsWith() and startsWithIgnoreCase(). Fixes LANG-460.

fix

StringEscapeUtils - escapeJava() escapes '/' characters. Fixes LANG-421.

fix

StringEscapeUtils - change escapeJavaStyleString() to throw UnhandledException instead swallowing IOException and returning null. Fixes LANG-450.

fix

WordUtils - fix StringIndexOutOfBoundsException when lower is greater than the String length. Fixes LANG-419.

fix

StrBuilder - Performance improvement by doubling the size of the String in ensureCapacity. Fixes LANG-523.

fix

Compare, Equals and HashCode builders - use ArrayUtils to avoid creating a temporary List. Fixes LANG-575.

fix

EqualsBuilder - removing the special handling of BigDecimal (LANG-393) to use compareTo instead of equals because it creates an inequality with HashCodeBuilder. Fixes LANG-467.

fix

HashCodeBuilder - Performance improvement: check for isArray to short-circuit the 9 instanceof checks. Fixes LANG-574.

fix

HashCodeBuilder - Changing the hashCode() method to return toHashCode(). Fixes LANG-520.

fix

HashCodeBuilder - reflectionHashCode() can generate incorrect hashcodes. Fixes LANG-459.

fix

HashCodeBuilder and ToStringStyle - use of ThreadLocal causes memory leaks in container environments. Fixes LANG-586.

fix

ToStringBuilder - make default style thread-safe. Fixes LANG-487.

fix

RandomUtils - nextLong() always produces even numbers. Fixes LANG-472.

fix

RandomUtils - RandomUtils tests are failing frequently. Fixes LANG-592.

Release 2.4 - 2008-03-18

TypeChangesBy

add

ClassUtils.getShortClassName(String) inefficient. Fixes LANG-322.

add

Shouldn't Commons Lang's StringUtils have a "common" string method?. Fixes LANG-269.

fix

FastDateFormat getDateInstance() and getDateTimeInstance() assume Locale.getDefault() won't change. Fixes LANG-368.

add

OSGi-ify Lang. Fixes LANG-402.

fix

StrBuilder appendFixedWidth does not handle nulls. Fixes LANG-412.

fix

infinite loop in Fraction.reduce when numerator == 0. Fixes LANG-380.

fix

FastDateFormat thread safety. Fixes LANG-367.

add

ClassUtils.getShortClassName and ClassUtils.getPackageName and class of array. Fixes LANG-298.

fix

LocaleUtils.toLocale() rejects strings with only language+variant. Fixes LANG-328.

fix

Enum is not thread-safe. Fixes LANG-334.

fix

BooleanUtils.toBoolean() - invalid drop-thru in case statement causes StringIndexOutOfBoundsException. Fixes LANG-365.

add

ArrayUtils.toClass. Fixes LANG-333.

fix

Why does appendIdentityToString return null?. Fixes LANG-360.

fix

NumberUtils.min(floatArray) returns wrong value if floatArray[0] happens to be Float.NaN. Fixes LANG-381.

fix

Dates.round() behaves incorrectly for minutes and seconds. Fixes LANG-346.

add

StringUtils.length(String) returns null-safe length. Fixes LANG-407.

add

adding a StringUtils.replace method that takes an array or List of replacement strings. Fixes LANG-180.

add

Adding functionality to DateUtils to allow direct setting of various fields. Fixes LANG-383.

add

Add escaping for CSV columns to StringEscapeUtils. Fixes LANG-374.

add

StringUtils: startsWith / endsWith / startsWithIgnoreCase / endsWithIgnoreCase / removeStartIgnoreCase / removeEndIgnoreCase methods. Fixes LANG-326.

add

Extension to ClassUtils: Obtain the primitive class from a wrapper. Fixes LANG-351.

fix

Javadoc bugs - cannot find object. Fixes LANG-399.

add

Optimize HashCodeBuilder.append(Object). Fixes LANG-345.

fix

http://commons.apache.org/lang/developerguide.html "Building" section is incorrect and incomplete. Fixes LANG-385.

fix

Ambiguous / confusing names in StringUtils replace* methods. Fixes LANG-410.

add

Add new splitByWholeSeparatorPreserveAllTokens() methods to StringUtils. Fixes LANG-257.

add

Add getStartTime to StopWatch. Fixes LANG-356.

add

Perhaps add containsAny() methods?. Fixes LANG-377.

fix

Javadoc Example for EqualsBuilder is questionable. Fixes LANG-353.

fix

EqualsBuilder don't compare BigDecimals correctly. Fixes LANG-393.

add

Split camel case strings. Fixes LANG-192.

add

Add Calendar flavour format methods to DateFormatUtils. Fixes LANG-404.

add

Calculating A date fragment in any time-unit. Fixes LANG-379.

add

Memory usage improvement for StringUtils#getLevenshteinDistance(). Fixes LANG-413.

add

Add ExtendedMessageFormat to org.apache.commons.lang.text. Fixes LANG-362.

fix

StringEscapeUtils.escapeJavaScript() method did not escape '/' into '\/', it will make IE render page uncorrectly. Fixes LANG-363.

add

Add toArray() method to IntRange and LongRange classes. Fixes LANG-321.

add

add SystemUtils.IS_OS_WINDOWS_VISTA field. Fixes LANG-375.

add

Pointless synchronized in ThreadLocal.initialValue should be removed. Fixes LANG-329.

add

ToStringStyle Javadoc should show examples of styles. Fixes LANG-371.

fix

Documentation bug for ignoreEmptyTokens accessors in StrTokenizer. Fixes LANG-364.

fix

BooleanUtils toBooleanObject Javadoc does not match implementation. Fixes LANG-361.

add

truncateNicely method which avoids truncating in the middle of a word. Fixes LANG-338.

Release 2.3 - 2007-02-13

TypeChangesBy

fix

Use of enum prevents a classloader from being garbage collected resuling in out of memory exceptions. Fixes LANG-262.

add

NumberUtils.max(byte[]) and NumberUtils.min(byte[]) are missing. Fixes LANG-289.

add

Null-safe comparison methods for finding most recent / least recent dates. Fixes LANG-291.

fix

StopWatch: suspend() acts as split(), if followed by stop(). Fixes LANG-315.

fix

StrBuilder.replaceAll and StrBuilder.deleteAll can throw ArrayIndexOutOfBoundsException. Fixes LANG-294.

fix

Bug in method appendFixedWidthPadRight of class StrBuilder causes an ArrayIndexOutOfBoundsException. Fixes LANG-299.

fix

ToStringBuilder throws StackOverflowError when an Object cycle exists. Fixes LANG-69.

add

Create more tests to test out the +=31 replacement code in DurationFormatUtils. Fixes LANG-282.

fix

StrBuilder contains usages of thisBuf.length when they should use size. Fixes LANG-295.

add

Enum Javadoc: 1) outline 5.0 native Enum migration 2) warn not to use the switch() , 3) point out approaches for persistence and gui. Fixes LANG-258.

fix

Wrong behavior of Entities.unescape. Fixes LANG-313.

fix

NumberUtils.createNumber throws NumberFormatException for one digit long. Fixes LANG-300.

fix

NullPointerException in isAvailableLocale(Locale). Fixes LANG-304.

fix

FastDateFormat.mRules is not transient or serializable. Fixes LANG-303.

add

StringUtils.join should allow you to pass a range for it (so it only joins a part of the array). Fixes LANG-268.

fix

Refactor Entities methods. Fixes LANG-102.

fix

Tests fail to pass when building with Maven 2. Fixes LANG-314.

fix

DurationFormatUtils returns wrong result. Fixes LANG-281.

fix

unescapeXml("&12345678;") should be "&12345678;". Fixes LANG-292.

add

Optimize StringEscapeUtils.unescapeXml(String). Fixes LANG-287.

add

BooleanUtils isNotTrue/isNotFalse. Fixes LANG-310.

add

Extra StrBuilder methods. Fixes LANG-306.

add

Add a pair of StringUtils.substringsBetween;String[] methods. Fixes LANG-275.

fix

HashCodeBuilder throws java.lang.StackOverflowError when an object contains a cycle. Fixes LANG-279.

add

Wish for StringUtils.join(Collection, *). Fixes LANG-266.

Release 2.2 - 2006-10-04

TypeChangesBy

fix

StrBuilderTest#testReplaceStringString fails. Fixes LANG-45.

fix

EqualsBuilder.append(Object[], Object[]) crashes with a NullPointerException if an element of the first array is null. Fixes LANG-42.

fix

Serialization - not backwards compatible. Fixes LANG-286.

fix

Replace Clover with Cobertura. Fixes LANG-50.

fix

ValuedEnum.compareTo(Object other) not typesafe - it easily could be... Fixes LANG-259.

fix

LocaleUtils test fails under Mustang. Fixes LANG-271.

fix

Javadoc example for StringUtils.splitByWholeSeparator incorrect. Fixes LANG-2.

fix

PADDING array in StringUtils overflows on '\uffff'. Fixes LANG-3.

fix

ClassUtils.primitiveToWrapper and Void. Fixes LANG-10.

fix

unit test for org.apache.commons.lang.text.StrBuilder. Fixes LANG-37.

fix

DateUtils.truncate method is buggy when dealing with DST switching hours. Fixes LANG-59.

fix

RandomStringUtils.random() family of methods create invalid Unicode sequences. Fixes LANG-100.

fix

StringUtils#getLevenshteinDistance() performance is sub-optimal. Fixes LANG-106.

fix

Wrong length check in StrTokenizer.StringMatcher. Fixes LANG-112.

fix

ExceptionUtils goes into infinite loop in getThrowables is throwable.getCause() == throwable. Fixes LANG-105.

fix

FastDateFormat: wrong format for date "01.01.1000". Fixes LANG-117.

fix

Unclear Javadoc for DateUtils.iterator(). Fixes LANG-123.

fix

Memory "leak" in StringUtils. Fixes LANG-130.

add

StringEscapeUtils should expose escape*() methods taking Writer argument. Fixes LANG-260.

fix

Fraction.toProperString() returns -1/1 for -1. Fixes LANG-141.

fix

DurationFormatUtils.formatDurationWords "11 <unit>s" gets converted to "11 <unit>". Fixes LANG-152.

fix

Performance modifications on StringUtils.replace. Fixes LANG-148.

fix

StringEscapeUtils.unescapeHtml skips first entity after standalone ampersand. Fixes LANG-150.

fix

DurationFormatUtils.formatPeriod() returns the wrong result. Fixes LANG-140.

add

Request for MutableBoolean implementation. Fixes LANG-186.

add

New method for EqualsBuilder. Fixes LANG-198.

add

New ExceptionUtils method setCause(). Fixes LANG-212.

add

Add Mutable<Type> to<Type>() methods. Fixes LANG-217.

add

Provides a Class.getPublicMethod which returns public invocable Method. Fixes LANG-216.

add

Using ReflectionToStringBuilder and excluding secure fields. Fixes LANG-226.

add

add generic add method to DateUtils. Fixes LANG-194.

add

Tokenizer Enhancements: reset input string, static CSV/TSV factories. Fixes LANG-220.

add

Trivial cleanup of Javadoc in various files. Fixes LANG-242.

add

CompositeFormat. Fixes LANG-246.

add

Performance boost for RandomStringUtils. Fixes LANG-250.

add

Enhanced Class.forName version. Fixes LANG-254.

add

Add StringUtils.containsIgnoreCase(...). Fixes LANG-263.

add

Support char array converters on ArrayUtils. Fixes LANG-267.

fix

DurationFormatUtils.formatDurationISO() Javadoc is missing T in duration string between date and time part. Fixes LANG-25.

fix

Minor build and checkstyle changes. Fixes LANG-272.

fix

Javadoc errors on StringUtils.splitPreserveAllTokens(String, char). Fixes LANG-277.

fix

EscapeUtil.escapeHtml() should clarify that it does not escape ' chars to &apos;. Fixes LANG-122.

add

Add methods and tests to StrBuilder. Fixes LANG-161.

add

replace() length calculation improvement. Fixes LANG-162.

add

New interpolation features. Fixes LANG-166.

add

Implementation of escape/unescapeHtml methods with Writer. Fixes LANG-169.

add

CompareToBuilder excludeFields for reflection method. Fixes LANG-176.

add

Add WordUtils.getInitials(String). Fixes LANG-159.

fix

Error in an example in the Javadoc of the StringUtils.splitPreserveAllTokens() method. Fixes LANG-261.

fix

ToStringBuilder/HashCodeBuilder Javadoc code examples. Fixes LANG-264.

fix

Cannot build tests from latest SVN. Fixes LANG-265.

add

minor Javadoc improvements for StringUtils.stripXxx() methods. Fixes LANG-270.

fix

Javadoc for StringUtils.removeEnd is incorrect. Fixes LANG-278.

fix

Minor tweak to fix of bug # 26616. Fixes LANG-127.

Release 2.1 - 2005-06-13

TypeChangesBy

fix

make optional parameters in FastDateFormat really optional. Fixes LANG-103.

fix

Nestable.indexOfThrowable(Class) uses Class.equals() to match. Fixes LANG-149.

fix

buffer under/overrun on Strings.strip, stripStart & stripEnd. Fixes LANG-30.

fix

ToStringStyle.setArrayEnd(String) doesn't replace null with empty string. Fixes LANG-19.

fix

New class proposal: CharacterEncoding. Fixes LANG-80.

fix

SystemUtils fails init on HP-UX. Fixes LANG-43.

fix

Javadoc - 'four basic XML entities' should be 5 (apos is missing). Fixes LANG-134.

fix

o.a.c.lang.enum.ValuedEnum: 'enum'is a keyword in JDK1.5.0. Fixes LANG-156.

fix

StringEscapeUtils.unescapeHtml() doesn't handle an empty entity. Fixes LANG-131.

fix

EqualsBuilder.append(Object[], Object[]) incorrectly checks that rhs[i] is instance of lhs[i]'s class. Fixes LANG-6.

fix

Method enums.Enum.equals(Object o) doesn't work correctly. Fixes LANG-33.

fix

ExceptionUtils.addCauseMethodName(String) does not check for duplicates. Fixes LANG-31.

fix

Make StopWatch validate state transitions. Fixes LANG-136.

fix

enum package is not compatible with 1.5 jdk. Fixes LANG-124.

fix

WordUtils capitalizeFully() throws a null pointer exception. Fixes LANG-128.

fix

ValuedEnum. Fixes LANG-138.

fix

parseDate class from HttpClient's DateParser class. Fixes LANG-133.

fix

ArrayUtils.isEquals() throws ClassCastException when array1 and array2 are different dimension. Fixes LANG-62.

fix

ClassCastException in Enum.equals(Object). Fixes LANG-57.

fix

FastDateFormat year bug. Fixes LANG-107.

fix

unbalanced ReflectionToStringBuilder. Fixes LANG-77.

fix

FastDateFormat.getDateInstance(int, Locale) always uses the pattern from the first invocation. Fixes LANG-86.

fix

ReflectionToStringBuilder.toString(null) throws exception by design. Fixes LANG-79.

fix

Make ClassUtils methods null-safe and not throw an IAE. Fixes LANG-126.

fix

StringUtils.split ignores empty items. Fixes LANG-5.

fix

EqualsBuilder.append(Object[], Object[]) throws NPE. Fixes LANG-144.

fix

ArrayUtils.addAll doesn't always return new array. Fixes LANG-74.

fix

Enum.equals does not handle different class loaders. Fixes LANG-81.

fix

Add SystemUtils.AWT_TOOLKIT and others. Fixes LANG-27.

fix

Throwable cause for NotImplementedException. Fixes LANG-14.

fix

ClassUtils.primitivesToWrappers method. Fixes LANG-28.

fix

public static boolean DateUtils.equals(Date dt1, Date dt2) ?. Fixes LANG-120.

fix

Documentation error in StringUtils.replace. Fixes LANG-7.

fix

DateUtils constants should be long. Fixes LANG-125.

fix

DateUtils.truncate() is off by one hour when using a date in DST switch 'zone'. Fixes LANG-13.

fix

StringEscapeUtils.unescapeHtml() doesn't handle hex entities. Fixes LANG-118.

fix

new StringUtils.replaceChars behaves differently from old CharSetUtils.translate. Fixes LANG-99.

fix

last substring returned by StringUtils.split( String, String, int ) is too long. Fixes LANG-41.

fix

Can't subclass EqualsBuilder because isEquals is private. Fixes LANG-119.

fix

new StringUtils.split methods that split on the whole separator string. Fixes LANG-158.

add

New method for converting a primitive Class to its corresponding wrapper Class. Fixes LANG-172.

add

Add convenience format(long) methods to FastDateFormat. Fixes LANG-222.

fix

Enum's outer class may not be loaded for EnumUtils. Fixes LANG-116.

add

WordUtils.capitalizeFully(String str) should take a delimiter. Fixes LANG-219.

add

Make Javadoc crosslinking configurable. Fixes LANG-183.

fix

Minor Javadoc fixes for StringUtils.contains(String, String). Fixes LANG-82.

fix

Error in Javadoc for StringUtils.chomp(String, String). Fixes LANG-32.

fix

StringUtils.defaultString: Documentation error. Fixes LANG-95.

add

Add hashCode-support to class ObjectUtils. Fixes LANG-233.

add

add another "known method" to ExceptionUtils. Fixes LANG-202.

add

Enhancement of ExceptionUtils.CAUSE_METHOD_NAMES. Fixes LANG-235.

fix

DateUtils.truncate oddity at the far end of the Date spectrum. Fixes LANG-24.

add

add getLength() method to ArrayUtils. Fixes LANG-232.

add

Validate.java: fixes comment skew, removes unused loop counter. Fixes LANG-171.

add

StringUtils.isAsciiPrintable(). Fixes LANG-179.

add

ExceptionUtils: new getCause() methodname (for tomcat-exception). Fixes LANG-167.

fix

fixes 75 typos. Fixes LANG-85.

add

mutable numbers. Fixes LANG-230.

add

Javadoc fixes for ClassUtils. Fixes LANG-191.

add

Add StringUtils.nIndexOf?. Fixes LANG-184.

fix

Javadoc fixes for CharSetUtils. Fixes LANG-135.

fix

Remove redundant check for null separator in StringUtils#join. Fixes LANG-154.

add

Class and Package Comparators for ClassUtils. Fixes LANG-247.

add

add remove methods to ArrayUtils. Fixes LANG-256.

add

WordUtils capitalize improvement. Fixes LANG-185.

add

add isEmpty method to ArrayUtils. Fixes LANG-173.

add

lang.math.Fraction class deficiencies. Fixes LANG-168.

add

Add methods to ArrayUtils: add at end and insert-like ops. Fixes LANG-207.

add

Add SystemUtils methods for directory properties. Fixes LANG-239.

add

Add method that validates Collection elements are a certain type. Fixes LANG-189.

add

elapsed time formatting utility method. Fixes LANG-224.

Release 2.0 - 2003-09-02

TypeChangesBy

fix

Infinite loop in ToStringBuilder.reflectionToString for inner classes. Fixes LANG-20.

fix

NumberUtils.createBigDecimal("") NPE in Sun 1.3.1_08. Fixes LANG-75.

fix

Rationalize StringUtils slice functions. Fixes LANG-38.

fix

SystemUtils.IS_OS_OS2 Javadoc is wrong. Fixes LANG-53.

fix

A small, but important Javadoc fix for Fraction proper whole and numerator. Fixes LANG-142.

fix

Adding tolerance to double[] search methods in ArrayUtils. Fixes LANG-70.

fix

lang.builder classes Javadoc edits (mostly typo fixes). Fixes LANG-9.

fix

StringUtils Javadoc and test enhancements. Fixes LANG-63.

fix

SystemUtils.IS_OS_*, IS_JAVA_* are always false. Fixes LANG-132.

fix

Improve util.Validate tests. Fixes LANG-143.

fix

maven-beta10 checkstyle problem. Fixes LANG-155.

fix

StringUtils.chopNewLine - StringIndexOutOfBoundsException. Fixes LANG-147.

fix

ToStringBuilder doesn't work well in subclasses. Fixes LANG-73.

fix

static option for reversing the stacktrace. Fixes LANG-48.

fix

NullPointerException in CompareToBuilder. Fixes LANG-87.

fix

RandomStringUtils.randomAlpha methods omit 'z'. Fixes LANG-84.

fix

test.time fails in Japanese (non-us) locale. Fixes LANG-129.

fix

NumberUtils.isNumber allows illegal trailing characters. Fixes LANG-94.

fix

Improve Javadoc and overflow behavior of Fraction. Fixes LANG-137.

fix

RandomStringUtils infloops with length > 1. Fixes LANG-55.

fix

test.lang fails if compiled with non iso-8859-1 locales. Fixes LANG-47.

fix

SystemUtils does not play nice in an Applet. Fixes LANG-113.

fix

time unit tests fail on Sundays. Fixes LANG-111.

fix

java.lang.ExceptionInInitializerError thrown by JVMRandom constructor. Fixes LANG-90.

fix

StringUtils.chomp does not match Perl. Fixes LANG-78.

fix

patch and test case fixing problem with RandomStringUtils.random(). Fixes LANG-36.

fix

General case: infinite loop: ToStringBuilder.reflectionToString. Fixes LANG-151.

fix

Should ToStringBuilder.reflectionToString handle arrays?. Fixes LANG-35.

fix

EnumUtils nit: The import java.io.Serializable is never used. Fixes LANG-83.

fix

Example in Javadoc for ToStringBuilder wrong for append. Fixes LANG-12.

fix

Added class hierarchy support to HashCodeBuilder.reflectionHashCode(). Fixes LANG-110.

fix

ExceptionUtils new methods. Fixes LANG-71.

fix

Infinite loop in StringUtils.replace(text, repl, with) + FIX. Fixes LANG-15.

fix

StackOverflow due to ToStringBuilder. Fixes LANG-93.

fix

No Javadoc for NestableDelegate. Fixes LANG-39.

fix

Specify initial size for Enum's HashMap. Fixes LANG-49.

fix

Enum does not support inner sub-classes. Fixes LANG-146.

fix

Removed compile warning in ObjectUtils. Fixes LANG-157.

fix

SystemUtils.IS_JAVA_1_5 Javadoc is wrong. Fixes LANG-96.

fix

NumberRange inaccurate for Long, etc. Fixes LANG-16.

fix

Hierarchy support in ToStringBuilder.reflectionToString(). Fixes LANG-4.

fix

StringUtils.countMatches loops forever if substring empty. Fixes LANG-56.

add

Javadoc fixes (remove @links to non-public identifiers). Fixes LANG-209.

add

Add Javadoc examples and tests for StringUtils. Fixes LANG-210.

add

Make NumberUtils null handling consistent. Fixes LANG-170.

fix

Unused field 'startFinal' in DateIterator. Fixes LANG-145.

add

reduce object creation in ToStringBuilder. Fixes LANG-214.

add

Improved tests, Javadoc for CharSetUtils, StringEscapeUtils. Fixes LANG-228.

add

NumberUtils min/max, BooleanUtils.xor, and ArrayUtils toPrimitive and toObject. Fixes LANG-252.

add

Javadoc, tests improvements for CharSet, CharSetUtils. Fixes LANG-208.

add

StringUtil enhancement. Fixes LANG-205.

add

Javadoc nit. Fixes LANG-164.

add

Additional Lang Method Suggestions. Fixes LANG-206.

add

Make NestableDelegate methods public instead of package private. Fixes LANG-178.

add

Missing @since tags. Fixes LANG-174.

add

Refactored reflection feature of ToStringBuilder into new ReflectionToStringBuilder. Fixes LANG-245.

fix

Typo in documentation. Fixes LANG-51.

fix

Patch for Javadoc. Fixes LANG-1.

add

Add join(..., char c) to StringUtils (and some performance fixes). Even contains tests!. Fixes LANG-244.

add

Resurrect the WordWrapUtils from commons-sandbox/utils. Fixes LANG-231.

fix

EnumTest fails on Linux Sun JDK 1.3.0. Fixes LANG-139.

add

What to do with FastDateFormat unused private constructors. Fixes LANG-234.

add

Added class hierarchy support to CompareToBuilder.reflectionCompare(). Fixes LANG-240.

add

Removed compile warning in FastDateFormat. Fixes LANG-190.

fix

typo in the Javadoc example code. Fixes LANG-97.

add

MethodUtils: Removed unused code/unused local vars. Fixes LANG-249.

add

Hierarchy support in EqualsBuilder.reflectionEquals(). Fixes LANG-237.

fix

Javadoc Errata. Fixes LANG-91.

add

ArrayUtils.contains(). Fixes LANG-215.

add

More flexibility for getRootCause in ExceptionUtils. Fixes LANG-221.

Release 1.0.1 - 2002-11-25

TypeChangesBy

fix

NumberRange.getMaximum returns minimum.

fix

Enum constructor validations.

fix

NestableException/Delegate is not serializable.

fix

split using null and max less than actual token count adds "null".

add

ExceptionUtils cannot handle J2EE-Exception in a default way.

Release 1.0 - 2002-10-04

No changes in this release.