Update of /var/cvs/src/org/mmbase/cache
In directory james.mmbase.org:/tmp/cvs-serv14793
Modified Files:
CacheManager.java
Log Message:
MBeans were not correctly unregistered, resulting in some warning in log during
shutdownn. This fixes it.
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/cache
Index: CacheManager.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/cache/CacheManager.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- CacheManager.java 28 Jul 2008 16:23:37 -0000 1.34
+++ CacheManager.java 28 Jul 2008 17:16:31 -0000 1.35
@@ -27,7 +27,7 @@
* Cache manager manages the static methods of [EMAIL PROTECTED] Cache}. If
you prefer you can call them on this in stead.
*
* @since MMBase-1.8
- * @version $Id: CacheManager.java,v 1.34 2008/07/28 16:23:37 michiel Exp $
+ * @version $Id: CacheManager.java,v 1.35 2008/07/28 17:16:31 michiel Exp $
*/
public abstract class CacheManager {
@@ -120,6 +120,7 @@
return putCache(cache, true);
}
+ private static String machineName = null;
/**
* @since MMBase-1.9
*/
@@ -128,12 +129,19 @@
try {
props.put("type", "CacheMBean");
org.mmbase.util.transformers.CharTransformer identifier = new
org.mmbase.util.transformers.Identifier();
+ if (machineName == null) {
org.mmbase.module.core.MMBase mmb =
org.mmbase.module.Module.getModule(org.mmbase.module.core.MMBase.class, false);
- if (mmb != null) {
- props.put("mmb",
org.mmbase.module.core.MMBase.getMMBase().getMachineName());
+ machineName =
org.mmbase.module.core.MMBase.getMMBase().getMachineName();
+ }
+ if (machineName != null) {
+ props.put("mmb", machineName);
} else {
}
+ if (cache != null) {
props.put("name", identifier.transform(cache.getName()));
+ } else {
+ props.put("name", "*");
+ }
return new ObjectName("org.mmbase.cache", props);
} catch (MalformedObjectNameException mfone) {
log.warn("" + props + " " + mfone);
@@ -284,17 +292,24 @@
* @since MMBase-1.8.1
*/
public static void shutdown() {
- log.info("Clearing and unregistering all caches");
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+ log.info("Clearing and unregistering all caches");
+ log.debug(mbs.queryNames(getObjectName(null), null));
for(Cache<?,?> cache : caches.values()) {
cache.clear();
ObjectName name = getObjectName(cache);
+ if (mbs.isRegistered(name)) {
try {
mbs.unregisterMBean(name);
} catch (JMException jmo) {
- log.warn("" + name + " " + jmo.getClass() + " " +
jmo.getMessage());
+ log.warn("" + name + " " + jmo.getClass() + " " +
jmo.getMessage() + " " + mbs.queryNames(null, null));
+ }
+ }
}
+ if(mbs.queryNames(getObjectName(null), null).size() > 0) {
+ log.warn("Didn't unregister all caches" +
mbs.queryNames(getObjectName(null), null));
}
+ machineName = null;
caches.clear();
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs