fixed NotificationListenerBean assertion in constructor (SPR-8091)
This commit is contained in:
parent
c2eafdb2fb
commit
9f3e333084
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
* Copyright 2002-2011 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -20,6 +20,7 @@ import javax.management.NotificationListener;
|
|||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.jmx.support.NotificationListenerHolder;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* Helper class that aggregates a {@link javax.management.NotificationListener},
|
||||
|
|
@ -55,6 +56,7 @@ public class NotificationListenerBean extends NotificationListenerHolder impleme
|
|||
* @param notificationListener the encapsulated listener
|
||||
*/
|
||||
public NotificationListenerBean(NotificationListener notificationListener) {
|
||||
Assert.notNull(notificationListener, "NotificationListener must not be null");
|
||||
setNotificationListener(notificationListener);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,19 +75,13 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
try {
|
||||
exporter.setNotificationListenerMappings(listeners);
|
||||
fail("Must have thrown a ClassCastException when registering a non-NotificationListener instance as a NotificationListener.");
|
||||
} catch (ClassCastException expected) {
|
||||
}
|
||||
catch (ClassCastException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
// Note that @Ignore has no effect for JUnit 3.8 TestCase-based tests,
|
||||
// but we leave it here to allow developers to easily search for ignored
|
||||
// tests. As a work-around, the method is prefixed with "ignore"
|
||||
// instead of "test" as required by JUnit 3.x.
|
||||
//
|
||||
// See: https://jira.springsource.org/browse/SPR-8091
|
||||
@Ignore("[SPR-8091] NotificationListenerBean constructor does not throw the expected IllegalArgumentException")
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
public void ignoreTestRegisterNullNotificationListenerType() throws Exception {
|
||||
public void testRegisterNullNotificationListenerType() throws Exception {
|
||||
Map listeners = new HashMap();
|
||||
// put null in as a value...
|
||||
listeners.put("*", null);
|
||||
|
|
@ -95,7 +89,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
try {
|
||||
exporter.setNotificationListenerMappings(listeners);
|
||||
fail("Must have thrown an IllegalArgumentException when registering a null instance as a NotificationListener.");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -116,7 +111,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
try {
|
||||
exporter.afterPropertiesSet();
|
||||
fail("Must have thrown an MBeanExportException when registering a NotificationListener on a non-existent MBean.");
|
||||
} catch (MBeanExportException expected) {
|
||||
}
|
||||
catch (MBeanExportException expected) {
|
||||
assertTrue(expected.contains(InstanceNotFoundException.class));
|
||||
}
|
||||
}
|
||||
|
|
@ -473,7 +469,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
MBeanExporter exporter = new MBeanExporter();
|
||||
exporter.setAutodetectMode(-1);
|
||||
fail("Must have failed when supplying an invalid negative out-of-range autodetect mode");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -482,7 +479,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
MBeanExporter exporter = new MBeanExporter();
|
||||
exporter.setAutodetectMode(5);
|
||||
fail("Must have failed when supplying an invalid positive out-of-range autodetect mode");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -491,7 +489,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
MBeanExporter exporter = new MBeanExporter();
|
||||
exporter.setAutodetectModeName(null);
|
||||
fail("Must have failed when supplying a null autodetect mode name");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -500,7 +499,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
MBeanExporter exporter = new MBeanExporter();
|
||||
exporter.setAutodetectModeName("");
|
||||
fail("Must have failed when supplying an empty autodetect mode name");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -509,7 +509,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
MBeanExporter exporter = new MBeanExporter();
|
||||
exporter.setAutodetectModeName(" \t");
|
||||
fail("Must have failed when supplying a whitespace-only autodetect mode name");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -518,7 +519,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
MBeanExporter exporter = new MBeanExporter();
|
||||
exporter.setAutodetectModeName("That Hansel is... *sssooo* hot right now!");
|
||||
fail("Must have failed when supplying a whitespace-only autodetect mode name");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
}
|
||||
catch (IllegalArgumentException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -530,7 +532,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
exporter.setBeans(beans);
|
||||
exporter.afterPropertiesSet();
|
||||
fail("Expecting exception because MBeanExporter is not running in a BeanFactory and was passed bean name to (lookup and then) export");
|
||||
} catch (MBeanExportException expected) {
|
||||
}
|
||||
catch (MBeanExportException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -540,7 +543,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
exporter.setAutodetectMode(MBeanExporter.AUTODETECT_ALL);
|
||||
exporter.afterPropertiesSet();
|
||||
fail("Expecting exception because MBeanExporter is not running in a BeanFactory and was configured to autodetect beans");
|
||||
} catch (MBeanExportException expected) {
|
||||
}
|
||||
catch (MBeanExportException expected) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -634,7 +638,8 @@ public final class MBeanExporterTests extends AbstractMBeanServerTests {
|
|||
try {
|
||||
exporter.afterPropertiesSet();
|
||||
fail("Must have failed during creation of RuntimeExceptionThrowingConstructorBean");
|
||||
} catch (RuntimeException expected) {
|
||||
}
|
||||
catch (RuntimeException expected) {
|
||||
}
|
||||
|
||||
assertIsNotRegistered("Must have unregistered all previously registered MBeans due to RuntimeException",
|
||||
|
|
|
|||
Loading…
Reference in New Issue