Apache Commons logo Commons Lang

Apache Commons Lang Changes

Release History

Version Date Description
3.3.2 2014-04-09 Bugfix for a bug in NumberUtils introduced in 3.3.1
3.3.1 2014-03-18 Bugfix release for 3.3
3.3 2014-03-04 Bug fixes and and new features including: DifferenceBuilder, ClassPathUtils, RandomUtils and Jaro-Winkler String distance metric
3.2.1 2014-01-05 Bug fix for 3.2
3.2 2014-01-01 Bug fixes and new features, at least requires Java 6.0
3.1 2011-11-14 November release
3.0.1 2011-08-09 August release
3.0 2011-07-18 Backwards incompatible update of Commons Lang to Java 5
2.6 2011-01-16 Bug Fixes/Enhancements for the 2.6 release (requires minimum of Java 1.3)
2.5 2010-02-25
2.4 2008-03-18
2.3 2007-02-13
2.2 2006-10-04
2.1 2005-06-13
2.0 2003-09-02
1.0.1 2002-11-25 Quick bugfix to 1.0
1.0 2002-10-04 First release of Commons Lang

Release 3.3.2 - 2014-04-09

Type Changes By
fix NumberUtils#isNumber() returns false for "0.0", "0.4790", et al Fixes LANG-992. niallp
add Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8 Fixes LANG-989. ggregory

Release 3.3.1 - 2014-03-18

Type Changes By
fix DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns wrong days Fixes LANG-987. djones
fix DurationFormatUtils does not describe format string fully Fixes LANG-983. sebb
fix DurationFormatUtils#lexx does not detect unmatched quote char Fixes LANG-981. sebb
fix DurationFormatUtils does not handle large durations correctly Fixes LANG-984. sebb
fix DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms field size should be 4 digits Fixes LANG-982. sebb
fix Failing tests with Java 8 b128 Fixes LANG-978. sebb

Release 3.3 - 2014-03-04

Type Changes By
fix ReflectionToStringBuilder.toString does not debug 3rd party object fields within 3rd party object Fixes LANG-621. Thanks to Philip Hodges, Thomas Neidhart. kinow
add Add methods for removing all invalid characters according to XML 1.0 and XML 1.1 in an input string to StringEscapeUtils Fixes LANG-955. Thanks to Adam Hooper. britter
fix NumericEntityEscaper incorrectly encodes supplementary characters Fixes LANG-977. Thanks to Chris Karcher. britter
fix Make some private fields final Fixes LANG-973. sebb
fix NumberUtils#isNumber(String) fails to reject invalid Octal numbers Fixes LANG-971. sebb
fix NumberUtils#isNumber does not allow for hex 0XABCD Fixes LANG-972. sebb
fix StringUtils.toEncodedString(byte[], Charset) needlessly throws UnsupportedEncodingException Fixes LANG-969. Thanks to Matt Bishop. ggregory
add Add APIs MutableBoolean setTrue() and setFalse() Fixes LANG-970. ggregory
fix ConstantInitializerTest fails when building with IBM JDK 7 Fixes LANG-946. britter
add Add SerializationUtils.roundtrip(T extends Serializable) to serialize then deserialize Fixes LANG-962. ggregory
update org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field) does not clean up after itself Fixes LANG-961. ggregory
update FastDateParser javadoc incorrectly states that SimpleDateFormat is used internally Fixes LANG-958. chas
add There should be a DifferenceBuilder with a ReflectionDifferenceBuilder implementation Fixes LANG-637. djones
fix uncaught PatternSyntaxException in FastDateFormat on Android Fixes LANG-954. Thanks to Michael Keppler. sebb
update Improve JavaDoc of WordUtils.wrap methods Fixes LANG-956. britter
add Add the Jaro-Winkler string distance algorithm to StringUtils Fixes LANG-944. Thanks to Rekha Joshi. britter
fix StringUtils.getLevenshteinDistance with too big of a threshold returns wrong result Fixes LANG-936. Thanks to Yaniv Kunda, Eli Lindsey. bayard
fix Test DurationFormatUtilsTest.testEdgeDuration fails in JDK 1.6, 1.7 and 1.8, BRST time zone Fixes LANG-943. kinow
fix ConstructorUtils.getAccessibleConstructor() Does Not Check the Accessibility of Enclosing Classes Fixes LANG-613. mbenson
fix Fragments are wrong by 1 day when using fragment YEAR or MONTH Fixes LANG-951. Thanks to Sebastian Götz. britter
add New class ClassPathUtils with methods for turning FQN into resource path Fixes LANG-417. britter
update Move Documentation from user guide to package-info files Fixes LANG-939. britter
update Convert package.html files to package-info.java files Fixes LANG-953. britter
fix FastDateParser does not handle two digit year parsing like SimpleDateFormat Fixes LANG-950. chas
fix FastDateParserTest.testParses does not test FastDateParser Fixes LANG-949. chas
update Fix deprecation warnings Fixes LANG-940. britter
update EnumUtils.generateBitVector needs a "? extends" Fixes LANG-819. mbenson
add Validate: add inclusiveBetween and exclusiveBetween overloads for primitive types Fixes LANG-834. britter
add New RandomUtils class Fixes LANG-900. Thanks to Duncan Jones. britter
fix Wrong locale handling in LocaleUtils.toLocale() Fixes LANG-915. Thanks to Sergio Fernández. britter
add Add IBM OS/400 detection Fixes LANG-966. ggregory

Release 3.2.1 - 2014-01-05

Type Changes By
fix Fix missing Hamcrest dependency in Ant Build Fixes LANG-937. britter
fix Test failure in LocaleUtilsTest when building with JDK 8 Fixes LANG-941. britter
fix Test failure in FastDateParserTest and FastDateFormat_ParserTest when building with JDK8 Fixes LANG-942. Thanks to Bruno P. Kinoshita, Henri Yandell. britter
fix Build fails with test failures when building with JDK 8 Fixes LANG-938.

Release 3.2 - 2014-01-01

Type Changes By
add Add removeFinalModifier to FieldUtils Fixes LANG-934. mcucchiara
add Method returns number of inheritance hops between parent and subclass Fixes LANG-863. Thanks to Daneel S. Yaitskov. sebb
fix Spelling fixes Fixes LANG-932. Thanks to Ville Skyttä. sebb
update Misleading Javadoc comment in StrBuilderReader class Fixes LANG-931. Thanks to Christoph Schneegans. britter
fix OctalUnescaper tried to parse all of \279 Fixes LANG-929.
fix OctalUnescaper had bugs when parsing octals starting with a zero Fixes LANG-928.
fix EqualsBuilder returned true when comparing arrays, even when the elements are different Fixes LANG-905.
add Added isStarted, isSuspended and isStopped to StopWatch Fixes LANG-774. Thanks to Erhan Bagdemir.
fix Fixed exception when combining custom and choice format in ExtendedMessageFormat Fixes LANG-917. Thanks to Arne Burmeister.
add Added StringUtils.isBlank/isEmpty CharSequence... methods Fixes LANG-848. Thanks to Alexander Muthmann.
add Added ArrayUtils.reverse(array, from, to) methods Fixes LANG-926. ggregory
add StringUtils.toString(byte[], String) deprecated in favour of a new StringUtils.toString(byte[], CharSet) Fixes LANG-795. Thanks to Aaron Digulla.
fix RandomStringUtils.random javadoc was incorrectly promising letters and numbers would, as opposed to may, appear Fixes LANG-902. Thanks to Andrzej Winnicki.
fix BooleanUtils.xor(boolean...) produces wrong results Fixes LANG-921. britter
update StringUtils.normalizeSpace now handles non-breaking spaces (Unicode 00A0) Fixes LANG-910. Thanks to Timur Yarosh.
update Redundant check for zero in HashCodeBuilder ctor Fixes LANG-804. Thanks to Allon Mureinik. britter
add StrSubstitutor now supports default values for variables Fixes LANG-893. Thanks to Woonsan Ko. oheger
add Adding .gitignore to commons-lang Fixes LANG-913. Thanks to Allon Mureinik. britter
add Add ObjectUtils.toIdentityString methods that support StringBuilder, StrBuilder, and Appendable Fixes LANG-837.
fix BooleanUtils.toBoolean(String str) javadoc is not updated Fixes LANG-896. Thanks to Mark Bryan Yu.
fix LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese" of JDK7 Fixes LANG-879.
fix StrSubstitutor does not support StringBuilder or CharSequence Fixes LANG-836. Thanks to Arnaud Brunet.
fix Method createNumber from NumberUtils doesn't work for floating point numbers other than Float Fixes LANG-693. Thanks to Calvin Echols.
fix FastDateFormat does not use the locale specific cache correctly Fixes LANG-887.
update Simplify FastDateFormat; eliminate boxing Fixes LANG-884.
update LookupTranslator now works with implementations of CharSequence other than String Fixes LANG-882.
fix ClassUtils.getShortName(String) will now only do a reverse lookup for array types Fixes LANG-754.
add Added CharSetUtils.containsAny(String, String) Fixes LANG-886.
update Provide CharSequenceUtils.regionMatches with a proper green implementation instead of inefficiently converting to Strings Fixes LANG-846.
add Added escape/unescapeJson to StringEscapeUtils Fixes LANG-797.
add Added appendIfMissing and prependIfMissing methods to StringUtils Fixes LANG-875.
fix NumberUtils.createNumber() Javadoc says it does not work for octal numbers Fixes LANG-881.
fix Fixed URLs in javadoc to point to new oracle.com pages
add Add StringUtils.LF and StringUtils.CR values Fixes LANG-870.
add Add FieldUtils getAllFields() to return all the fields defined in the given class and super classes Fixes LANG-873.
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

Type Changes By
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

Type Changes By
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

Type Changes By
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

Type Changes By
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

Type Changes By
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

Type Changes By
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

Type Changes By
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

Type Changes By
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

Type Changes By
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

Type Changes By
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

Type Changes By
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.