Apache Commons logo Commons Lang

Apache Commons Lang Release Notes

Release History

Version Date Description
3.11 2020-07-12 New features and bug fixes.
3.10 2020-03-22 New features and bug fixes. Requires Java 8, supports Java 9, 10, 11.
3.9 2019-04-09 New features and bug fixes. Requires Java 8, supports Java 9, 10, 11.
3.8.1 2018-09-19 This release is a bugfix for Restoring Bundle-SymbolicName in the MANIFEST.mf file.
3.8 2018-08-15 New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.
3.7 2017-11-04 New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.
3.6 2017-06-08 New features and bug fixes. Requires Java 7.
3.5 2016-10-13 New features including Java 9 detection
3.4 2014-04-06 Feature and bugfix release
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.11 – 2020-07-12

Type Changes By
Update Refine test output for FastDateParserTest Thanks to Jin Xu. chtompki
Update CharSequenceUtils.lastIndexOf : remake it. Fixes LANG-1549. Thanks to Jin Xu. chtompki
Update remove encoding and docEncoding and use inherited values from commons-parent Thanks to XenoAmess. kinow
Fix Fix Javadoc for StringUtils.appendIfMissingIgnoreCase() #507. Thanks to contextshuffling. kinow
Update Simplify null checks in Pair.hashCode() using Objects.hashCode(). #517. Thanks to Isira Seneviratne, Bruno P. Kinoshita. ggregory
Update Simplify null checks in Triple.hashCode() using Objects.hashCode(). #516. Thanks to Isira Seneviratne, Bruno P. Kinoshita. ggregory
Update Simplify some if statements in StringUtils. #521. Thanks to Isira Seneviratne, Bruno P. Kinoshita. ggregory
Update Simplify a null check in the private replaceEach() method of StringUtils. #514. Fixes LANG-1537. Thanks to Isira Seneviratne, Bruno P. Kinoshita. ggregory
Update Replace some usages of the ternary operator with calls to Math.max() and Math.min() #512. Fixes LANG-1534. Thanks to Isira Seneviratne, Bruno P. Kinoshita. ggregory
Update (Javadoc) Fix return tag for throwableOf*() methods #518. Thanks to Arend v. Reinersdorff, Bruno P. Kinoshita. ggregory
Add Add ArrayUtils.isSameLength() to compare more array types #430. Thanks to XenoAmess, Gary Gregory. ggregory
Update CharSequenceUtils.regionMatches is wrong dealing with Georgian. Fixes LANG-1545. Thanks to XenoAmess, Gary Gregory. ggregory
Add Added the Locks class as a convenient possibility to deal with locked objects. jochen
Add Add to Functions: FailableBooleanSupplier, FailableIntSupplier, FailableLongSupplier, FailableDoubleSupplier, and so on. Fixes LANG-1568. ggregory
Add Add ArrayUtils.get(T[], index, T) to provide an out-of-bounds default value. Fixes LANG-1569. ggregory
Update Optimize ArrayUtils::isArrayIndexValid method. #551. Fixes LANG-1550. Thanks to Edgar Asatryan. ggregory
Update Use List.sort instead of Collection.sort #546. Fixes LANG-1561. Thanks to XenoAmess. ggregory
Update Use StandardCharsets.UTF_8 #548. Fixes LANG-1563. Thanks to XenoAmess. ggregory
Update Use Collections.singletonList insteadof Arrays.asList when there be only one element. #549. Fixes LANG-1564. Thanks to XenoAmess. ggregory
Fix Refine Javadoc #545. Fixes LANG-1560. Thanks to XenoAmess. ggregory
Update Change array style from `int a[]` to `int[] a` #537. Fixes LANG-1553. Thanks to XenoAmess. ggregory
Update Change from addAll to constructors for some List #536. Fixes LANG-1552. Thanks to XenoAmess. ggregory
Fix Fix typos #539. Fixes LANG-1554. Thanks to XenoAmess. ggregory
Fix Ignored exception `ignored`, should not be called so #540. Fixes LANG-1555. Thanks to XenoAmess. ggregory
Update Simplify if as some conditions are covered by others #543. Fixes LANG-1558. Thanks to XenoAmess. ggregory
Fix StringUtils.replaceEachRepeatedly gives IllegalStateException #505. Fixes LANG-1528. Thanks to Edwin Delgado H. ggregory
Add Add JavaVersion enum constants for Java 14 and 15. #553. Fixes LANG-1570. Thanks to Edgar Asatryan. ggregory
Add Add JavaVersion enum constants for Java 16. Thanks to Gary Gregory. ggregory
Add Use Java 8 lambdas and Map operations. Fixes LANG-1556. Thanks to XenoAmess. ggregory
Add Change removeLastFieldSeparator to use endsWith #550. Fixes LANG-1565. Thanks to XenoAmess. ggregory
Add Change a Pattern to a static final field, for not letting it compile each time the function invoked. #542. Fixes LANG-1557. Thanks to XenoAmess, Gary Gregory. ggregory
Add Add ImmutablePair factory methods left() and right(). ggregory
Add Add ObjectUtils.toString(Object, Supplier<String>). ggregory
Update Fixed Javadocs for setTestRecursive() #556. Fixes LANG-1567. Thanks to Miguel Muñoz, Bruno P. Kinoshita, Gary Gregory. ggregory
Update ToStringBuilder.reflectionToString - Wrong JSON format when object has a List of Enum. Fixes LANG-1542. Thanks to Trần Ngọc Khoa, Gary Gregory. ggregory
Fix [JSON string for maps] ToStringBuilder.reflectionToString doesnt render nested maps correctly. Fixes LANG-1543. Thanks to Swaraj Pal, Wander Costa, Gary Gregory. ggregory
Update Make org.apache.commons.lang3.CharSequenceUtils.toCharArray(CharSequence) public. ggregory
Add Add org.apache.commons.lang3.StringUtils.substringAfter(String, int). ggregory
Add Add org.apache.commons.lang3.StringUtils.substringAfterLast(String, int). ggregory
Fix Correct Javadocs of methods that use Validate.notNull() and replace some uses of Validate.isTrue() with Validate.notNull(). #525. Thanks to Isira Seneviratne. ggregory
Fix Add allNull() and anyNull() methods to ObjectUtils. #522. Fixes LANG-1539. Thanks to Isira Seneviratne. ggregory
Update org.apache.commons:commons-parent 50 -> 51. ggregory
Update org.junit-pioneer:junit-pioneer 0.5.4 -> 0.6.0. ggregory
Update org.junit.jupiter:junit-jupiter 5.6.0 -> 5.6.2. ggregory
Update com.github.spotbugs:spotbugs 4.0.0 -> 4.0.6. ggregory
Update com.puppycrawl.tools:checkstyle 8.29 -> 8.34. ggregory
Update commons.surefire.version 3.0.0-M4 -> 3.0.0-M5.. ggregory

Release 3.10 – 2020-03-22

Type Changes By
Fix Make test more stable by wrapping assertions in hashset. Fixes LANG-1514. Thanks to contextshuffling. kinow
Fix Generate Javadoc jar on build. Fixes LANG-1450. chtompki
Add Add ExceptionUtils.throwableOfType(Throwable, Class) and friends. Fixes LANG-1457. ggregory
Add Add EMPTY_ARRAY constants to classes in org.apache.commons.lang3.tuple. Fixes LANG-1458. ggregory
Add Add null-safe StringUtils APIs to wrap String#getBytes([Charset|String]). Fixes LANG-1461. ggregory
Add Add zero arg constructor for org.apache.commons.lang3.NotImplementedException. Fixes LANG-1467. ggregory
Add Add ArrayUtils.addFirst() methods. Fixes LANG-1470. ggregory
Update Remove redundant if statements in join methods #411. Fixes LANG-1437. Thanks to Andrei Troie. ggregory
Fix Trivial: year of release for 3.9 says 2018, should be 2019. Fixes LANG-1460. Thanks to Larry West. kinow
Fix Use synchronize on a set created with Collections.synchronizedSet before iterating. Fixes LANG-1476. Thanks to emopers. kinow
Add Add Range.fit(T) to fit a value into a range. Fixes LANG-1479. ggregory
Update commons.japicmp.version 0.13.1 -> 0.14.1. ggregory
Update junit-jupiter 5.5.0 -> 5.5.1. ggregory
Add Added Functions.as*, and tests thereof, as suggested by Peter Verhas. Fixes LANG-1477. jochen
Fix StringUtils.unwrap incorrect throw StringIndexOutOfBoundsException. Fixes LANG-1475. Thanks to stzx. kinow
Add Add getters for lhs and rhs objects in DiffResult #451. Fixes LANG-1485. Thanks to nicolasbd. ggregory
Add Generify builder classes Diffable, DiffBuilder, and DiffResult #452. Fixes LANG-1486. Thanks to Gary Gregory. ggregory
Add Add ClassLoaderUtils with toString() implementations #453. Fixes LANG-1487. Thanks to Gary Gregory. ggregory
Add Add null-safe APIs as StringUtils.toRootLowerCase(String) and StringUtils.toRootUpperCase(String) #456. Fixes LANG-1489. Thanks to Gary Gregory. ggregory
Fix StringIndexOutOfBoundsException in StringUtils.replaceIgnoreCase #423. Fixes LANG-1406. Thanks to geratorres. ggregory
Fix StringUtils.removeIgnoreCase("İa", "a") throws IndexOutOfBoundsException #423. Fixes LANG-1453. Thanks to geratorres. ggregory
Update junit-jupiter 5.5.1 -> 5.5.2. ggregory
Fix Corrected usage examples in Javadocs #458. Fixes LANG-1426. Thanks to Brower, Mikko Maunu, Suraj Gautam. ggregory
Update Improve Javadoc based on the discussion of the GitHub PR #459. Thanks to Jonathan Leitschuh, Bruno P. Kinoshita, Rob Tompkins, Gary Gregory. ggregory
Update maven-checkstyle-plugin 3.0.0 -> 3.1.0. ggregory
Update Update documentation related to the issue LANG-696 #449. Fixes LANG-696. Thanks to Peter Verhas. ggregory
Update AnnotationUtils little cleanup #467. Thanks to Peter Verhas. ggregory
Add Add org.apache.commons.lang3.time.Calendars. Fixes LANG-1494. Thanks to Gary Gregory. ggregory
Add Add EnumUtils getEnum() methods with default values #475. Fixes LANG-1495. Thanks to Cheong Voon Leong. ggregory
Add Added indexesOf methods and simplified removeAllOccurences #471. Fixes LANG-1177. Thanks to Liel Fridman. ggregory
Add Add support of lambda value evaluation for defaulting methods #416. Fixes LANG-1498. Thanks to Lysergid, Gary Gregory. ggregory
Fix StringUtils abbreviate returns String of length greater than maxWidth #477. Fixes LANG-1463. Thanks to bbeckercscc, Gary Gregory. ggregory
Fix Test may fail due to a different order of fields returned by reflection api #480. Fixes LANG-1500. Thanks to contextshuffling. ggregory
Update Update test dependency: org.easymock:easymock 4.0.2 -> 4.1. Thanks to Gary Gregory. ggregory
Update Update test dependency: org.hamcrest:hamcrest 2.1 -> 2.2. Thanks to Gary Gregory. ggregory
Update Update test dependency: org.junit-pioneer:junit-pioneer 0.3.0 -> 0.4.2. Thanks to Gary Gregory. ggregory
Update Update build dependency: com.puppycrawl.tools:checkstyle 8.18 -> 8.27. Thanks to Gary Gregory. ggregory
Fix Sort fields in ReflectionToStringBuilder for deterministic order #481. Fixes LANG-1501. Thanks to contextshuffling. ggregory
Update Update POM parent: org.apache.commons:commons-parent 48 -> 50. Thanks to Gary Gregory. ggregory
Update BooleanUtils Javadoc #469. Thanks to Peter Verhas. ggregory
Update Functions Javadoc #466. Thanks to Peter Verhas. ggregory
Add Add factory methods to Pair classes with Map.Entry input. #454. Fixes LANG-1503. Thanks to XenoAmess, Gary Gregory. ggregory
Add Add StopWatch convenience APIs to format times and create a simple instance. Fixes LANG-1505. Thanks to Gary Gregory. ggregory
Add Allow a StopWatch to carry an optional message. Fixes LANG-1506. Thanks to Gary Gregory. ggregory
Add Add ComparableUtils #398. Fixes LANG-1507. Thanks to Sam Kruglov, Mark Dacek, Marc Magon, Pascal Schumacher, Rob Tompkins, Bruno P. Kinoshita, Amey Jadiye, Gary Gregory. ggregory
Add Add org.apache.commons.lang3.SystemUtils.getUserName(). Fixes LANG-1508. Thanks to Gary Gregory. ggregory
Add Add ObjectToStringComparator. #483. Fixes LANG-1509. Thanks to Gary Gregory. ggregory
Add Add org.apache.commons.lang3.arch.Processor.Arch.getLabel(). Fixes LANG-1510. Thanks to Gary Gregory. ggregory
Add Add IS_JAVA_14 and IS_JAVA_15 to org.apache.commons.lang3.SystemUtils. Fixes LANG-1512. Thanks to Gary Gregory. ggregory
Add ObjectUtils: Get first non-null supplier value. Fixes LANG-1513. Thanks to Bernhard Bonigl, Gary Gregory. ggregory
Add Added the Streams class, and Functions.stream() as an accessor thereof. jochen
Update org.easymock:easymock 4.1 -> 4.2. Thanks to Gary Gregory. ggregory
Update org.junit-pioneer:junit-pioneer 0.4.2 -> 0.5.4. Thanks to Gary Gregory. ggregory
Update org.junit.jupiter:junit-jupiter 5.5.2 -> 5.6.0. Thanks to Gary Gregory. ggregory
Update Use Javadoc {@code} instead of pre tags. #490. Thanks to Peter Verhas. ggregory
Update ExceptionUtilsTest to 100% #486. Thanks to Peter Verhas. ggregory
Fix MethodUtils will throw a NPE if invokeMethod() is called for a var-args method #407. Fixes LANG-1433. Thanks to Christian Franzen. ggregory
Update Reuse own code in Functions.java #493. Thanks to Peter Verhas. ggregory
Fix MethodUtils.getAnnotation() with searchSupers = true does not work if super is generic #494. Fixes LANG-1518. Thanks to Michele Preti, Bruno P. Kinoshita, Gary Gregory. ggregory
Update Avoid unnecessary allocation in StringUtils.wrapIfMissing. #496. Fixes LANG-1523. Thanks to Edgar Asatryan, Bruno P. Kinoshita, Gary Gregory. ggregory
Update Internally use Validate.notNull(foo, ...) instead of Validate.isTrue(foo != null, ...). Fixes LANG-1525. Thanks to Edgar Asatryan, Bruno P. Kinoshita, Gary Gregory. ggregory
Update Add 1 and 0 in toBooleanObject(final String str) #502. Fixes LANG-1526. Thanks to Dominik Schramm. ggregory
Update Remove an redundant argument check in NumberUtils #504. Fixes LANG-1527. Thanks to Pengyu Nie. ggregory
Update Deprecate org.apache.commons.lang3.ArrayUtils.removeAllOccurences(*) for org.apache.commons.lang3.ArrayUtils.removeAllOccurrences(*). Fixes LANG-1529. Thanks to Gary Gregory, BillCindy, Bruno P. Kinoshita. ggregory

Release 3.9 – 2019-04-09

Type Changes By
Update FieldUtils.removeFinalModifier(Field, boolean), in java 12 throw exception because the final modifier is no longer mutable. Fixes LANG-1447. chtompki
Add Switch coverage from cobertura to jacoco. Fixes LANG-1446. chtompki
Add Javadoc pointing to Commons RNG. Fixes LANG-1442. chtompki
Update Add more SystemUtils.IS_JAVA_XX variants. Fixes LANG-1416. britter
Add Adding the Functions class. jochen
Update Update to JUnit 5. Fixes LANG-1416. britter
Update Add @FunctionalInterface to ThreadPredicate and ThreadGroupPredicate. Fixes LANG-1417. britter
Update Update Java Language requirement to 1.8. Fixes LANG-1415. britter
Add Add isEmpty method to ObjectUtils. Fixes LANG-1411. Thanks to Alexander Tsvetkov. britter
Add Add null-safe StringUtils.valueOf(char[]) to delegate to String.valueOf(char[]). Fixes LANG-1422. ggregory
Add Add API org.apache.commons.lang3.SystemUtils.isJavaVersionAtMost(JavaVersion). Fixes LANG-1427. ggregory
Update Consolidate the StringUtils equals and equalsIgnoreCase Javadoc and implementation. Fixes LANG-1436. aherbert
Update (doc) Fix javadoc for 'startIndex' parameter of StringUtils.join() methods. GitHub PR #412. Thanks to Andrei Troie aft90. ggregory

Release 3.8.1 – 2018-09-19

Type Changes By
Fix Restore BundleSymbolicName for OSGi. Fixes LANG-1419. chtompki

Release 3.8 – 2018-08-15

Type Changes By
Fix FastDateParser too strict on abbreviated short month symbols. Fixes LANG-1380. Thanks to Markus Jelsma. chas
Fix JsonToStringStyle does not escape string names. Fixes LANG-1396. sebb
Fix JsonToStringStyle does not escape double quote in a string value. Fixes LANG-1395. Thanks to Jim Gan. sebb
Fix New Java version ("11") must be handled. Fixes LANG-1384. Thanks to Ian Young. erans
Fix ExceptionUtils#getRootCause(Throwable t) should return t if no lower level cause exists. Fixes LANG-1364. Thanks to Zheng Xie. pschumacher
Fix NumberUtils.isNumber assumes number starting with Zero. Fixes LANG-1060. Thanks to Piotr Kosmala. pschumacher
Fix defaultString(final String str) in StringUtils to reuse defaultString(final String str, final String defaultStr). Fixes LANG-1375. Thanks to Jerry Zhao. kinow
Fix Parsing Json Array failed. Fixes LANG-1374. Thanks to Jaswanth Bala. kinow
Fix Fix TypeUtils#parameterize to work correctly with narrower-typed array. Fixes LANG-1371. Thanks to Dmitry Ovchinnikov. pschumacher
Fix Fix EventCountCircuitBreaker increment batch. Fixes LANG-1370. Thanks to Andre Dieb. kinow
Fix NumberUtils.createNumber() throws StringIndexOutOfBoundsException instead of NumberFormatException. Fixes LANG-1385. Thanks to Rohan Padhye. ggregory
Fix WordUtils.wrap throws StringIndexOutOfBoundsException when wrapLength is Integer.MAX_VALUE. Fixes LANG-1397. Thanks to Takanobu Asanuma. ggregory
Fix Typo in JavaDoc for lastIndexOf. Fixes LANG-1401. Thanks to Roman Golyshev, Alex Mamedov. pschumacher
Update ObjectUtils.identityToString(Object) and friends should allocate builders and buffers with a size. Fixes LANG-1367. Thanks to Gary Gregory. ggregory
Add EnumUtils.getEnumIgnoreCase and isValidEnumIgnoreCase methods added. Fixes LANG-1352. Thanks to Ruslan Sibgatullin. pschumacher
Add Add ToStringSummary annotation. Fixes LANG-1372. Thanks to Sérgio Ozaki. pschumacher
Add Add bypass option for classes to recursive and reflective EqualsBuilder. Fixes LANG-1356. Thanks to Yathos UG. pschumacher
Add Improve Javadoc for StringUtils.isAnyEmpty(null). Fixes LANG-1391. Thanks to Sauro Matulli, Oleg Chubaryov. ggregory
Add Add API SystemUtils.String getEnvironmentVariable(final String name, final String defaultValue). Fixes LANG-1393. Thanks to Gary Gregory. ggregory
Add org.apache.commons.lang3.SystemUtils should not write to System.err. Fixes LANG-1394. Thanks to Sebb, Gary Gregory. ggregory
Add Add RegexUtils class instead of overloading methods in StringUtils that take a regex to take precompiled Pattern. Fixes LANG-1238. Thanks to Christopher Cordeiro, Gary Gregory, Bruno P. Kinoshita, Oleg Chubaryov. ggregory
Add StringUtils.join() with support for List<?> with configurable start/end indices. Fixes LANG-1390. Thanks to Jochen Schalanda. ggregory
Add Methods for getting first non empty or non blank value. Fixes LANG-1392. Thanks to Jeff Nelson. pschumacher
Update Remove checks for java versions below the minimum supported one. Fixes LANG-1405. Thanks to Lars Grefer. ggregory
Update Null/index safe get methods for ArrayUtils. Fixes LANG-1402. Thanks to Mark Dacek. chtompki
Add Rounding utilities for converting to BigDecimal. Fixes LANG-1408. chtompki

Release 3.7 – 2017-11-04

Type Changes By
Fix Fix tests DateUtilsTest for Java 9 with en_GB locale. Fixes LANG-1362. Thanks to Stephen Colebourne. ggregory
Fix Fix NullPointerException in isJavaVersionAtLeast on Java 10, add SystemUtils.IS_JAVA_10, add JavaVersion.JAVA_10. Fixes LANG-1365. Thanks to Gary Gregory. ggregory
Fix StackOverflowError on TypeUtils.toString(...) for a generic return type of Enum.valueOf. Fixes LANG-1348. Thanks to mbusso. pschumacher
Fix ConstructorUtils.invokeConstructor(Class, Object...) regression. Fixes LANG-1350. Thanks to Brett Kail. ggregory
Fix EqualsBuilder#isRegistered: swappedPair construction bug. Fixes LANG-1349. Thanks to Naman Nigam. pschumacher
Fix org.apache.commons.lang3.time.FastDateParser should use toUpperCase(Locale). Fixes LANG-1357. Thanks to BruceKuiLiu. ggregory
Update Improve StringUtils#replace throughput. Fixes LANG-1358. Thanks to Stephane Landelle. pschumacher
Update Remove deprecation from RandomStringUtils. Fixes LANG-1346. pschumacher
Update ExceptionUtils.getThrowableList() is using deprecated ExceptionUtils.getCause(). Fixes LANG-1361. Thanks to Ana. ggregory
Add TimeZone.getTimeZone() in FastDateParser causes resource contention (PR #296.). Fixes LANG-1355. Thanks to Chas Honton. ggregory
Add Add methods to ObjectUtils to get various forms of class names in a null-safe manner. Fixes LANG-1360. Thanks to Gary Gregory. ggregory

Release 3.6 – 2017-06-08

Type Changes By
Update Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility. Fixes LANG-1338. britter
Add Add NUL Byte To CharUtils. Fixes LANG-1336. Thanks to Beluga Behr. britter
Fix Fix test failures in IBM JDK 8 for ToStringBuilderTest. Fixes LANG-1337. kinow
Add Add method in StringUtils to determine if string contains both mixed cased characters. Fixes LANG-1304. Thanks to Andy Klimczak. pschumacher
Update Deprecate CharEncoding in favour of java.nio.charset.StandardCharsets. Fixes LANG-1334. djones
Fix MultilineRecursiveToStringStyle StackOverflowError when object is an array. Fixes LANG-1319. djones
Add Increase test coverage of ToStringBuilder class to 100%. Fixes LANG-1325. Thanks to Arshad Basha. kinow
Add Add a method in StringUtils to extract only digits out of input string. Fixes LANG-1307. Thanks to Arshad Basha. pschumacher
Update Implement HashSetvBitSetTest using JMH. Fixes LANG-1110. Thanks to Bruno P. Kinoshita. pschumacher
Add Add JMH maven dependencies. Fixes LANG-1256. Thanks to C0rWin. pschumacher
Add Add null filter to ReflectionToStringBuilder. Fixes LANG-1167. Thanks to Mark Dacek. chtompki
Fix LocaleUtils#toLocale does not support language followed by UN M.49 numeric-3 area code followed by variant. Fixes LANG-1320. britter
Fix Clarify or improve behavior of int-based indexOf methods in StringUtils. Fixes LANG-1300. Thanks to Mark Dacek. chtompki
Add Add method for converting string to an array of code points. Fixes LANG-1299. djones
Fix RandomStringUtils random method can overflow and return characters outside of specified range. Fixes LANG-1286. djones
Add Add methods to insert arrays into arrays at an index. Fixes LANG-660. djones
Fix WordUtils.wrap throws StringIndexOutOfBoundsException. Fixes LANG-1292. djones
Fix RandomStringUtils#random can enter infinite loop if end parameter is to small. Fixes LANG-1287. Thanks to Ivan Morozov. pschumacher
Fix NullPointerException in FastDateParser$TimeZoneStrategy. Fixes LANG-1285. Thanks to Francesco Chicchiriccò. pschumacher
Fix Javadoc of StringUtils.ordinalIndexOf is contradictory. Fixes LANG-1281. Thanks to Andreas Lundblad. pschumacher
Fix StringUtils#join(T...): warning: [unchecked] Possible heap pollution from parameterized vararg type T. Fixes LANG-1188. pschumacher
Fix Multiple calls of org.apache.commons.lang3.concurrent.LazyInitializer.initialize() are possible. Fixes LANG-1144. Thanks to Waldemar Maier, Gary Gregory. ggregory
Fix StrBuilder#replaceAll ArrayIndexOutOfBoundsException. Fixes LANG-1276. Thanks to Andy Klimczak. pschumacher
Fix BooleanUtils javadoc issues. Fixes LANG-1278. Thanks to Duke Yin. pschumacher
Fix ArrayUtils#add confusing example in javadoc. Fixes LANG-1070. Thanks to Paul Pogonyshev. pschumacher
Fix StringUtils#isAnyEmpty and #isAnyBlank should return false for an empty array. Fixes LANG-1271. Thanks to Pierre Templier. pschumacher
Fix Add StringUtils#unwrap. Fixes LANG-1155. Thanks to Saif Asif, Thiago Andrade. pschumacher
Add Add support for recursive comparison to EqualsBuilder#reflectionEquals. Fixes LANG-1034. Thanks to Yathos UG. pschumacher
Add Add a reflection-based variant of DiffBuilder. Fixes LANG-1067. pschumacher
Add Implementation of a Memomizer. Fixes LANG-740. Thanks to James Sawle. pschumacher
Add Add ArrayUtils#toStringArray method. Fixes LANG-1258. Thanks to IG, Grzegorz Rożniecki. pschumacher
Add StringUtils#abbreviate should support 'custom ellipses' parameter. Fixes LANG-1160. kinow
Add Add StringUtils#isAllEmpty and #isAllBlank methods. Fixes LANG-1293. Thanks to Pierre Templier, Martin Tarjanyi. pschumacher
Update Increase test coverage of org.apache.commons.lang3.ArrayUtils. Fixes LANG-1290. Thanks to Andrii Abramov. pschumacher
Update StrSubstitutor should state its thread safety. Fixes LANG-1274. pschumacher
Update StringUtils#getLevenshteinDistance reduce memory consumption. Fixes LANG-1277. Thanks to yufcuy. pschumacher
Update Update Java requirement from Java 6 to 7. Fixes LANG-1279. ggregory
Update StringUtils should use toXxxxCase(int) rather than toXxxxCase(char). Fixes LANG-1143. Thanks to sebb. pschumacher
Update Add SystemUtils.getHostName() API. Fixes LANG-1297. ggregory
Update Moving apache-rat-plugin configuration into pluginManagement. Fixes LANG-1301. Thanks to Karl Heinz Marbaise. pschumacher
Fix TypeUtils.toString() doesn't handle primitive and Object arrays correctly. Fixes LANG-1311. Thanks to Aaron Digulla. pschumacher
Fix LocaleUtils#toLocale does not support language followed by UN M.49 numeric-3 area code. Fixes LANG-1312. pschumacher
Fix Build failures when building with Java 9 EA. Fixes LANG-1265. pschumacher
Fix javadoc creation broken with Java 8. Fixes LANG-1314. Thanks to Allon Murienik. pschumacher
Update Deprecate classes/methods moved to commons-text. Fixes LANG-1316. pschumacher
Fix MethodUtils.invokeMethod throws ArrayStoreException if using varargs arguments and smaller types than the method defines. Fixes LANG-1310. Thanks to Don Jeba. pschumacher
Add Add ArchUtils - An utility class for the "os.arch" system property. Fixes LANG-1313. Thanks to Tomschi. pschumacher
Add Add shuffle methods to ArrayUtils. Fixes LANG-1272. ebourg
Add Add MethodUtils#findAnnotation and extend MethodUtils#getMethodsWithAnnotation for non-public, super-class and interface methods. Fixes LANG-1317. Thanks to Yasser Zamani. pschumacher
Add Add ImmutablePair.nullPair(). Fixes LANG-1331. ggregory
Add Add ImmutableTriple.nullTriple(). Fixes LANG-1332. ggregory

Release 3.5 – 2016-10-13

Type Changes By
Add Added a tryAcquire() method to TimedSemaphore. Fixes LANG-1275. oheger
Add Added a new property IS_OS_MAC_OSX_EL_CAPITAN in SystemUtils. Fixes LANG-1273. Thanks to Jake Wang. ebourg
Add Add DateUtils.toCalendar(Date, TimeZone). Fixes LANG-1255. Thanks to Kaiyuan Wang. britter
Add Add WordUtils.wrap overload with customizable breakable character. Fixes LANG-1023. Thanks to Marko Bekhta. britter
Add Add method removeIgnoreCase(String, String) to StringUtils. Fixes LANG-787. Thanks to Gokul Nanthakumar C. pschumacher
Fix ArrayUtils.contains returns false for instances of subtypes. Fixes LANG-1261. pschumacher
Update Prepare Java 9 detection. Fixes LANG-1197. pschumacher
Fix Rename NumberUtils.isNumber, isCreatable to better reflect createNumber. Also, accommodated for "+" symbol as prefix in isCreatable and isNumber. Fixes LANG-1252. Thanks to Rob Tompkins. chtompki
Update CompareToBuilder.append(Object, Object, Comparator) method is too big to be inlined. Fixes LANG-1262. Thanks to Ruslan Cheremin. pschumacher
Fix Remove unnecessary synchronization from registry lookup in EqualsBuilder and HashCodeBuilder. Fixes LANG-1230. Thanks to Philippe Marschall. pschumacher
Add Extend RandomStringUtils with methods that generate strings between a min and max length. Fixes LANG-1224. Thanks to Caleb Cushing. pschumacher
Fix Handle "void" in ClassUtils.getClass(). Fixes LANG-1214. Thanks to Henry Tung. pschumacher
Fix SerializationUtils#deserialize has unnecessary code and a comment for that. Fixes LANG-1250. Thanks to Glease Wang. pschumacher
Update Javadoc for ArrayUtils.isNotEmpty() is slightly misleading. Fixes LANG-1259. Thanks to Dominik Stadler. britter
Add Add APIs StringUtils.wrapIfMissing(String, char|String). Fixes LANG-1257. Thanks to Gary Gregory. ggregory
Fix TypeUtils.isAssignable throws NullPointerException when fromType has type variables and toType generic superclass specifies type variable. Fixes LANG-1190. Thanks to pschumacher. pschumacher
Fix StringUtils#normalizeSpace does not trim the string anymore. Fixes LANG-1226. Thanks to pschumacher. pschumacher
Fix SerializationUtils.ClassLoaderAwareObjectInputStream should use static initializer to initialize primitiveTypes map. Fixes LANG-1251. Thanks to Takuya Ueshin. pschumacher
Add [GitHub issue #170] Add RandomUtils#nextBoolean() method. Fixes LANG-1253. Thanks to adilek. ggregory
Fix FastDatePrinter Memory allocation regression. Fixes LANG-1248. Thanks to Benoit Wiart. chas
Update FastDatePrinter generates extra Date objects. Fixes LANG-1247. Thanks to Benoit Wiart. chas
Fix Fix precision loss on NumberUtils.createNumber(String). Fixes LANG-1018. Thanks to Nick Manley. pschumacher
Update HashCodeBuilder.append(Object,Object) is too big to be inlined, which prevents whole builder to be scalarized. Fixes LANG-1229. Thanks to Ruslan Cheremin. pschumacher
Add Add a circuit breaker implementation. Fixes LANG-1085. Thanks to oheger / kinow. oheger
Add Add StringUtils.truncate(). Fixes LANG-1013. Thanks to Thiago Andrade. pschumacher
Add Enhance MethodUtils to allow invocation of private methods. Fixes LANG-1195. Thanks to Derek C. Ashmore. pschumacher
Fix Fix implementation of StringUtils.getJaroWinklerDistance(). Fixes LANG-1199. Thanks to M. Steiger. pschumacher
Fix Fix dead links in StringUtils.getLevenshteinDistance() javadoc. Fixes LANG-1244. Thanks to jjbankert. pschumacher
Fix "\u2284":"nsub" mapping missing from EntityArrays#HTML40_EXTENDED_ESCAPE. Fixes LANG-1242. Thanks to Neal Stewart. pschumacher
Update Simplify ArrayUtils removeElements by using new decrementAndGet() method. Fixes LANG-1243. sebb
Add Add getAndIncrement/getAndDecrement/getAndAdd/incrementAndGet/decrementAndGet/addAndGet in Mutable* classes. Fixes LANG-1189. Thanks to haiyang li / Matthew Bartenschlag. sebb
Update Optimize BitField constructor implementation. Fixes LANG-1240. Thanks to zhanhb. pschumacher
Update Improve CharSetUtils.squeeze() performance. Fixes LANG-1206. Thanks to Mohammed Alfallaj. pschumacher
Add Add RandomStringUtils#randomGraph and #randomPrint which match corresponding regular expression class. Fixes LANG-1225. Thanks to Caleb Cushing. pschumacher
Fix StringUtils#startsWithAny/endsWithAny is case sensitive - documented as case insensitive. Fixes LANG-901. Thanks to Matthew Bartenschlag. pschumacher
Add Add StopWatch#getTime(TimeUnit). Fixes LANG-1223. Thanks to Nick Manley. pschumacher
Add Add methods to ObjectUtils class to check for null elements in the array. Fixes LANG-781. Thanks to Krzysztof Wolny. pschumacher
Add Prefer Throwable.getCause() in ExceptionUtils.getCause(). Fixes LANG-1228. Thanks to Brad Hess. pschumacher
Add DiffBuilder add method to allow appending from a DiffResult. Fixes LANG-1233. Thanks to Nick Manley. pschumacher
Update Improve ArrayUtils removeElements time complexity to O(n). Fixes LANG-1176. Thanks to Jeffery Yuan. pschumacher
Update getLevenshteinDistance with a threshold: optimize implementation if the strings lengths differ more than the threshold. Fixes LANG-1234. Thanks to Jonatan Jönsson. pschumacher
Add Add SystemUtils.IS_OS_WINDOWS_10 property. Fixes LANG-1168. Thanks to pschumacher. pschumacher
Fix DiffBuilder: Add null check on fieldName when appending Object or Object[]. Fixes LANG-1232. Thanks to Nick Manley. pschumacher
Fix ArrayUtils.removeAll(Object array, int... indices) should do the clone, not its callers. Fixes LANG-1178. Thanks to Henri Yandell. pschumacher
Update Performance improvements for NumberUtils.isParsable. Fixes LANG-1151. Thanks to Juan Pablo Santos Rodríguez. pschumacher
Fix StringUtils.stripAccents should remove accents from "Ł" and "ł". Fixes LANG-1120. Thanks to kaching88. pschumacher
Update EqualsBuilder.append(Object,Object) is too big to be inlined, which prevents whole builder to be scalarized. Fixes LANG-1218. Thanks to Ruslan Cheremin. ggregory
Fix NumberUtils.createNumber() behaves inconsistently with NumberUtils.isNumber(). Fixes LANG-1205. Thanks to pbrose. chas
Add Add support for varargs in ConstructorUtils, MemberUtils, and MethodUtils. Fixes LANG-1115. Thanks to Jim Lloyd, Joe Ferner. chas
Add Add methods to check numbers against NaN and inifinite to Validate. Fixes LANG-1134. Thanks to Alan Smithee. chas
Fix Fix for incorrect comment on StringUtils.containsIgnoreCase method. Fixes LANG-1222. Thanks to Adam J.. ggregory
Fix Fix typo on appendIfMissing javadoc. Fixes LANG-1221. Thanks to Pierre Templier. ggregory
Add Add tests for missed branches in DateUtils. Fixes LANG-1220. Thanks to Casey Scarborough. kinow
Fix parseDateStrictly does't pass specified locale. Fixes LANG-1202. Thanks to Markus Jelsma. chas
Fix FastDateFormat doesn't respect summer daylight in some localized strings. Fixes LANG-1219. Thanks to Jarek. chas
Add z/OS identification in SystemUtils. Fixes LANG-1146. Thanks to Gabor Liptak. ggregory
Update StringUtils#startsWithAny has error in Javadoc. Fixes LANG-1210. Thanks to Matthias Niehoff. ggregory
Update StrSubstitutor can preserve escapes. Fixes LANG-1208. Thanks to Samuel Karp. bayard
Fix Remove Ant-based build. Fixes LANG-1175. Thanks to Benedikt Ritter. wikier
Add FastDateFormat support of the week-year component (uppercase 'Y'). Fixes LANG-1192. Thanks to Dominik Stadler. chas
Fix Limit max heap memory for consistent Travis CI build. Fixes LANG-1194. chas
Fix Fix NullPointerException in FastDateParser$TimeZoneStrategy. Fixes LANG-1186. Thanks to NickManley. chas
Fix ordinalIndexOf("abc", "ab", 1) gives incorrect answer of -1 (correct answer should be 0); revert fix for LANG-1077. Fixes LANG-1193. Thanks to Qin Li. sebb
Update Clarify Javadoc of StringUtils.containsAny(). Fixes LANG-1182. Thanks to Larry West, Pascal Schumacher. britter
Add Add StringUtils methods to compare a string to multiple strings. Fixes LANG-1169. Thanks to Rafal Glowinski, Robert Parr, Arman Sharif. lguibert
Add Add remove by regular expression methods in StringUtils. Fixes LANG-1185. lguibert
Update Making replacePattern/removePattern methods null safe in StringUtils. Fixes LANG-1183. lguibert
Add Add replace by regular expression methods in StringUtils. Fixes LANG-1139. lguibert
Add Add compare methods in StringUtils. Fixes LANG-1171. lguibert
Add Add sugar to RandomUtils. Fixes LANG-1174. Thanks to Punkratz312. britter
Update Replace StringBuilder with String concatenation for better optimization. Fixes LANG-1057. Thanks to Otávio Santana. chas
Update Deprecate SystemUtils.FILE_SEPARATOR and SystemUtils.PATH_SEPARATOR. Fixes LANG-1075. chas
Add FastDateFormat APIs that use a StringBuilder. Fixes LANG-1154. Thanks to Gary Gregory. chas
Add Ability to throw checked exceptions without declaring them. Fixes LANG-1149. Thanks to Gregory Zak. chas
Fix Several predefined ISO FastDateFormats in DateFormatUtils are incorrect. Fixes LANG-1002. Thanks to Michael Osipov. chas
Fix StringIndexOutOfBoundsException or field over-write for large year fields in FastDateParser. Fixes LANG-1152. Thanks to Pas Filip. chas
Add Implement ParsePosition api for FastDateParser. Fixes LANG-1153. chas
Fix StrLookup.systemPropertiesLookup() no longer reacts on changes on system properties. Fixes LANG-1141. oheger
Fix EnumUtils *BitVector issue with more than 32 values Enum. Fixes LANG-1147. Thanks to Loic Guibert. sebb
Fix Capitalize javadoc is incorrect. Fixes LANG-1059. Thanks to Colin Casey. sebb
Add Add check for duplicate event listener in EventListenerSupport. Fixes LANG-1137. Thanks to Matthew Aguirre. britter
Fix FastDateParser_TimeZoneStrategyTest#testTimeZoneStrategyPattern fails on Windows with German Locale. Fixes LANG-1133. Thanks to Pascal Schumacher. chas
Add Add method containsAllWords to WordUtils. Fixes LANG-1135. Thanks to Eduardo Martins. britter
Add ReflectionToStringBuilder doesn't throw IllegalArgumentException when the constructor's object param is null. Fixes LANG-1132. Thanks to Jack Tan. britter
Fix Inconsistent behavior of swap for malformed inputs. Fixes LANG-1122. Thanks to Adrian Ber. britter
Add StringUtils join with var args. Fixes LANG-701. Thanks to James Sawle. britter
Fix Fix critical issues reported by SonarQube. Fixes LANG-1130. britter
Fix StrBuilder.equals(StrBuilder) doesn't check for null inputs. Fixes LANG-1131. britter
Add Add ThreadUtils - A utility class which provides helper methods related to java.lang.Thread. Fixes LANG-1105. Thanks to Hendrik Saly. britter
Add Add annotations to exclude fields from ReflectionEqualsBuilder, ReflectionToStringBuilder and ReflectionHashCodeBuilder. Fixes LANG-1031. Thanks to Felipe Adorno. britter
Add Use JUnit rules to set and reset the default Locale and TimeZone. Fixes LANG-1127. chas, britter
Fix JsonToStringStyle doesn't handle chars and objects correctly. Fixes LANG-1128. Thanks to Jack Tan. britter
Fix DateFormatUtilsTest.testSMTP depends on the default Locale. Fixes LANG-1126. britter
Fix Unit test FastDatePrinterTimeZonesTest needs a timezone set. Fixes LANG-1123. Thanks to Christian P. Momon. chas
Fix CLONE - DateFormatUtils.format does not correctly change Calendar TimeZone in certain situations. Fixes LANG-916. Thanks to Christian P. Momon. chas
Fix DateUtilsTest.testLang530 fails for some timezones. Fixes LANG-1116. Thanks to Aaron Sheldon. chas
Fix TypeUtils.ParameterizedType#equals doesn't work with wildcard types. Fixes LANG-1114. Thanks to Andy Coates. britter
Add Add rotate(string, int) method to StringUtils. Fixes LANG-1119. Thanks to Loic Guibert. britter
Fix StringUtils.repeat('z', -1) throws NegativeArraySizeException. Fixes LANG-1118. Thanks to Loic Guibert. britter
Add Add swap and shift operations for arrays to ArrayUtils. Fixes LANG-1099. Thanks to Adrian Ber. britter
Update TypeUtils.parameterizeWithOwner - wrong format descriptor for "invalid number of type parameters". Fixes LANG-979. Thanks to Bruno P. Kinoshita. britter
Update MultilineRecursiveToStringStyle largely unusable due to being package-private. Fixes LANG-1112. britter
Update StringUtils.uncapitalize performance improvement. Fixes LANG-1058. Thanks to Leo Wang. djones
Update CharSet.getInstance documentation does not clearly explain how to include negation character in set. Fixes LANG-1069. Thanks to Arno Noordover. djones
Add Change nullToEmpty methods to generics. Fixes LANG-1050. Thanks to James Sawle. djones
Fix Fix FindBugs warnings in DurationFormatUtils. Fixes LANG-1111. chas
Add Add a method to ArrayUtils for removing all occurrences of a given element. Fixes LANG-1074. Thanks to Haiyang Li. djones
Update Fix parsing edge cases in FastDateParser. Fixes LANG-1107. chas
Fix StringUtils#equals fails with Index OOBE on non-Strings with identical leading prefix. Fixes LANG-1162. sebb
Fix There are no tests for CharSequenceUtils.regionMatches. Fixes LANG-1163. sebb
Fix StringUtils.ordinalIndexOf: Add missing right parenthesis in Javadoc example. Fixes LANG-1200. Thanks to BarkZhang. ggregory
Fix Incorrect Javadoc StringUtils.containsAny(CharSequence, CharSequence...). Fixes LANG-1191. Thanks to qed, Brent Worden, Gary Gregory. ggregory
Update Added new property IS_OS_MAC_OSX_EL_CAPITAN in SystemUtils Thanks to Jake Wang. ebourg

Release 3.4 – 2014-04-06

Type Changes By
Add Support OS X versions in SystemUtils. Fixes LANG-821. Thanks to Timo Kockert. britter
Fix SystemUtils.IS_OS_WINDOWS_2008, VISTA are incorrect. Fixes LANG-794. Thanks to Timo Kockert. britter
Fix Parse test fails for TimeZone America/Sao_Paulo. Fixes LANG-1104. chas
Add Add SystemUtils.IS_JAVA_1_9. Fixes LANG-1103. britter
Update Make logic for comparing OS versions in SystemUtils smarter. Fixes LANG-1102. britter
Update Shutdown thread pools in test cases. Fixes LANG-1091. Thanks to Fabian Lange. britter
Update FastDateParser and FastDatePrinter support 'X' format. Fixes LANG-1101. chas
Update Avoid memory allocation when using date formating to StringBuffer. Fixes LANG-1100. Thanks to mbracher. chas
Update Possible performance improvement on string escape functions. Fixes LANG-935. Thanks to Fabian Lange, Thomas Neidhart. britter
Fix Exception while using ExtendedMessageFormat and escaping braces. Fixes LANG-948. Thanks to Andrey Khobnya. britter
Update Avoid String allocation in StrBuilder.append(CharSequence). Fixes LANG-1098. Thanks to Mikhail Mazurskiy, Fabian Lange. britter
Update Update maven-checkstyle-plugin to 2.14. Fixes LANG-1098. Thanks to Michał Kordas. britter
Update Update org.easymock:easymock to 3.3.1. Fixes LANG-1097. Thanks to Michał Kordas. britter
Update Update maven-pmd-plugin to 3.4. Fixes LANG-1096. Thanks to Michał Kordas. britter
Update Update maven-antrun-plugin to 1.8. Fixes LANG-1095. Thanks to Michał Kordas. britter
Fix Wrong formating of time zones with daylight saving time in FastDatePrinter. Fixes LANG-1092. britter
Update Performance improvements for StringEscapeUtils. Fixes LANG-877. Thanks to Fabian Lange. britter
Add Add ClassUtils.getAbbreviatedName(). Fixes LANG-1093. Thanks to Fabian Lange. britter
Fix FastDateParser does not set error indication in ParsePosition. Fixes LANG-1090. sebb
Fix FastDateParser does not handle excess hours as per SimpleDateFormat. Fixes LANG-1089. sebb
Fix FastDateParser error - timezones not handled correctly. Fixes LANG-1061. Thanks to dmeneses. sebb
Fix NumberUtils#createNumber() returns positive BigDecimal when negative Float is expected. Fixes LANG-1087. Thanks to Renat Zhilkibaev. britter
Fix DiffBuilder.append(String, Object left, Object right) does not do a left.equals(right) check. Fixes LANG-1081. Thanks to Jonathan Baker. britter
Fix StrSubstitutor.replaceSystemProperties does not work consistently. Fixes LANG-1055. Thanks to Jonathan Baker. britter
Add Add option to disable the "objectsTriviallyEqual" test in DiffBuilder. Fixes LANG-1082. Thanks to Jonathan Baker. britter
Fix Add (T) casts to get unit tests to pass in old JDK. Fixes LANG-1083. Thanks to Jonathan Baker. britter
Add Add JsonToStringStyle implementation to ToStringStyle. Fixes LANG-1015. Thanks to Thiago Andrade. britter
Add Add NoClassNameToStringStyle implementation of ToStringStyle. Fixes LANG-1080. Thanks to Innokenty Shuvalov. britter
Update Fix wrong examples in Javadoc of StringUtils.replaceEachRepeatedly(...), StringUtils.replaceEach(...). Fixes LANG-1071. Thanks to Arno Noordover. britter
Add Add StringUtils.containsAny(CharSequence, CharSequence...) method. Fixes LANG-883. Thanks to Daniel Stewart. britter
Fix Read wrong component type of array in add in ArrayUtils. Fixes LANG-1073. Thanks to haiyang li. kinow
Fix StringUtils.ordinalIndexOf("aaaaaa", "aa", 2) != 3 in StringUtils. Fixes LANG-1077. Thanks to haiyang li. kinow
Fix Duplicated "0x" check in createBigInteger in NumberUtils. Fixes LANG-1072. Thanks to haiyang li. sebb
Fix StringUtils.abbreviate description doesn't agree with the examples. Fixes LANG-1064. Thanks to B.J. Herbison. djones
Add Multiline recursive to string style. Fixes LANG-1052. Thanks to Jan Matèrne. britter
Add Add isSorted() to ArrayUtils. Fixes LANG-536. Thanks to James Sawle. djones
Fix Fix MethodUtilsTest so it does not depend on JDK method ordering. Fixes LANG-1041. Thanks to Alexandre Bartel. britter
Update CompareToBuilder's doc doesn't specify precedence of fields it uses in performing comparisons. Fixes LANG-827. djones
Fix ParseException when trying to parse UTC dates with Z as zone designator using DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT. Fixes LANG-1000. djones
Fix Javadoc for EqualsBuilder.reflectionEquals() is unclear. Fixes LANG-1035. djones
Update Improve performance of normalize space. Fixes LANG-1020. Thanks to Libor Ondrusek. britter
Add Add StringUtils.countMatches(CharSequence, char). Fixes LANG-1033. ggregory
Update org.apache.commons.lang3.SystemUtils#isJavaVersionAtLeast should return true by default. Fixes LANG-1027. rmannibucau
Add Provide methods to retrieve all fields/methods annotated with a specific type. Fixes LANG-1021. Thanks to Alexander Müller. britter
Update Bring static method references in StringUtils to consistent style. Fixes LANG-1026. Thanks to Alex Yursha. britter
Add NumberUtils#isParsable method(s). Fixes LANG-1016. Thanks to Juan Pablo Santos Rodríguez. britter
Update Use non-ASCII digits in Javadoc examples for StringUtils.isNumeric. Fixes LANG-1017. Thanks to Christoph Schneegans. britter
Update Change min/max methods in NumberUtils/IEEE754rUtils from array input parameters to varargs. Fixes LANG-1008. Thanks to Thiago Andrade. britter
Add Add fuzzy String matching logic to StringUtils. Fixes LANG-999. Thanks to Ben Ripkens. britter
Update Add wrap (with String or char) to StringUtils. Fixes LANG-1006. Thanks to Thiago Andrade. britter
Update Extend DurationFormatUtils#formatDurationISO default pattern to match #formatDurationHMS. Fixes LANG-1005. Thanks to Michael Osipov. britter
Update Fixing NumberUtils JAVADoc comments for max methods. Fixes LANG-1007. Thanks to Thiago Andrade. britter
Update Better Javadoc for BitField class. Fixes LANG-731. djones
Update DurationFormatUtils#formatDurationHMS implementation does not correspond to Javadoc and vice versa. Fixes LANG-1004. Thanks to Michael Osipov. britter
Update DurationFormatUtils are not able to handle negative durations/periods. Fixes LANG-1003. britter
Fix ISO 8601 misspelled throughout the Javadocs. Fixes LANG-1001. Thanks to Michael Osipov. ggregory
Add Add zero copy read method to StrBuilder. Fixes LANG-994. Thanks to Mikhail Mazursky. britter
Add Add zero copy write method to StrBuilder. Fixes LANG-993. Thanks to Mikhail Mazursky. britter
Update Javadoc is not clear on preferred pattern to instantiate FastDateParser / FastDatePrinter. Fixes LANG-998. chas
Fix FastDateParser should be case insensitive. Fixes LANG-1088. chas
Fix Fix bug with stripping spaces on last line in WordUtils.wrap(). Fixes LANG-995. Thanks to Andrey Khobnya. britter
Add Add method org.apache.commons.lang3.reflect.MethodUtils.invokeExactMethod(Object, String). Fixes LANG-1044. ggregory
Add Add method org.apache.commons.lang3.reflect.MethodUtils.invokeMethod(Object, String). Fixes LANG-1045. ggregory

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 behavior 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.
Unknown 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 https://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.