You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sk...@apache.org on 2005/05/28 07:12:25 UTC
svn commit: r178858 -
/jakarta/commons/proper/beanutils/trunk/RELEASE-NOTES.txt
Author: skitching
Date: Fri May 27 22:12:23 2005
New Revision: 178858
URL: http://svn.apache.org/viewcvs?rev=178858&view=rev
Log:
Start on release notes for 1.7.1 release.
Modified:
jakarta/commons/proper/beanutils/trunk/RELEASE-NOTES.txt
Modified: jakarta/commons/proper/beanutils/trunk/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/beanutils/trunk/RELEASE-NOTES.txt?rev=178858&r1=178857&r2=178858&view=diff
==============================================================================
--- jakarta/commons/proper/beanutils/trunk/RELEASE-NOTES.txt (original)
+++ jakarta/commons/proper/beanutils/trunk/RELEASE-NOTES.txt Fri May 27 22:12:23 2005
@@ -1,6 +1,6 @@
$Id$
- Copyright 2001-2004 The Apache Software Foundation
+ Copyright 2001-2005 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -16,75 +16,108 @@
Commons BeanUtils Package
- Version 1.7.0
+ Version 1.7.1
Release Notes
INTRODUCTION:
============
-Beanutils 1.7.0 is a service release aimed at providing compatibility
-with both the commons collections 2.x series of releases
-and the commons collections 3.x series of releases
+Beanutils 1.7.1 is a service release, containing just bugfixes for the
+1.7.0 release.
-CHANGES:
-========
-
-Upgraded License To Apache License 2.0
---------------------------------------
-Beanutils is now released under the Apache License 2.0.
-See http://www.apache.org/licenses/LICENSE-2.0.
-
-Beanification
--------------
-Creation of objects to back the static utility classes. These object are
-per-context-classloader pseudo-singletons. Each web or enterprise application
-is therefore isolated from changes made to the state of others suing the
-static facades. Greater flexibility of implementation is encourage since users
-can subclass and then set their own implementations. Calls to the static facades
-will then be passed to that implementation.
+IMPORTANT NOTES:
+================
-Removal Of Commons Collections Dependency
+Potential Memory Leak On Component Unload
-----------------------------------------
-The commons collections dependency is in the process of being removed
-from core beanutils. This will reduce the number of dependencies for
-the core beanutils and also will allow beanutils to used with both
-collection 2.x and collection 3.x releases.
-
-Documentation Improvements
---------------------------
-Many thanks to all those kind souls who've contributed documentation :)
+The "beanification" which was done in release 1.7 included the implementation of
+per-context-classpath pseudo-singletons, which are intended to effectively isolate
+different components in a container (eg webapps in a servlet engine) which
+use the static methods available on the BeanUtils, PropertyUtils and ConvertUtils
+classes, even when the commons-beanutils library is deployed in a shared classloader.
+
+Unfortunately this code can produce memory leaks when a component (eg a webapp)
+is undeployed; because the beanutils classes in the shared classloader hold
+references to classes loaded via the component classloader the component classloader
+(and all the classes it references) cannot be garbage collected. Note that this
+problem can *not* be completely solved by the use of weak references.
+
+This problem is only triggered when:
+ * a subclass of Converter or LocaleConverter is created, the code is loaded via
+ a component webloader, and the converter object is then "registered", or
+ * a subclass of BeanUtilsBean is created and registered as the default via
+ BeanUtilsBean.setInstance(theSubclass)
+ * as above for LocaleBeanUtilsBean
-ENHANCEMENTS:
-=============
+If your componentn does one of the above, then on component unload you must
+clear your change, eg by calling ConvertUtils.deregister() or
+BeanUtilsBean.setInstance(null).
+
+See Bugzilla #33931
+
+Incompatible change in behaviour of setNestedProperty
+-----------------------------------------------------
+
+This change makes method PropertyUtilsBean.setNestedProperty (and
+therefore method PropertyUtils.setNestedProperty) work very slightly
+differently from the behaviour in version 1.6.1. This issue only
+occurs when one of the objects involved implements the Map interface.
+
+* in very early releases of beanutils, map behaviour was not supported at all.
+* r128486 (2001-08-22) added support for classes implementing Map.
+ However this behaviour was triggered only if "(" was in the name string,eg
+ "foo.bar(baz)". In other words, this change was backwards-compatible. Format
+ "a.b" always meant accessing a getB or setB method and never meant using a map
+ get("b") or set("b") method.
+* r128586 (2002-07-16) deliberately changed the interpretation of
+ a.b to mean a.get("b") if a was a map, in order to be compatible with EL and
+ JSP2.0. This change was part of release 1.5 and of course broke backwards
+ compatibility with 1.4.
+* r128642 (2002-11-26) introduced a change that made setNestedProperty check
+ for an explicit setter first before using the map, as a
+ response to bugzilla#14440. This partially restored compatibility with 1.4 for
+ setNestedProperty, but forgot to fix getNestedProperty. And it wasn't 100%
+ compatible with 1.5 as the map would never get updated if a property was
+ available. This was part of release 1.6, 1.6.1 and release 1.7.
+
+Having getNestedProperty and setNestedProperty behave differently is clearly not
+acceptable. Release 1.7.1 therefore has reverted setNestedProperty to the 1.5
+behaviour, ie only ever calling a.set(b), never a.setB() when a is a Map.
+
+This change can potentially break existing code.
+
+If you have a class X that implements Map, but you want explicit setters and
+getters on that class to be used in preference to the Map.set and Map.get
+methods, then you must now override the Map.get and Map.set methods on class X
+in order to implement this behaviour.
+
+
+See Bugzilla #23815
+
+DecimalLocaleConverter Now Throws ConversionException
+-----------------------------------------------------
+
+In versions of commons-beanutils prior to 1.7.0, a DecimalLocaleConverter
+object created without specifying any default value would throw a
+ConversionException if invalid data was passed to its convert method.
+
+A bug was accidentally introduced into the 1.7.0 release which meant that
+DecimalLocaleConverter would return null on invalid data instead of throwing
+an exception in this case. The javadoc for the class still specified the original
+(and correct) behaviour.
+
+Version 1.7.1 restores the correct behaviour. As a result, code written against
+the 1.7.0 release should be checked to make sure that it handles ConversionException
+correctly when invalid data is passed to the convert method.
-BeanAccessLanguageException & NestNullException
------------------------------------------------
-Added new subclasses of RuntimeException so that bean access language
-exceptions can be trapped by users.
-
-BeanComparator
---------------
-Added no-argument constructor for use in bean-centric environments.
-
-ConvertUtilsBean
-----------------
-Added a File converter and registered the File and URL converters by default
+CHANGES:
+========
+
+ENHANCEMENTS:
+=============
BUG REPORTS ADDRESSED:
=====================
- #14848 Converted localized versions of beanutils and convert utils to use
- delegated singletons. Now instances with the functionality in these
- classes can be created.
- Added public constructors for the utility objects (BeanUtilsBean,
- PropertyUtilsBean and ConvertUtilsBean). Add public accessor properties
- for the ConvertUtilsBean and PropertyUtilsBean instances used by a
- BeanUtilsBean. This allows BeanUtilsBean objects to be created with
- independent registered converters and independent caches. Also added
- test cases.
- #17663 Made BeanUtils.getArrayProperty conversions use ConvertUtils
- (rather than just toString)
- #18918 This bug prevented converters from being correctly deregistered
- #19850 Now cloneBean will deal successfully with DynaBeans.
-
+ #XXXXX description
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org