Apache Commons logo Commons BeanUtils

Release Notes

Release History

Version Date Description
1.9.4 2019-06-12 The primary reason for this release is a bugfix for CVE-2014-0114. More specifically, our goal with BEANUTILS-520 is to set the default behaviour of the BeanUtilsBean to not allow class level access. The goal in doing this now is to bring 1.9.X into alignment with the same behaviour of the 2.X version line in regards to security. If one would like to opt out of the default behaviour, one could follow the example set out in the test class available in src/test/java/org/apache/commons/beanutils/bugs/Jira520TestCase.java.
1.9.3 2016-09-21 Bug fix release, now builds with Java 8
1.9.2 2014-05-29 Added a new BeanIntrospector for addressing a potential class loader vulnerability
1.9.1 2014-01-11 Bug fix for 1.9.0
1.9.0 2013-12-11 Upgrade to Java 5 including generics where possible
1.8.3 2010-03-28 Bug fix for 1.8.2
1.8.2 2009-11-13 Bug fix for 1.8.1
1.8.1 2009-10-20 Bug fixes for 1.8.0
1.8.0 2008-09-01 Converter improvements, Plugable expression Resolver and bug fixes for 1.7.0
1.8.0-BETA 2007-08-04 Trial Beta release
1.7.0 2004-08-02  
1.6.1 2003-02-18  
1.6 2003-01-21  
1.5 2002-10-23  
1.4.1 2002-08-28  
1.4 2002-08-13  
1.3 2002-04-29  
1.2 2001-12-24  
1.1 2001-09-22  
1.0 2001-07-14 Initial Release

Release 1.9.4 – 2019-06-12

Type Changes By
Fix BeanUtils mitigation of CVE-2014-0114. (CVE-2019-10086 for commons-beanutils). Fixes BEANUTILS-520. Thanks to Melloware. chtompki

Release 1.9.3 – 2016-09-21

Type Changes By
Update Update dependency from JUnit 3.8.1 to 4.12. Fixes BEANUTILS-433. Thanks to Benedikt Ritter, Gary Gregory. ggregory
Fix Indexed List Setters no longer work. Fixes BEANUTILS-465. Thanks to Daniel Atallah. oheger
Update Update commons-logging from 1.1.1 to 1.2. Fixes BEANUTILS-469. Thanks to Gary Gregory. ggregory
Fix Precision lost when converting BigDecimal. Fixes BEANUTILS-470. Thanks to Tommy Tynjä. oheger
Update FluentPropertyBeanIntrospector does not use the same naming algorithm as DefaultBeanIntrospector. Fixes BEANUTILS-474. Thanks to Michael Grove. ggregory
Fix Changed log level of warnings from FluentPropertyBeanIntrospector; exceptions are no longer logged with level WARN. Fixes BEANUTILS-477. oheger
Update Update commons-collections from 3.2.1 to 3.2.2. (CVE-2015-4852). Fixes BEANUTILS-482. Thanks to Gary Gregory. ggregory
Update Update Java requirement from Java 5 to 6. Fixes BEANUTILS-490. Thanks to Gary Gregory. ggregory
Update IndexedPropertyDescriptor not supported for List in Java 8. Fixes BEANUTILS-492. Thanks to Stian Soiland-Reyes. stain
Fix Exception when setting indexed properties: "Default conversion to ArrayList failed". Fixes BEANUTILS-493. Thanks to Bernhard Seebass. stain
Update DateConverterTestBase fails on M/d/yy in Java 9. Fixes BEANUTILS-495. Thanks to Stian Soiland-Reyes. stain
Update testGetDescriptorInvalidBoolean fails on Java 9. Fixes BEANUTILS-496. Thanks to Stian Soiland-Reyes. stain

Release 1.9.2 – 2014-05-29

Type Changes By
Add Class loader vulnerability in DefaultResolver (). Fixes BEANUTILS-463. oheger
Fix BaseLocaleConverter.checkConversionResult() fails with ConversionException when result is null when it should not. Fixes BEANUTILS-458. Thanks to Manuel Dominguez Sarmiento. oheger

Release 1.9.1 – 2014-01-11

Type Changes By
Fix Write methods for PropertyDescriptors created during custom introspection are lost. Fixes BEANUTILS-456. oheger

Release 1.9.0 – 2013-12-11

Type Changes By
Add WrapDynaBeans always use the default PropertyUtilsBean instance. Fixes BEANUTILS-455. oheger
Update BeanUtilsBean.copyProperties() throws conversion exception for null Date. Fixes BEANUTILS-454. oheger
Update Add generics. Fixes BEANUTILS-452. oheger
Update LocaleConverters do not take the target type into account. Fixes BEANUTILS-449. oheger
Update LocaleConverters do not check their default value. Fixes BEANUTILS-448. oheger
Update LazyDynaList.toArray() is not conform to the contract defined by the Collection interface. Fixes BEANUTILS-447. oheger
Update Some of the converters ignore the passed in target type. Fixes BEANUTILS-446. oheger
Update Converters can return an invalid result object if a default value is set. Fixes BEANUTILS-445. oheger
Update Replace UnmodifiableSet.decorate with Collections.unModifiableSet. Fixes BEANUTILS-441. Thanks to Samir Kerroumi. oheger
Update Replace package.html with package-info.java. Fixes BEANUTILS-436. britter
Update Add @Deprecated and @Override Annotations. Fixes BEANUTILS-438. britter
Update Replace Date and Revision SVN keywords with Id. Fixes BEANUTILS-437. britter
Update Remove @author tags and move missing authors to pom.xml. Fixes BEANUTILS-431. britter
Update Switch to Java 1.5. Fixes BEANUTILS-432. britter
Add Provide a BeanIntrospector implementation which supports properties in a fluent API. Fixes BEANUTILS-428. oheger
Add Support customization of introspection mechanism. Fixes BEANUTILS-425. oheger
Fix BeanUtilsBean.setProperty throws IllegalArgumentException if getter of nested property returns null. Fixes BEANUTILS-411. Thanks to Marcus Zander. britter
Update Delete trailing white spaces and white spaces on empty lines from all files. Fixes BEANUTILS-429. britter
Update Configure Checkstyle to check for trailing white spaces and white spaces on empty lines. Fixes BEANUTILS-427. britter
Fix MethodUtils.invokeMethod() throws NullPointerException when args==null. Fixes BEANUTILS-408. britter
Fix ConstructorUtils.invokeConstructor(Class klass, Object arg) throws NullPointerException when arg==null. Fixes BEANUTILS-426. britter
Fix BeanMap methods should initialize the root cause of exceptions that are thrown when running on JDK 1.4+. Fixes BEANUTILS-380. Thanks to Brendan Nolan. niallp
Fix Remove copied Collection classes. Fixes BEANUTILS-379. niallp
Fix BeanMap does not work in osgi (fixed by BEANUTILS-379). Fixes BEANUTILS-378. Thanks to Christian Schneider. niallp
Fix MethodUtils getMatchingAccessibleMethod() does not correctly handle inheritance and method overloading. Fixes BEANUTILS-381. Thanks to Todd Nine. niallp

Release 1.8.3 – 2010-03-28

Type Changes By
Fix MethodUtils is not thread safe because WeakFastHashMap which uses WeakHashMap is not thread-safe (duplicate of BEANUTILS-318 which was not fixed properly in BeanUtils 1.8.0). Fixes BEANUTILS-373. Thanks to Andrew Sunde. niallp
Fix Add constructors which have useColumnLabel parameter to ResultSetDynaClass and RowSetDynaClass. Fixes BEANUTILS-371. Thanks to David Tonhofer. niallp

Release 1.8.2 – 2009-11-13

Type Changes By
Fix NullPointerException in BeanUtilsBean .setProperty(). Fixes BEANUTILS-368. Thanks to Peter Fassev. niallp

Release 1.8.1 – 2009-10-20

Type Changes By
Fix NPE in LazyDynaList. Fixes BEANUTILS-300. Thanks to Henri and Sebb. niallp
Fix JDBCDynaClass throws class not found exception under java6. Fixes BEANUTILS-327. Thanks to Sascha Riemann. niallp
Fix MappedPropertyDescriptor#reLoadClass() possible NPE / odd code; also swallows Throwable. Fixes BEANUTILS-336. Thanks to Sebb. niallp
Fix BeanUtilsBean.setProperty throws IllegalArgumentException if value is null. Fixes BEANUTILS-339. Thanks to Alan Escreet. niallp
Fix BeanUtilsBean.setProperty does not handle some kind of nested properties. Fixes BEANUTILS-345. Thanks to Simone Riccucci. niallp
Fix MappedPropertyDescriptor throws an exception after method reference has been garbage collected. Fixes BEANUTILS-347. Thanks to Eickvonder. niallp
Fix copyProperties throws NullPointerException if an IllegalArgumentException is thrown due to a null value parameter for a primitive. Fixes BEANUTILS-349. Thanks to Eivind Tagseth. niallp
Fix FloatLocaleConverter cannot parse 0. Fixes BEANUTILS-351. Thanks to Lucian Chirita. niallp
Fix Type in BooleanConverter: "Cna't convert value". Fixes BEANUTILS-354. Thanks to Anders Wallgren. niallp
Update Avoid calling setAccessible() if not needed. Fixes BEANUTILS-333. Thanks to Lukasz Lenart. niallp
Update Method createDynaProperty of JDBCDynaClass should first look for column label instead of column name in ResultSetMetadata object.. Fixes BEANUTILS-344. Thanks to Viral. niallp
Update change visibility of method "evaluateValue" belongs to the class BeanPropertyValueEqualsPredicate to "protected". Fixes BEANUTILS-350. Thanks to rodrigo hernandez. niallp

Release 1.8.0 – 2008-09-01

Type Changes By
Fix Allow access to non public class's public methods from a public sub-classes. Fixes BEANUTILS-265. Thanks to Tom Schindl and Romain Muller. niallp
Fix Circular Reference on WeakHashMap. Fixes BEANUTILS-291. Thanks to Clebert Suconic. niallp
Fix BeanUtilsBean.setProperty() does not support nested map. Fixes BEANUTILS-294. Thanks to Stephen Leung. niallp
Fix Unnecessary Garbage Objects in Class PropertyUtilsBean. Fixes BEANUTILS-295. Thanks to Stefan Wohlgemuth. bayard
Fix ConvertingWrapDynaBean hides cause exceptions. Fixes BEANUTILS-297. Thanks to Alex Tkachev. niallp
Fix MethodUtils.getAccessibleMethod(Method method) could not find right public method. Fixes BEANUTILS-298. Thanks to Roman Mukhin. niallp
Fix NPE in ArrayConverter when converting a non-quoted string with underscores to a string array. Fixes BEANUTILS-302. Thanks to Martin Bartlett. niallp
Fix LocaleConvertUtilsBean.convert throws NPE on null Locale when debug logging is enabled. Fixes BEANUTILS-306. Thanks to Lucian Chirita. niallp
Fix Fix WeakHashMap is not thread safe in MethodUtils using new FastWeakHashMap. Fixes BEANUTILS-318. Thanks to Sylvain Legault. niallp
Fix PropertyUtils.getPropertyType fails for DynaBeans contained within a normal bean. Fixes BEANUTILS-319. Thanks to Erik Erskine. niallp
Fix Iterating by a Map' key/value pairs in BeanUtilsBean and PropertyUtilsBean. Fixes BEANUTILS-326. Thanks to Vladimir Orlov. niallp

Release 1.8.0-BETA – 2007-08-04

Type Changes By
Add Add plugable property name expression Resolver. Fixes BEANUTILS-259. niallp
Update General Converter implementation improvements: New AbstractConverter which provides a basic structure for Converter implementations and new NumberConverter implementation. Fixes BEANUTILS-258. niallp
Add Add new generic ArrayConverter implementation. Fixes BEANUTILS-242. niallp
Add Add new generic DateTimeConverter implementation. Fixes BEANUTILS-255. niallp
Update Better implementation of SqlDateConverter. Modified SqlDateConverter, SqlTimeConverter and SqlTimestampConverter to accept java.util.Date and Calendar object instances. Added tests. Fixes BEANUTILS-239. Thanks to Rafael Afonso. vgritsenko
Add New Facade converter implementation - hide non-Converter public APIs. Fixes BEANUTILS-286. niallp
Update Add "t/f" to BooleanConverter. Fixes BEANUTILS-229. skitching
Update Support Mapped property inside a mapped property. Fixes BEANUTILS-43. Thanks to Firepica and Thomas Jacob. niallp
Update Support Indexed property inside a mapped property. Fixes BEANUTILS-113. Thanks to Firepica and Ludwig Wensauer. niallp
Update Support Arrays with multiple dimension. Fixes BEANUTILS-247. Thanks to Christian Poitras, Thomas Jacob and scott sadlo. niallp
Update Include bean class in the message of PropertyUtilsBean exceptions. Fixes BEANUTILS-207. Thanks to Erik Meade. bayard
Update Provide better error message for "argument type mismatch". Fixes BEANUTILS-224. Thanks to Ralf Hauser. bayard
Update Improved messages for unknown properties. Fixes BEANUTILS-30. Thanks to Barry Kaplan. bayard
Update MethodUtils.invoke for static methods. Fixes BEANUTILS-193. Thanks to Nestor Boscan. bayard
Update Log or throw exception in PropertyUtilsBean. Added mechanism to initialize the "cause" on an Exception using reflection for JDK 1.4+ (copied from Commons HttpClient). Fixes BEANUTILS-266. Thanks to Brian Ewins and Commons HttpClient. niallp
Add Add lazyDynaList. Thanks to Vic Cekvenich. niallp
Add Provide a Map decorator for a DynaBean (enables DynaBean to be used with other teechnologies such as JSTL). Fixes BEANUTILS-185. Thanks to Gabriel Belingueres. niallp
Update Implement equals() and hashCode() methods for DynaProperty. Fixes BEANUTILS-233. Thanks to Russell. niallp
Fix BeanUtils's tests fail to compile under JDK 1.6. Fixes BEANUTILS-243. Thanks to Henri Yandell. niallp
Fix Lock in BeanUtilsBean.getInstance(. Fixes BEANUTILS-49. Thanks to Jesper Richter-Reichhelm. niallp
Fix Beanutils's describe() method cannot determine reader methods for anonymous class. Fixes BEANUTILS-157. Thanks to Thorbjorn Ravn Andersen. niallp
Fix Added warning about describe behaviour to the javadocs. Fixes BEANUTILS-158. rdonkin
Fix BeanUtilsBean's setProperty() does not convert objects using custom converters properly. Fixes BEANUTILS-249. Thanks to Brad. niallp
Fix Fix javadoc - IllegalArgumentException in BeanUtils.copyProperties when property types don't match. Fixes BEANUTILS-17. Thanks to Matthew Sgarlata and Corey Scott. niallp
Fix Writing to a mapped property requires a setter for a map, but never uses it. Fixes BEANUTILS-68. Thanks to Dmitry Platonoff. niallp
Fix BeanUtilsBean.getArrayProperty() does not use ConvertUtils. Fixes BEANUTILS-110. Thanks to Etienne Bernard. niallp
Fix MappedPropertyDescriptor - replace copied code. Fixes BEANUTILS-6. Thanks to Sam Ruby. niallp
Fix MappedPropertyDescriptor: Add comments re: * use of static variable safe in shared classloader * memory leak possible on webapp undeploy. skitching
Fix MappedPropertyDescriptor doesn't recognize boolean property accessor. Fixes BEANUTILS-69. Thanks to Chris Audley. niallp
Fix Add test for MappedPropertyDescriptor with different types on get/set methods. Fixes BEANUTILS-163. niallp
Fix LocaleBeanUtils setProperty does not work on nested property. Fixes BEANUTILS-140. Thanks to Marco La Porta. niallp
Fix Package scope implementation of a public interface for mapped property fails (fixed by changes to MappedPropertyDescriptor associated with BEANUTILS-6). Fixes BEANUTILS-87. Thanks to YOKOTA Takehiko. niallp
Fix PropertyUtils incosistency - can't use "dot" in mapped properties for setProperty or getPropertyDescriptor (fixed by the changes for BEANUTILS-259 Plugable Property Name Expression Resolver). Fixes BEANUTILS-33. Thanks to Eoin Curran. niallp
Fix Public methods overriden in anonymous or private subclasses are not recognized by PropertyUtils. Fixes BEANUTILS-273. Thanks to Marcelo Liberato. niallp
Fix PropertyUtilsBean's isReadable() / isWriteable() always return false for mapped properties. Fixes BEANUTILS-88. Thanks to Chuck Daniels. niallp
Fix PropertyUtilsBean isReadable() and isWriteable() methods do not work correctly for WrapDynaBean. Fixes BEANUTILS-61. Thanks to Brian Ewins. niallp
Fix PropertyUtils.isReadable() and PropertyUtils.getProperty() not consistent. Fixes BEANUTILS-18. Thanks to Maarten Coene. niallp
Fix PropertyUtilsBean.copyProperties does not catch NoSuchMethodException. Fixes BEANUTILS-92. Thanks to Will Pugh. bayard
Fix PropertyUtilsBean.getIndexedProperty()'s javadoc should indicate IndexOutOufBoundsException can be thrown rather than just ArrayIndexOutOufBoundsException. Fixes BEANUTILS-256. Thanks to Torsten Feig. niallp
Fix Create new methods getPropertyOfMapBean and setPropertyOfMapBean that the existing setNestedProperty and getNestedProperty methods now call when they discover the bean they are accessing implements Map. This makes it much easier for users to subclass and customise this behaviour of PropertyUtilsBean, eg in order to restore pre-1.5 behaviour. This patch also causes an exception to be thrown when the propertyName passed to getPropertyOfMapBean or setPropertyOfMapBean has MAPPED_DELIM or INDEXED_DELIM chars in it. This never worked as expected before (the whole string was treated literally as the propertyName), so throwing an exception here should not break any existing code. It should be of help to future developers who make this mistake though... Fixes BEANUTILS-162. skitching
Fix Ignore simple properties on java.util.Map objects - Map methods are always used on a Map object. Reverts BEANUTILS-144. See BEANUTILS-162 for discussion. skitching
Fix Correct getPropertyDescriptor() and setNestedProperty() methods to throw a NestedNullException rather than just IllegalArgumentException (consistent with the getNestedProperty() method). Fixes BEANUTILS-262. niallp
Fix Problems on indexed property with JDK 1.4. Fixes BEANUTILS-97. niallp
Update BooleanArrayConverter: Use new AbstractArrayConverter constructors and Convert strings to booleans by invoking a BooleanConverter rather than hard-wiring the conversion. skitching
Update BooleanConverter: Add facility for user to override the default set of true and false string definitions and provide ability to pass special NO_DEFAULT object as the "defaultValue" constructor parameter. Thanks to Eric Rizzo. skitching
Update AbstractArrayConverter: provide ability to pass special NO_DEFAULT object as the "defaultValue" constructor parameter. skitching
Fix DecimalLocaleConverter and subClasses never throw a ConversionException. Fixes BEANUTILS-78. Thanks to Stefan Lotscher. niallp
Fix FloatLocaleConverter cannot parse negative values. Fixes BEANUTILS-44. Thanks to Paul Jenkins. niallp
Fix Improve ClassConverter robustness. Fixes BEANUTILS-263. Thanks to Alex Albu. niallp
Fix DateLocaleConverter does not always throw an Exception for invalid dates. Fixes BEANUTILS-271. Thanks to Nico Hoogervorst. niallp
Fix Don't try parsing values that are already Dates/Numbers in Date/Number locale Converters. Fixes BEANUTILS-288. niallp
Fix WrapDynaClass: Added comment re potential memory leak, and safety when using shared classloader skitching
Fix Make WrapDynaBean Serializable. niallp
Fix WrapDynaBeanTestCase failing with jikes/kaffe because of static List in TestBean. Fixes BEANUTILS-36. Thanks to Jack. niallp
Fix Misleading error message in ConvertingWrapDynaBean. Fixes BEANUTILS-23. Thanks to Aslak Hellesoy. niallp
Fix LazyDynaBean: don't try and instantiate properties of type Object.class. Fixes BEANUTILS-24. Thanks to Roi Ares. niallp
Fix LazyDynabean JavaDoc corrections. Fixes BEANUTILS-133. Thanks to Masoud Omidvar. niallp
Fix LazyDynaClass can create a DynaProperty with a "null" type. Fixes BEANUTILS-250. niallp
Fix JDBCDynaClass "lowerCase" option causes problems in RowSetDynaClass and ResultSetIterator. Fixes BEANUTILS-289. niallp
Fix RowSetDynaClass fails to copy ResultSet to DynaBean with Oracle 10g JDBC driver. Fixes BEANUTILS-142. Thanks to Li Zhang. niallp
Fix Fix BeanComparator throws wrong exception and hides cause. Fixes BEANUTILS-241. Thanks to Chris Hyzer. bayard
Fix Deprecate the public static defaultTransformers HashMap and make it unmodifiable. Fixes BEANUTILS-112. Thanks to Simon Kitching. niallp
Update Merge Bean-Collections back into core BeanUtils and remove Bean-Collections sub-project. Fixes BEANUTILS-290. niallp
Fix Fixi the build to include all the tests and change the build.properties.sample so it's easier to use for the default maven user (ie: it looks by default in the .maven repository). Fixes BEANUTILS-287. bayard
Fix Improvements to maven build. Fixes BEANUTILS-217. Thanks to Carlos Sanchez. niallp
Fix Add Implementation-Vendor-Id entry to jar's manifest. Fixes BEANUTILS-54. Thanks to Pascal Grange. niallp
Fix Resolve compiler warnings: Unused imports, un-read local variables, field hiding, empty block, improperly used statics, uncessary semi colons, unnecessary casts. Fixes BEANUTILS-121. Thanks to Chris Tilden. bayard
Fix Replace use of static Log objects with instance or local variables. It isn't safe to use static Log objects in code that might be deployed via a shared classloader as they will bind to the Log object from the context classloader in use when the first use happens. skitching
Fix BeanMap: Fix internal variable to not include non-existant write methods. - ported from Commons Collections. Fixes COLLECTIONS-22. Thanks to Dimiter Dimitrov. scolebourne
Update Change MethodUtils to make getMatchingAccessibleMethod() method selection more rational. Thanks to Steve Cohen. rdonkin

Release 1.7.0 – 2004-08-02

Type Changes By
Update See href="http://commons.apache.org/beanutils/commons-beanutils-1.7.0/RELEASE-NOTES.txt

Release 1.6.1 – 2003-02-18

Type Changes By
Update See http://commons.apache.org/beanutils/commons-beanutils-1.6.1/RELEASE-NOTES.txt

Release 1.6 – 2003-01-21

Type Changes By
Update See http://commons.apache.org/beanutils/commons-beanutils-1.6/RELEASE-NOTES.txt

Release 1.5 – 2002-10-23

Type Changes By
Update See http://commons.apache.org/beanutils/commons-beanutils-1.5/RELEASE-NOTES.txt

Release 1.4.1 – 2002-08-28

Type Changes By
Fix See http://commons.apache.org/beanutils/commons-beanutils-1.4.1/RELEASE-NOTES.txt

Release 1.4 – 2002-08-13

Type Changes By
Update See http://commons.apache.org/beanutils/commons-beanutils-1.4/RELEASE-NOTES.txt

Release 1.3 – 2002-04-29

Type Changes By
Update See http://commons.apache.org/beanutils/commons-beanutils-1.3/RELEASE-NOTES.txt

Release 1.2 – 2001-12-24

Type Changes By
Update See http://commons.apache.org/beanutils/commons-beanutils-1.2/RELEASE-NOTES.txt

Release 1.1 – 2001-09-22

Type Changes By
Update Version 1.1

Release 1.0 – 2001-07-14

Type Changes By
Add Initial Release