do not fail in case of mbean registration failure
diff --git a/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionQueueProvider.java b/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionQueueProvider.java
index b5eed1f..3679138 100644
--- a/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionQueueProvider.java
+++ b/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionQueueProvider.java
@@ -33,11 +33,14 @@
import org.apache.sling.distribution.queue.DistributionQueueType;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A {@link DistributionQueueProvider} that supports monitoring via JMX.
*/
public class MonitoringDistributionQueueProvider implements DistributionQueueProvider {
+ Logger log = LoggerFactory.getLogger(MonitoringDistributionQueueProvider.class);
private final Set<String> monitoredQueues = new HashSet<String>();
@@ -86,16 +89,21 @@
}
private void monitorQueue(DistributionQueue distributionQueue) {
- if (monitoredQueues.add(distributionQueue.getName())) {
- DistributionQueueMBean mBean = new DistributionQueueMBeanImpl(distributionQueue);
+ try {
+ if (monitoredQueues.add(distributionQueue.getName())) {
+ DistributionQueueMBean mBean = new DistributionQueueMBeanImpl(distributionQueue);
- Dictionary<String, String> mBeanProps = new Hashtable<String, String>();
- mBeanProps.put("jmx.objectname", "org.apache.sling.distribution:type=queue,id="
- + ObjectName.quote(distributionQueue.getName()));
+ Dictionary<String, String> mBeanProps = new Hashtable<String, String>();
+ mBeanProps.put("jmx.objectname", "org.apache.sling.distribution:type=queue,id="
+ + ObjectName.quote(distributionQueue.getName()));
- ServiceRegistration mBeanRegistration = context.registerService(DistributionQueueMBean.class.getName(), mBean, mBeanProps);
- mBeans.add(mBeanRegistration);
+ ServiceRegistration mBeanRegistration = context.registerService(DistributionQueueMBean.class.getName(), mBean, mBeanProps);
+ mBeans.add(mBeanRegistration);
+ }
+ } catch (Throwable e) {
+ log.error("cannot register queue mbean", e);
}
+
}
}