Merge of commit a5c552f74ed8068a7b40fa6f2b3e9a995d94e100 from branch master. The member caches are now using a ReentrantReadWriteLock as a mechanism to enforce thread safety instead of hard synchronization blocks.
More fixes for MONDRIAN-1385 and leaks. The class SoftSmartCache was managing its own ReferenceQueue (badly at that) and failed to clean itself up. This was done to circumvent the problems with JDK 1.4 compatibility. I've refactored it all so that it uses commons-collections, which is compatible with 1.1+. I have also integrated the comments from Julian following my previous fix in MonitorImpl so that the number of executions maintained in history is controlled via a mondrian property instead of being hardcoded.