Hi,
I think I found a (very) small bug in the MulticastDetector implementation.
If you don't call start and then stop or if you call stop twice, you will get a NullPointerException (see JUnit test below). This is no major issue (after all you can just call the methods correctly), but I think frameworks shouldn't produce NullPointerExceptions when used incorrectly.
public class MulticastDetectorTest extends TestCase {
private MBeanServer server;
private ObjectName objectName;
protected void setUp() throws Exception {
super.setUp();
server = ManagementFactory.getPlatformMBeanServer();
objectName = new ObjectName("remoting:type=MulticastDetector");
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testStopWithoutStart() throws Exception {
MulticastDetector detector = new MulticastDetector();
server.registerMBean(detector, objectName);
// don't call detector.start();
Thread.sleep(1000);
server.unregisterMBean(objectName);
detector.stop();
}
public void testCallingStopTwice() throws Exception {
MulticastDetector detector = new MulticastDetector();
server.registerMBean(detector, objectName);
detector.start();
Thread.sleep(1000);
server.unregisterMBean(objectName);
detector.stop();
detector.stop();
}
}