<?xml version="1.0"?>
<!--
     Licensed to the Apache Software Foundation (ASF) under one or more
     contributor license agreements.  See the NOTICE file distributed with
     this work for additional information regarding copyright ownership.
     The ASF licenses this file to You under the Apache License, Version 2.0
     (the "License"); you may not use this file except in compliance with
     the License.  You may obtain a copy of the License at
    
          http://www.apache.org/licenses/LICENSE-2.0
    
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
<document>
  <properties>
    <title>Commons Lang Changes</title>
  </properties>
  <body>
  <release version="2.7" date="TBA" description="TBA (requires minimum of Java 1.3)">
    <action issue="LANG-807" type="fix">RandomStringUtils throws confusing IAE when end &lt;= start</action>
    <action issue="LANG-805" type="fix">RandomStringUtils.random(count, 0, 0, false, false, universe, random) always throws java.lang.ArrayIndexOutOfBoundsException</action>
    <action issue="LANG-803" type="fix">LocaleUtils - DCL idiom is not thread-safe.</action>
    <action issue="LANG-677" type="fix">DateUtils isSameLocalTime() compares the hour using 12hour Calendar.HOUR instead of 24hour Calendar.HOUR_OF_DAY</action>
  </release>

  <release version="2.6" date="2011-01-16" description="Bug Fixes/Enhancements for the 2.6 release (requires minimum of Java 1.3)">
    <action type="update" issue="LANG-633">BooleanUtils: use same optimization in toBooleanObject(String) as in toBoolean(String)</action>
    <action type="update" issue="LANG-599">ClassUtils: allow Dots as Inner Class Separators in getClass()</action>
    <action type="add" issue="LANG-594">DateUtils: equal and compare functions up to most significant field</action>
    <action type="add" issue="LANG-632">DateUtils: provide a Date to Calendar convenience method</action>
    <action type="add" issue="LANG-576">ObjectUtils: add clone methods to ObjectUtils</action>
    <action type="add" issue="LANG-667">ObjectUtils: add a Null-safe compare() method</action>
    <action type="add" issue="LANG-670">ObjectUtils: add notEqual() method</action>
    <action type="add" issue="LANG-302">StrBuilder: implement clone() method</action>
    <action type="add" issue="LANG-640">StringUtils: add a normalizeSpace() method</action>
    <action type="add" issue="LANG-614">StringUtils: add endsWithAny() method</action>
    <action type="add" issue="LANG-655">StringUtils: add defaultIfBlank() method</action>
    <action type="add" issue="LANG-596">StrSubstitutor: add a replace(String, Properties) variant</action>
    <action type="add" issue="LANG-482">StrSubstitutor: support substitution in variable names</action>
    <action type="update" issue="LANG-669">Use StrBuilder instead of StringBuffer to improve performance where sync. is not an issue</action>
    <action type="fix" issue="LANG-629">CharSet: make the underlying set synchronized</action>
    <action type="fix" issue="LANG-635">CompareToBuilder: fix passing along compareTransients to the reflectionCompare method</action>
    <action type="fix" issue="LANG-636">ExtendedMessageFormat doesn't override equals(Object)</action>
    <action type="fix" issue="LANG-645">FastDateFormat: fix to properly include the locale when formatting a Date</action>
    <action type="fix" issue="LANG-638">NumberUtils: createNumber() throws a StringIndexOutOfBoundsException when argument containing "e" and "E" is passed in</action>
    <action type="fix" issue="LANG-607">StringUtils methods do not handle Unicode 2.0+ supplementary characters correctly</action>
    <action type="fix" issue="LANG-624">SystemUtils: getJavaVersionAsFloat throws StringIndexOutOfBoundsException on Android runtime/Dalvik VM</action>
    <action type="fix" issue="BEANUTILS-381">MemberUtils: getMatchingAccessibleMethod does not correctly handle inheritance and method overloading</action>
    <action type="update" issue="LANG-600">Javadoc is incorrect for lastIndexOf() method</action>
    <action type="update" issue="LANG-628">Javadoc for HashCodeBuilder.append(boolean) does not match implementation</action>
    <action type="update" issue="LANG-643">Javadoc StringUtils.left() claims to throw an exception on negative lenth, but doesn't</action>
    <action type="update" issue="LANG-370">Javadoc - document thread safety</action>
    <action type="update" issue="LANG-623">Test for StringUtils replaceChars() icelandic characters</action>
  </release>

  <release version="2.5" date="2010-02-25" description="">
    <action type="add" issue="LANG-583">ArrayUtils - add isNotEmpty() methods</action>
    <action type="add" issue="LANG-534">ArrayUtils - add nullToEmpty() methods</action>
    <action type="add" issue="LANG-454">CharRange - provide an iterator that lets you walk the chars in the range</action>
    <action type="add" issue="LANG-514">CharRange - add more readable static builder methods</action>
    <action type="add">ClassUtils - new isAssignable() methods with autoboxing</action>
    <action type="add" issue="LANG-535">ClassUtils - add support to getShortClassName and getPackageName for arrays</action>
    <action type="add" issue="LANG-434">DateUtils - add ceiling() method</action>
    <action type="add" issue="LANG-486">DateUtils - add parseDateStrictly() method</action>
    <action type="add" issue="LANG-466">EqualsBuilder - add reset() method</action>
    <action type="add" issue="LANG-461">NumberUtils - add toByte() and toShort() methods</action>
    <action type="add" issue="LANG-522">Mutable numbers - add string constructors</action>
    <action type="add">MutableBoolean - add toBoolean(), isTrue() and isFalse() methods</action>
    <action type="add" issue="LANG-422">StrBuilder - add appendSeparator() methods with an alternative default separator if the StrBuilder is currently empty</action>
    <action type="add" issue="LANG-555">SystemUtils - add IS_OS_WINDOWS_7 constant</action>
    <action type="add" issue="LANG-554">SystemUtils - add IS_JAVA_1_7 constant for JDK 1.7</action>
    <action type="add" issue="LANG-405">StringUtils - add abbreviateMiddle() method</action>
    <action type="add" issue="LANG-569">StringUtils - add indexOfIgnoreCase() and lastIndexOfIgnoreCase() methods</action>
    <action type="add" issue="LANG-471">StringUtils - add isAllUpperCase() and isAllLowerCase() methods</action>
    <action type="add" issue="LANG-469">StringUtils - add lastOrdinalIndexOf() method to complement the existing ordinalIndexOf() method</action>
    <action type="add" issue="LANG-348">StringUtils - add repeat() method</action>
    <action type="add" issue="LANG-445">StringUtils - add startsWithAny() method</action>
    <action type="add" issue="LANG-430">StringUtils - add upperCase(String, Locale) and lowerCase(String, Locale) methods</action>
    <action type="add" issue="LANG-416">New Reflection package containing ConstructorUtils, FieldUtils, MemberUtils and MethodUtils</action>
    <action type="fix" issue="LANG-567">ArrayUtils - addAll() does not handle mixed types very well</action>
    <action type="fix" issue="LANG-494">CharSet - Synchronizing the COMMON Map so that getInstance doesn't miss a put from a subclass in another thread</action>
    <action type="fix" issue="LANG-500">ClassUtils - improving performance of getAllInterfaces</action>
    <action type="fix" issue="LANG-587">ClassUtils - toClass() throws NullPointerException on null array element</action>
    <action type="fix" issue="LANG-530">DateUtils - Fix parseDate() cannot parse ISO8601 dates produced by FastDateFormat</action>
    <action type="fix" issue="LANG-440">DateUtils - round() doesn't work correct for Calendar.AM_PM</action>
    <action type="fix" issue="LANG-443">DateUtils - improve tests</action>
    <action type="fix" issue="LANG-204">Entities - multithreaded initialization</action>
    <action type="fix" issue="LANG-506">Entities - missing final modifiers; thread-safety issues</action>
    <action type="fix" issue="LANG-76">EnumUtils - getEnum() doesn't work well in 1.5+</action>
    <action type="fix" issue="LANG-584">ExceptionUtils - use immutable lock target</action>
    <action type="fix" issue="LANG-477">ExtendedMessageFormat - OutOfMemory with a pattern containing single quotes</action>
    <action type="fix" issue="LANG-538">FastDateFormat - call getTime() on a calendar to ensure timezone is in the right state</action>
    <action type="fix" issue="LANG-547">FastDateFormat - Remove unused field</action>
    <action type="fix" issue="LANG-511">LocaleUtils - Initialization of available locales in LocaleUtils can be deferred</action>
    <action type="fix" issue="LANG-457">NumberUtils - createNumber() thows a StringIndexOutOfBoundsException when only an "l" is passed in</action>
    <action type="fix" issue="LANG-521">NumberUtils - isNumber(String) and createNumber(String) both modified to support '2.'</action>
    <action type="fix" issue="LANG-432">StringUtils - improve handling of case-insensitive Strings</action>
    <action type="fix" issue="LANG-552">StringUtils - replaceEach() no longer NPEs when null appears in the last String[]</action>
    <action type="fix" issue="LANG-460">StringUtils - correct JavaDocs for startsWith() and startsWithIgnoreCase()</action>
    <action type="fix" issue="LANG-421">StringEscapeUtils - escapeJava() escapes '/' characters</action>
    <action type="fix" issue="LANG-450">StringEscapeUtils - change escapeJavaStyleString() to throw UnhandledException instead swallowing IOException and returning null</action>
    <action type="fix" issue="LANG-419">WordUtils - fix StringIndexOutOfBoundsException when lower is greater than the String length</action>
    <action type="fix" issue="LANG-523">StrBuilder - Performance improvement by doubling the size of the String in ensureCapacity</action>
    <action type="fix" issue="LANG-575">Compare, Equals and HashCode builders - use ArrayUtils to avoid creating a temporary List</action>
    <action type="fix" issue="LANG-467">EqualsBuilder - removing the special handling of BigDecimal (LANG-393) to use compareTo instead of equals because it creates an inequality with HashCodeBuilder</action>
    <action type="fix" issue="LANG-574">HashCodeBuilder - Performance improvement: check for isArray to short-circuit the 9 instanceof checks</action>
    <action type="fix" issue="LANG-520">HashCodeBuilder - Changing the hashCode() method to return toHashCode()</action>
    <action type="fix" issue="LANG-459">HashCodeBuilder - reflectionHashCode() can generate incorrect hashcodes</action>
    <action type="fix" issue="LANG-586">HashCodeBuilder and ToStringStyle - use of ThreadLocal causes memory leaks in container environments</action>
    <action type="fix" issue="LANG-487">ToStringBuilder - make default style thread-safe</action>
    <action type="fix" issue="LANG-472">RandomUtils - nextLong() always produces even numbers</action>
    <action type="fix" issue="LANG-592">RandomUtils - RandomUtils tests are failing frequently</action>
  </release>

  <release version="2.4" date="2008-03-18" description="">
    <action type="add" issue="LANG-322">ClassUtils.getShortClassName(String) inefficient</action>
    <action type="add" issue="LANG-269">Shouldn't Commons Lang's StringUtils have a "common" string method?</action>
    <action type="fix" issue="LANG-368">FastDateFormat getDateInstance() and getDateTimeInstance() assume Locale.getDefault() won't change</action>
    <action type="add" issue="LANG-402">OSGi-ify Lang</action>
    <action type="fix" issue="LANG-412">StrBuilder appendFixedWidth does not handle nulls</action>
    <action type="fix" issue="LANG-380">infinite loop in Fraction.reduce when numerator == 0</action>
    <action type="fix" issue="LANG-367">FastDateFormat thread safety</action>
    <action type="add" issue="LANG-298">ClassUtils.getShortClassName and ClassUtils.getPackageName and class of array</action>
    <action type="fix" issue="LANG-328">LocaleUtils.toLocale() rejects strings with only language+variant</action>
    <action type="fix" issue="LANG-334">Enum is not thread-safe</action>
    <action type="fix" issue="LANG-365">BooleanUtils.toBoolean() - invalid drop-thru in case statement causes StringIndexOutOfBoundsException</action>
    <action type="add" issue="LANG-333">ArrayUtils.toClass</action>
    <action type="fix" issue="LANG-360">Why does appendIdentityToString return null?</action>
    <action type="fix" issue="LANG-381">NumberUtils.min(floatArray) returns wrong value if floatArray[0] happens to be Float.NaN</action>
    <action type="fix" issue="LANG-346">Dates.round() behaves incorrectly for minutes and seconds</action>
    <action type="add" issue="LANG-407">StringUtils.length(String) returns null-safe length</action>
    <action type="add" issue="LANG-180">adding a StringUtils.replace method that takes an array or List of replacement strings</action>
    <action type="add" issue="LANG-383">Adding functionality to DateUtils to allow direct setting of various fields.</action>
    <action type="add" issue="LANG-374">Add escaping for CSV columns to StringEscapeUtils</action>
    <action type="add" issue="LANG-326">StringUtils: startsWith / endsWith / startsWithIgnoreCase / endsWithIgnoreCase / removeStartIgnoreCase / removeEndIgnoreCase methods</action>
    <action type="add" issue="LANG-351">Extension to ClassUtils: Obtain the primitive class from a wrapper</action>
    <action type="fix" issue="LANG-399">Javadoc bugs - cannot find object</action>
    <action type="add" issue="LANG-345">Optimize HashCodeBuilder.append(Object)</action>
    <action type="fix" issue="LANG-385">http://commons.apache.org/lang/developerguide.html "Building" section is incorrect and incomplete</action>
    <action type="fix" issue="LANG-410">Ambiguous / confusing names in StringUtils replace* methods</action>
    <action type="add" issue="LANG-257">Add new splitByWholeSeparatorPreserveAllTokens() methods to StringUtils</action>
    <action type="add" issue="LANG-356">Add getStartTime to StopWatch</action>
    <action type="add" issue="LANG-377">Perhaps add containsAny() methods?</action>
    <action type="fix" issue="LANG-353">Javadoc Example for EqualsBuilder is questionable</action>
    <action type="fix" issue="LANG-393">EqualsBuilder don't compare BigDecimals correctly</action>
    <action type="add" issue="LANG-192">Split camel case strings</action>
    <action type="add" issue="LANG-404">Add Calendar flavour format methods to DateFormatUtils</action>
    <action type="add" issue="LANG-379">Calculating A date fragment in any time-unit</action>
    <action type="add" issue="LANG-413">Memory usage improvement for StringUtils#getLevenshteinDistance()</action>
    <action type="add" issue="LANG-362">Add ExtendedMessageFormat to org.apache.commons.lang.text</action>
    <action type="fix" issue="LANG-363">StringEscapeUtils.escapeJavaScript() method did not escape '/' into '\/', it will make IE render page uncorrectly</action>
    <action type="add" issue="LANG-321">Add toArray() method to IntRange and LongRange classes</action>
    <action type="add" issue="LANG-375">add SystemUtils.IS_OS_WINDOWS_VISTA field</action>
    <action type="add" issue="LANG-329">Pointless synchronized in ThreadLocal.initialValue should be removed</action>
    <action type="add" issue="LANG-371">ToStringStyle javadoc should show examples of styles</action>
    <action type="fix" issue="LANG-364">Documentation bug for ignoreEmptyTokens accessors in StrTokenizer</action>
    <action type="fix" issue="LANG-361">BooleanUtils toBooleanObject javadoc does not match implementation</action>
    <action type="add" issue="LANG-338">truncateNicely method which avoids truncating in the middle of a word</action>
  </release>

  <release version="2.3" date="2007-02-13" description="">
    <action type="fix" issue="LANG-262">Use of enum prevents a classloader from being garbage collected resuling in out of memory exceptions.</action>
    <action type="add" issue="LANG-289">NumberUtils.max(byte[]) and NumberUtils.min(byte[]) are missing</action>
    <action type="add" issue="LANG-291">Null-safe comparison methods for finding most recent / least recent dates.</action>
    <action type="fix" issue="LANG-315">StopWatch: suspend() acts as split(), if followed by stop()</action>
    <action type="fix" issue="LANG-294">StrBuilder.replaceAll and StrBuilder.deleteAll can throw ArrayIndexOutOfBoundsException.</action>
    <action type="fix" issue="LANG-299">Bug in method appendFixedWidthPadRight of class StrBuilder causes an ArrayIndexOutOfBoundsException</action>
    <action type="fix" issue="LANG-69"> ToStringBuilder throws StackOverflowError when an Object cycle exists</action>
    <action type="add" issue="LANG-282">Create more tests to test out the +=31 replacement code in DurationFormatUtils.</action>
    <action type="fix" issue="LANG-295">StrBuilder contains usages of thisBuf.length when they should use size</action>
    <action type="add" issue="LANG-258">Enum JavaDoc: 1) outline 5.0 native Enum migration 2) warn not to use the switch() , 3) point out approaches for persistence and gui</action>
    <action type="fix" issue="LANG-313">Wrong behavior of Entities.unescape</action>
    <action type="fix" issue="LANG-300">NumberUtils.createNumber throws NumberFormatException for one digit long</action>
    <action type="fix" issue="LANG-304">NullPointerException in isAvailableLocale(Locale)</action>
    <action type="fix" issue="LANG-303">FastDateFormat.mRules is not transient or serializable</action>
    <action type="add" issue="LANG-268">StringUtils.join should allow you to pass a range for it (so it only joins a part of the array)</action>
    <action type="fix" issue="LANG-102">Refactor Entities methods</action>
    <action type="fix" issue="LANG-314">Tests fail to pass when building with Maven 2</action>
    <action type="fix" issue="LANG-281">DurationFormatUtils returns wrong result</action>
    <action type="fix" issue="LANG-292">unescapeXml("&amp;12345678;") should be "&amp;12345678;"</action>
    <action type="add" issue="LANG-287">Optimize StringEscapeUtils.unescapeXml(String)</action>
    <action type="add" issue="LANG-310">BooleanUtils isNotTrue/isNotFalse</action>
    <action type="add" issue="LANG-306">Extra StrBuilder methods</action>
    <action type="add" issue="LANG-275">Add a pair of StringUtils.substringsBetween;String[] methods</action>
    <action type="fix" issue="LANG-279">HashCodeBuilder throws java.lang.StackOverflowError when an object contains a cycle.</action>
    <action type="add" issue="LANG-266">Wish for StringUtils.join(Collection, *)</action>
  </release>

  <release version="2.2" date="2006-10-04" description="">
    <action type="fix" issue="LANG-45">StrBuilderTest#testReplaceStringString fails.</action>
    <action type="fix" issue="LANG-42">EqualsBuilder.append(Object[], Object[]) crashes with a NullPointerException if an element of the first array is null</action>
    <action type="fix" issue="LANG-286">Serialization - not backwards compatible</action>
    <action type="fix" issue="LANG-50"> Replace Clover with Cobertura</action>
    <action type="fix" issue="LANG-259">ValuedEnum.compareTo(Object other) not typesafe - it easily could be...</action>
    <action type="fix" issue="LANG-271">LocaleUtils test fails under Mustang</action>
    <action type="fix" issue="LANG-2">javadoc example for StringUtils.splitByWholeSeparator incorrect</action>
    <action type="fix" issue="LANG-3">PADDING array in StringUtils overflows on '\uffff'</action>
    <action type="fix" issue="LANG-10">ClassUtils.primitiveToWrapper and Void</action>
    <action type="fix" issue="LANG-37">unit test for org.apache.commons.lang.text.StrBuilder</action>
    <action type="fix" issue="LANG-59">DateUtils.truncate method is buggy when dealing with DST switching hours</action>
    <action type="fix" issue="LANG-100">RandomStringUtils.random() family of methods create invalid unicode sequences</action>
    <action type="fix" issue="LANG-106">StringUtils#getLevenshteinDistance() performance is sub-optimal</action>
    <action type="fix" issue="LANG-112">Wrong length check in StrTokenizer.StringMatcher</action>
    <action type="fix" issue="LANG-105">ExceptionUtils goes into infinite loop in getThrowables is throwable.getCause() == throwable</action>
    <action type="fix" issue="LANG-117">FastDateFormat: wrong format for date "01.01.1000"</action>
    <action type="fix" issue="LANG-123">Unclear javadoc for DateUtils.iterator()</action>
    <action type="fix" issue="LANG-130">Memory "leak" in StringUtils</action>
    <action type="add" issue="LANG-260">StringEscapeUtils should expose escape*() methods taking Writer argument</action>
    <action type="fix" issue="LANG-141">Fraction.toProperString() returns -1/1 for -1</action>
    <action type="fix" issue="LANG-152">DurationFormatUtils.formatDurationWords "11 &lt;unit&gt;s" gets converted to "11 &lt;unit&gt;"</action>
    <action type="fix" issue="LANG-148">Performance modifications on StringUtils.replace</action>
    <action type="fix" issue="LANG-150">StringEscapeUtils.unescapeHtml skips first entity after standalone ampersand</action>
    <action type="fix" issue="LANG-140">DurationFormatUtils.formatPeriod() returns the wrong result</action>
    <action type="add" issue="LANG-186">Request for MutableBoolean implementation</action>
    <action type="add" issue="LANG-198">New method for EqualsBuilder</action>
    <action type="add" issue="LANG-212">New ExceptionUtils method setCause()</action>
    <action type="add" issue="LANG-217">Add Mutable&lt;Type&gt; to&lt;Type&gt;() methods.</action>
    <action type="add" issue="LANG-216">Provides a Class.getPublicMethod which returns public invocable Method</action>
    <action type="add" issue="LANG-226">Using ReflectionToStringBuilder and excluding secure fields</action>
    <action type="add" issue="LANG-194">add generic add method to DateUtils</action>
    <action type="add" issue="LANG-220">Tokenizer Enhancements: reset input string, static CSV/TSV factories</action>
    <action type="add" issue="LANG-242">Trivial cleanup of javadoc in various files</action>
    <action type="add" issue="LANG-246">CompositeFormat</action>
    <action type="add" issue="LANG-250">Performance boost for RandomStringUtils</action>
    <action type="add" issue="LANG-254">Enhanced Class.forName version</action>
    <action type="add" issue="LANG-263">Add StringUtils.containsIgnoreCase(...)</action>
    <action type="add" issue="LANG-267">Support char array converters on ArrayUtils</action>
    <action type="fix" issue="LANG-25">DurationFormatUtils.formatDurationISO() javadoc is missing T in duration string between date and time part</action>
    <action type="fix" issue="LANG-272">Minor build and checkstyle changes</action>
    <action type="fix" issue="LANG-277">Javadoc errors on StringUtils.splitPreserveAllTokens(String, char)</action>
    <action type="fix" issue="LANG-122">EscapeUtil.escapeHtml() should clarify that it does not escape ' chars to &amp;apos;</action>
    <action type="add" issue="LANG-161">Add methods and tests to StrBuilder</action>
    <action type="add" issue="LANG-162">replace() length calculation improvement</action>
    <action type="add" issue="LANG-166">New interpolation features</action>
    <action type="add" issue="LANG-169">Implementation of escape/unescapeHtml methods with Writer</action>
    <action type="add" issue="LANG-176">CompareToBuilder excludeFields for reflection method</action>
    <action type="add" issue="LANG-159">Add WordUtils.getInitials(String)</action>
    <action type="fix" issue="LANG-261">Error in an example in the javadoc of the StringUtils.splitPreserveAllTokens() method</action>
    <action type="fix" issue="LANG-264">ToStringBuilder/HashCodeBuilder javadoc code examples</action>
    <action type="fix" issue="LANG-265">Cannot build tests from latest SVN</action>
    <action type="add" issue="LANG-270">minor javadoc improvements for StringUtils.stripXxx() methods</action>
    <action type="fix" issue="LANG-278">javadoc for StringUtils.removeEnd is incorrect</action>
    <action type="fix" issue="LANG-127">Minor tweak to fix of bug # 26616</action>
  </release>

  <release version="2.1" date="2005-06-13" description="">
    <action type="fix" issue="LANG-103">make optional parameters in FastDateFormat really optional</action>
    <action type="fix" issue="LANG-149">Nestable.indexOfThrowable(Class) uses Class.equals() to match</action>
    <action type="fix" issue="LANG-30">buffer under/overrun on Strings.strip, stripStart &amp; stripEnd</action>
    <action type="fix" issue="LANG-19">ToStringStyle.setArrayEnd(String) doesn't replace null with empty string.</action>
    <action type="fix" issue="LANG-80">New class proposal: CharacterEncoding</action>
    <action type="fix" issue="LANG-43">SystemUtils fails init on HP-UX</action>
    <action type="fix" issue="LANG-134">javadoc - 'four basic XML entities' should be 5 (apos is missing)</action>
    <action type="fix" issue="LANG-156">o.a.c.lang.enum.ValuedEnum: 'enum'is a keyword in JDK1.5.0</action>
    <action type="fix" issue="LANG-131">StringEscapeUtils.unescapeHtml() doesn't handle an empty entity</action>
    <action type="fix" issue="LANG-6">EqualsBuilder.append(Object[], Object[]) incorrectly checks that rhs[i] is instance of lhs[i]'s class</action>
    <action type="fix" issue="LANG-33">Method enums.Enum.equals(Object o) doesn't work correctly.</action>
    <action type="fix" issue="LANG-31">ExceptionUtils.addCauseMethodName(String) does not check for duplicates.</action>
    <action type="fix" issue="LANG-136">Make StopWatch validate state transitions</action>
    <action type="fix" issue="LANG-124">enum package is not compatible with 1.5 jdk</action>
    <action type="fix" issue="LANG-128">WordUtils capitalizeFully() throws a null pointer exception</action>
    <action type="fix" issue="LANG-138">ValuedEnum</action>
    <action type="fix" issue="LANG-133">parseDate class from HttpClient's DateParser class</action>
    <action type="fix" issue="LANG-62">ArrayUtils.isEquals() throws ClassCastException when array1 and array2 are different dimension</action>
    <action type="fix" issue="LANG-57">ClassCastException in Enum.equals(Object)</action>
    <action type="fix" issue="LANG-107">FastDateFormat year bug</action>
    <action type="fix" issue="LANG-77">unbalanced ReflectionToStringBuilder</action>
    <action type="fix" issue="LANG-86">FastDateFormat.getDateInstance(int, Locale) always uses the pattern from the first invocation</action>
    <action type="fix" issue="LANG-79">ReflectionToStringBuilder.toString(null) throws exception by design</action>
    <action type="fix" issue="LANG-126">Make ClassUtils methods null-safe and not throw an IAE.</action>
    <action type="fix" issue="LANG-5">StringUtils.split ignores empty items</action>
    <action type="fix" issue="LANG-144">EqualsBuilder.append(Object[], Object[]) throws NPE</action>
    <action type="fix" issue="LANG-74">ArrayUtils.addAll doesn't always return new array</action>
    <action type="fix" issue="LANG-81">Enum.equals does not handle different class loaders.</action>
    <action type="fix" issue="LANG-27">Add SystemUtils.AWT_TOOLKIT and others.</action>
    <action type="fix" issue="LANG-14">Throwable cause for NotImplementedException</action>
    <action type="fix" issue="LANG-28">ClassUtils.primitivesToWrappers method</action>
    <action type="fix" issue="LANG-120">public static boolean DateUtils.equals(Date dt1, Date dt2) ?</action>
    <action type="fix" issue="LANG-7">Documentation error in StringUtils.replace</action>
    <action type="fix" issue="LANG-125">DateUtils constants should be long</action>
    <action type="fix" issue="LANG-13">DateUtils.truncate() is off by one hour when using a date in DST switch 'zone'</action>
    <action type="fix" issue="LANG-118">StringEscapeUtils.unescapeHtml() doesn't handle hex entities</action>
    <action type="fix" issue="LANG-99">new StringUtils.replaceChars behaves differently from old CharSetUtils.translate</action>
    <action type="fix" issue="LANG-41">last substring returned by StringUtils.split( String, String, int ) is too long</action>
    <action type="fix" issue="LANG-119">Can't subclass EqualsBuilder because isEquals is private</action>
    <action type="fix" issue="LANG-158">new StringUtils.split methods that split on the whole separator string</action>
    <action type="add" issue="LANG-172">New method for converting a primitive Class to its corresponding wrapper Class</action>
    <action type="add" issue="LANG-222">Add convenience format(long) methods to FastDateFormat</action>
    <action type="fix" issue="LANG-116">Enum's outer class may not be loaded for EnumUtils</action>
    <action type="add" issue="LANG-219">WordUtils.capitalizeFully(String str) should take a delimiter</action>
    <action type="add" issue="LANG-183">Make javadoc crosslinking configurable</action>
    <action type="fix" issue="LANG-82">Minor javadoc fixes for StringUtils.contains(String, String)</action>
    <action type="fix" issue="LANG-32">Error in JavaDoc for StringUtils.chomp(String, String)</action>
    <action type="fix" issue="LANG-95">StringUtils.defaultString: Documentation error</action>
    <action type="add" issue="LANG-233">Add hashCode-support to class ObjectUtils</action>
    <action type="add" issue="LANG-202">add another "known method" to ExceptionUtils</action>
    <action type="add" issue="LANG-235">Enhancement of ExceptionUtils.CAUSE_METHOD_NAMES</action>
    <action type="fix" issue="LANG-24">DateUtils.truncate oddity at the far end of the Date spectrum</action>
    <action type="add" issue="LANG-232">add getLength() method to ArrayUtils</action>
    <action type="add" issue="LANG-171">Validate.java: fixes comment skew, removes unused loop counter</action>
    <action type="add" issue="LANG-179">StringUtils.isAsciiPrintable()</action>
    <action type="add" issue="LANG-167">ExceptionUtils: new getCause() methodname (for tomcat-exception)</action>
    <action type="fix" issue="LANG-85">fixes 75 typos</action>
    <action type="add" issue="LANG-230">mutable numbers</action>
    <action type="add" issue="LANG-191">Javadoc fixes for ClassUtils</action>
    <action type="add" issue="LANG-184">Add StringUtils.nIndexOf?</action>
    <action type="fix" issue="LANG-135">Javadoc fixes for CharSetUtils</action>
    <action type="fix" issue="LANG-154">Remove redundant check for null separator in StringUtils#join</action>
    <action type="add" issue="LANG-247">Class and Package Comparators for ClassUtils</action>
    <action type="add" issue="LANG-256">add remove methods to ArrayUtils</action>
    <action type="add" issue="LANG-185">WordUtils capitalize improvement</action>
    <action type="add" issue="LANG-173">add isEmpty method to ArrayUtils</action>
    <action type="add" issue="LANG-168">lang.math.Fraction class deficiencies</action>
    <action type="add" issue="LANG-207">Add methods to ArrayUtils: add at end and insert-like ops</action>
    <action type="add" issue="LANG-239">Add SystemUtils methods for directory properties.</action>
    <action type="add" issue="LANG-189">Add method that validates Collection elements are a certain type</action>
    <action type="add" issue="LANG-224">elapsed time formatting utility method</action>
  </release>

  <release version="2.0" date="2003-09-02" description="">
    <action type="fix" issue="LANG-20">Infinite loop in ToStringBuilder.reflectionToString for inner classes</action>
    <action type="fix" issue="LANG-75">NumberUtils.createBigDecimal("") NPE in Sun 1.3.1_08</action>
    <action type="fix" issue="LANG-38">Rationalize StringUtils slice functions</action>
    <action type="fix" issue="LANG-53">SystemUtils.IS_OS_OS2 Javadoc is wrong</action>
    <action type="fix" issue="LANG-142">A small, but important javadoc fix for Fraction proper whole and numerator</action>
    <action type="fix" issue="LANG-70">Adding tolerance to double[] search methods in ArrayUtils</action>
    <action type="fix" issue="LANG-9">lang.builder classes javadoc edits (mostly typo fixes)</action>
    <action type="fix" issue="LANG-63">StringUtils javadoc and test enhancements</action>
    <action type="fix" issue="LANG-132">SystemUtils.IS_OS_*, IS_JAVA_* are always false.</action>
    <action type="fix" issue="LANG-143">Improve util.Validate tests</action>
    <action type="fix" issue="LANG-155">maven-beta10 checkstyle problem</action>
    <action type="fix" issue="LANG-147">StringUtils.chopNewLine - StringIndexOutOfBoundsException</action>
    <action type="fix" issue="LANG-73">ToStringBuilder doesn't work well in subclasses</action>
    <action type="fix" issue="LANG-48">static option for reversing the stacktrace</action>
    <action type="fix" issue="LANG-87">NullPointerException in CompareToBuilder</action>
    <action type="fix" issue="LANG-84">RandomStringUtils.randomAlpha methods omit 'z'</action>
    <action type="fix" issue="LANG-129">test.time fails in Japanese (non-us) locale.</action>
    <action type="fix" issue="LANG-94">NumberUtils.isNumber allows illegal trailing characters</action>
    <action type="fix" issue="LANG-137">Improve javadoc and overflow behavior of Fraction</action>
    <action type="fix" issue="LANG-55">RandomStringUtils infloops with length &gt; 1</action>
    <action type="fix" issue="LANG-47">test.lang fails if compiled with non iso-8859-1 locales</action>
    <action type="fix" issue="LANG-113">SystemUtils does not play nice in an Applet</action>
    <action type="fix" issue="LANG-111">time unit tests fail on Sundays</action>
    <action type="fix" issue="LANG-90">java.lang.ExceptionInInitializerError thrown by JVMRandom constructor</action>
    <action type="fix" issue="LANG-78">StringUtils.chomp does not match Perl</action>
    <action type="fix" issue="LANG-36">patch and test case fixing problem with RandomStringUtils.random()</action>
    <action type="fix" issue="LANG-151">General case: infinite loop: ToStringBuilder.reflectionToString</action>
    <action type="fix" issue="LANG-35">Should ToStringBuilder.reflectionToString handle arrays?</action>
    <action type="fix" issue="LANG-83">EnumUtils nit: The import java.io.Serializable is never used</action>
    <action type="fix" issue="LANG-12">Example in Javadoc for ToStringBuilder wrong for append.</action>
    <action type="fix" issue="LANG-110">Added class hierachy support to HashCodeBuilder.reflectionHashCode()</action>
    <action type="fix" issue="LANG-71">ExceptionUtils new methods.</action>
    <action type="fix" issue="LANG-15">Infinite loop in StringUtils.replace(text, repl, with) + FIX</action>
    <action type="fix" issue="LANG-93">StackOverflow due to ToStringBuilder</action>
    <action type="fix" issue="LANG-39">No Javadoc for NestableDelegate</action>
    <action type="fix" issue="LANG-49">Specify initial size for Enum's HashMap.</action>
    <action type="fix" issue="LANG-146">Enum does not support inner sub-classes</action>
    <action type="fix" issue="LANG-157">Removed compile warning in ObjectUtils</action>
    <action type="fix" issue="LANG-96">SystemUtils.IS_JAVA_1_5 Javadoc is wrong</action>
    <action type="fix" issue="LANG-16">NumberRange inaccurate for Long, etc.</action>
    <action type="fix" issue="LANG-4">Hierarchy support in ToStringBuilder.reflectionToString()</action>
    <action type="fix" issue="LANG-56">StringUtils.countMatches loops forever if substring empty</action>
    <action type="add" issue="LANG-209">javadoc fixes (remove @links to non-public identifiers)</action>
    <action type="add" issue="LANG-210">Add javadoc examples and tests for StringUtils</action>
    <action type="add" issue="LANG-170">Make NumberUtils null handling consistent</action>
    <action type="fix" issue="LANG-145">Unused field 'startFinal' in DateIterator</action>
    <action type="add" issue="LANG-214">reduce object creation in ToStringBuilder</action>
    <action type="add" issue="LANG-228">Improved tests, javadoc for CharSetUtils, StringEscapeUtils</action>
    <action type="add" issue="LANG-252">NumberUtils min/max, BooleanUtils.xor, and ArrayUtils toPrimitive and toObject</action>
    <action type="add" issue="LANG-208">Javadoc, tests improvements for CharSet, CharSetUtils</action>
    <action type="add" issue="LANG-205">StringUtil enhancement</action>
    <action type="add" issue="LANG-164">Javadoc nit</action>
    <action type="add" issue="LANG-206">Additional Lang Method Suggestions</action>
    <action type="add" issue="LANG-178">Make NestableDelegate methods public instead of package private</action>
    <action type="add" issue="LANG-174">Missing @since tags</action>
    <action type="add" issue="LANG-245">Refactored reflection feature of ToStringBuilder into new ReflectionToStringBuilder</action>
    <action type="fix" issue="LANG-51">Typo in documentation</action>
    <action type="fix" issue="LANG-1">Patch for javadocs</action>
    <action type="add" issue="LANG-244">Add join(..., char c) to StringUtils (and some performance fixes). Even contains tests!</action>
    <action type="add" issue="LANG-231">Resurrect the WordWrapUtils from commons-sandbox/utils</action>
    <action type="fix" issue="LANG-139">EnumTest fails on Linux Sun JDK 1.3.0</action>
    <action type="add" issue="LANG-234">What to do with FastDateFormat unused private constructors</action>
    <action type="add" issue="LANG-240">Added class hierachy support to CompareToBuilder.reflectionCompare()</action>
    <action type="add" issue="LANG-190">Removed compile warning in FastDateFormat</action>
    <action type="fix" issue="LANG-97">typo in the javadoc example code</action>
    <action type="add" issue="LANG-249">MethodUtils: Removed unused code/unused local vars.</action>
    <action type="add" issue="LANG-237">Hierarchy support in EqualsBuilder.reflectionEquals()</action>
    <action type="fix" issue="LANG-91">JavaDoc Errata</action>
    <action type="add" issue="LANG-215">ArrayUtils.contains()</action>
    <action type="add" issue="LANG-221">More flexibility for getRootCause in ExceptionUtils</action>
  </release>

  <release version="1.0.1" date="2002-11-25" description="Quick bugfix to 1.0">
    <action type="fix">NumberRange.getMaximum returns minimum</action>
    <action type="fix">Enum constructor validations</action>
    <action type="fix">NestableException/Delegate is not serializable</action>
    <action type="fix">split using null and max less than actual token count adds "null"</action>
    <action type="add">ExceptionUtils cannot handle J2EE-Exception in a default way</action>
  </release>

  <release version="1.0" date="2002-10-04" description="First release of Commons Lang">
  </release>

  </body>
</document>
