The concurrent performance of overloaded method lookups (from the cache) was improved under Java 5 and later.
Fixing Java 1.2 compilation error.
Fixing a concurrency bug that could cause problem now that we are using ConcurrentHashMap for overloaded method lookups.
(Documentation typos...)
Added freemarker.template.utility.Lockable and implemented it in BeansWrapper. With this interface the configuration properties of the object wrapper can be set permanently to read-only by calling makeReadOnly(). This is crucial for VM-wide singletons.
(Code cleanup: Made some fields final.)
Added overloaded method tests that use the DefaultObjectWrapper instead of pure BeansWrapper.
(Made arrayToString reusable in other test cases.)
Fixed concurrency issues in Version class hashCode, equals, toString that could, in theory, result in wrong return values.
(Moved/renamed beans.MethodUtilities so that it's easier to find for us.)
(Fixing some random white-space/tab errors in the source code)
Added EMPTY_CLASS_ARRAY and EMPTY_OBJECT_ARRAY to Collections12.
(Fixing some JavaDoc typos.)
Added new method, static Object Configuration.getSingleton(Class singletonClass, Object[] constrArgs, Map properties). This gets or creates a VM-wide shared object (a singleton) with the given class, constructor parameters and JavaBean properties. If based on the class, constructor arguments and properties set, a matching instance already exists, it returns that, otherwise it creates a new one (that it will store so that next time it can return it). This is mostly used for creating/getting the standard ObjectWrapper-s, but can also manage singletons of user-defined classes.

The most important application of this will with the Properties-based configuration's new expression language (will be implemented later).
getSingleton: Disallowed shortening the constructor argument list during normalization
Little SingletonObjectKey.equals optimization
(getSingleton: fixing some outdated JavaDoc)
getSingletons: For safety, ensure that the property Map and the constructor argument array aren't the aliases of the getSingleton arguments
(JavaDoc fixes/additions)
Added Configuration.getSingletonBeansWrapper and getSingletonDefaultObjectWrapper convenience methods. Deprecated the static fields ObjectWrapper.DEFAULT_WRAPPER, BEANS_WRAPPER and SIMPLE_WRAPPER (they are dangerous as those ObjectWrapper instances aren't read-only, etc.).