Release Notes
NullPointerException in BeanUtilsBean .setProperty()
NPE in LazyDynaList
JDBCDynaClass throws class not found exception under java6
MappedPropertyDescriptor#reLoadClass() possible NPE / odd code; also swallows Throwable
BeanUtilsBean.setProperty throws IllegalArgumentException if value is null
BeanUtilsBean.setProperty does not handle some kind of nested properties
MappedPropertyDescriptor throws an exception after method reference has been garbage collected
copyProperties throws NullPointerException if an IllegalArgumentException is thrown due to a null value parameter for a primitive
FloatLocaleConverter cannot parse 0
Type in BooleanConverter: "Cna't convert value"
Avoid calling setAccessible() if not needed
Method createDynaProperty of JDBCDynaClass should first look for column label instead of column name in ResultSetMetadata object..
change visibility of method "evaluateValue" belongs to the class BeanPropertyValueEqualsPredicate to "protected".
Allow access to non public class's public methods from a public sub-classes.
Circular Reference on WeakHashMap.
BeanUtilsBean.setProperty() does not support nested map.
Unnecessary Garbage Objects in Class PropertyUtilsBean.
ConvertingWrapDynaBean hides cause exceptions.
MethodUtils.getAccessibleMethod(Method method) could not find right public method.
NPE in ArrayConverter when converting a non-quoted string with underscores to a string array.
LocaleConvertUtilsBean.convert throws NPE on null Locale when debug logging is enabled.
Fix WeakHashMap is not thread safe in MethodUtils using new FastWeakHashMap.
PropertyUtils.getPropertyType fails for DynaBeans contained within a normal bean.
Iterating by a Map' key/value pairs in BeanUtilsBean and PropertyUtilsBean.
Add plugable property name expression Resolver.
General Converter implementation improvements: New AbstractConverter which provides
a basic structure for Converter implementations and new NumberConverter implementation.
Add new generic ArrayConverter implementation.
Add new generic DateTimeConverter implementation.
Better implementation of SqlDateConverter. Modified SqlDateConverter,
SqlTimeConverter and SqlTimestampConverter to accept java.util.Date
and Calendar object instances. Added tests.
New Facade converter implementation - hide non-Converter public APIs.
Add "t/f" to BooleanConverter.
Support Mapped property inside a mapped property.
Support Indexed property inside a mapped property.
Support Arrays with multiple dimension.
Include bean class in the message of PropertyUtilsBean exceptions.
Provide better error message for "argument type mismatch".
Improved messages for unknown properties.
MethodUtils.invoke for static methods.
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).
Add lazyDynaList.
Provide a Map decorator for a DynaBean (enables DynaBean to be used with other teechnologies such as JSTL).
Implement equals() and hashCode() methods for DynaProperty.
BeanUtils's tests fail to compile under JDK 1.6
Lock in BeanUtilsBean.getInstance(
Beanutils's describe() method cannot determine reader methods for anonymous class.
Added warning about describe behaviour to the javadocs.
BeanUtilsBean's setProperty() does not convert objects using custom converters properly.
Fix javadoc - IllegalArgumentException in BeanUtils.copyProperties
when property types don't match.
Writing to a mapped property requires a setter for a map, but never uses it.
BeanUtilsBean.getArrayProperty() does not use ConvertUtils.
MappedPropertyDescriptor - replace copied code.
MappedPropertyDescriptor: Add comments re: * use of static variable safe in shared
classloader * memory leak possible on webapp undeploy.
MappedPropertyDescriptor doesn't recognize boolean property accessor.
Add test for MappedPropertyDescriptor with different types on get/set methods.
LocaleBeanUtils setProperty does not work on nested property.
Package scope implementation of a public interface for mapped property fails
(fixed by changes to MappedPropertyDescriptor associated with BEANUTILS-6)
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).
Public methods overriden in anonymous or private subclasses are not recognized by PropertyUtils.
PropertyUtilsBean's isReadable() / isWriteable() always return false for mapped properties.
PropertyUtilsBean isReadable() and isWriteable() methods do not work correctly for WrapDynaBean.
PropertyUtils.isReadable() and PropertyUtils.getProperty() not consistent.
PropertyUtilsBean.copyProperties does not catch NoSuchMethodException
PropertyUtilsBean.getIndexedProperty()'s javadoc should indicate
IndexOutOufBoundsException can be thrown rather than just
ArrayIndexOutOufBoundsException.
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...
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.
Correct getPropertyDescriptor() and setNestedProperty() methods to throw
a NestedNullException rather than just IllegalArgumentException (consistent
with the getNestedProperty() method).
Problems on indexed property with JDK 1.4.
BooleanArrayConverter: Use new AbstractArrayConverter constructors and
Convert strings to booleans by invoking a BooleanConverter rather than
hard-wiring the conversion.
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.
AbstractArrayConverter: provide ability to pass special NO_DEFAULT object as the
"defaultValue" constructor parameter.
DecimalLocaleConverter and subClasses never throw a ConversionException.
FloatLocaleConverter cannot parse negative values.
Improve ClassConverter robustness.
DateLocaleConverter does not always throw an Exception for invalid dates.
Don't try parsing values that are already Dates/Numbers in Date/Number locale Converters.
WrapDynaClass: Added comment re potential memory leak, and safety when using
shared classloader
Make WrapDynaBean Serializable.
WrapDynaBeanTestCase failing with jikes/kaffe because of static List in TestBean.
Misleading error message in ConvertingWrapDynaBean.
LazyDynaBean: don't try and instantiate properties of type Object.class.
LazyDynabean JavaDoc corrections.
LazyDynaClass can create a DynaProperty with a "null" type.
JDBCDynaClass "lowerCase" option causes problems in RowSetDynaClass and ResultSetIterator.
RowSetDynaClass fails to copy ResultSet to DynaBean with Oracle 10g JDBC driver.
Fix BeanComparator throws wrong exception and hides cause.
Deprecate the public static defaultTransformers HashMap and make it unmodifiable.
Merge Bean-Collections back into core BeanUtils and remove Bean-Collections sub-project.
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)
Improvements to maven build.
Add Implementation-Vendor-Id entry to jar's manifest.
Resolve compiler warnings: Unused imports, un-read local variables,
field hiding, empty block, improperly used statics, uncessary semi
colons, unnecessary casts.
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.
BeanMap: Fix internal variable to not include non-existant write methods.
- ported from Commons Collections.
Change MethodUtils to make getMatchingAccessibleMethod() method selection more
rational.
See href="http://commons.apache.org/beanutils/commons-beanutils-1.7.0/RELEASE-NOTES.txt
See http://commons.apache.org/beanutils/commons-beanutils-1.6.1/RELEASE-NOTES.txt
See http://commons.apache.org/beanutils/commons-beanutils-1.6/RELEASE-NOTES.txt
See http://commons.apache.org/beanutils/commons-beanutils-1.5/RELEASE-NOTES.txt
See http://commons.apache.org/beanutils/commons-beanutils-1.4.1/RELEASE-NOTES.txt
See http://commons.apache.org/beanutils/commons-beanutils-1.4/RELEASE-NOTES.txt
See http://commons.apache.org/beanutils/commons-beanutils-1.3/RELEASE-NOTES.txt
See http://commons.apache.org/beanutils/commons-beanutils-1.2/RELEASE-NOTES.txt
Version 1.1
Initial Release