[jboss-cvs] JBoss Messaging SVN: r6540 - in trunk: tests/src/org/jboss/messaging/tests/integration/management and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Apr 23 10:50:24 EDT 2009
Author: jmesnil
Date: 2009-04-23 10:50:24 -0400 (Thu, 23 Apr 2009)
New Revision: 6540
Modified:
trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementServiceImplTest.java
Log:
Management message handler
* when the attribute can not be retrieved on the resource, send a reply message containing the root exception
* added tests to check that a reply message is sent when a management message deals with unknown resource or unknown attribute
Modified: trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java 2009-04-23 14:33:45 UTC (rev 6539)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java 2009-04-23 14:50:24 UTC (rev 6540)
@@ -412,8 +412,26 @@
if (propertyName.equals(ManagementHelper.HDR_ATTRIBUTE))
{
SimpleString attribute = (SimpleString)message.getProperty(propertyName);
- Object result = getAttribute(resourceName.toString(), attribute.toString());
- ManagementHelper.storeResult(reply, result);
+ try
+ {
+ Object result = getAttribute(resourceName.toString(), attribute.toString());
+ ManagementHelper.storeResult(reply, result);
+ }
+ catch (Exception e)
+ {
+ log.warn("exception while retrieving attribute " + attribute + " on " + resourceName, e);
+ reply.putBooleanProperty(ManagementHelper.HDR_OPERATION_SUCCEEDED, false);
+ String exceptionMessage = e.getMessage();
+ if (e instanceof InvocationTargetException)
+ {
+ exceptionMessage = ((InvocationTargetException)e).getTargetException().getMessage();
+ }
+ if (e != null)
+ {
+ reply.putStringProperty(ManagementHelper.HDR_OPERATION_EXCEPTION,
+ new SimpleString(exceptionMessage));
+ }
+ }
}
}
}
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementServiceImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementServiceImplTest.java 2009-04-23 14:33:45 UTC (rev 6539)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementServiceImplTest.java 2009-04-23 14:50:24 UTC (rev 6540)
@@ -24,29 +24,20 @@
package org.jboss.messaging.tests.integration.management;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
import static org.jboss.messaging.tests.util.RandomUtil.randomString;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-
import org.jboss.messaging.core.buffers.ChannelBuffers;
import org.jboss.messaging.core.client.management.impl.ManagementHelper;
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.management.ManagementService;
import org.jboss.messaging.core.management.ResourceNames;
-import org.jboss.messaging.core.management.impl.ManagementServiceImpl;
import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
-import org.jboss.messaging.core.security.Role;
import org.jboss.messaging.core.server.Messaging;
import org.jboss.messaging.core.server.MessagingServer;
import org.jboss.messaging.core.server.ServerMessage;
import org.jboss.messaging.core.server.impl.ServerMessageImpl;
-import org.jboss.messaging.tests.util.RandomUtil;
import org.jboss.messaging.tests.util.UnitTestCase;
-import org.jboss.messaging.utils.SimpleString;
/*
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -118,7 +109,52 @@
assertNotNull(ManagementHelper.getOperationExceptionMessage(reply));
server.stop();
}
+
+ public void testHandleManagementMessageWithUnknowResource() throws Exception
+ {
+ Configuration conf = new ConfigurationImpl();
+ conf.setJMXManagementEnabled(false);
+
+ MessagingServer server = Messaging.newMessagingServer(conf, false);
+ server.start();
+ // invoke attribute and operation on the server
+ ServerMessage message = new ServerMessageImpl();
+ MessagingBuffer body = ChannelBuffers.buffer(2048);
+ message.setBody(body);
+ ManagementHelper.putOperationInvocation(message,
+ "Resouce.Does.Not.Exist",
+ "toString");
+
+ ServerMessage reply = server.getManagementService().handleMessage(message);
+
+
+ assertFalse(ManagementHelper.hasOperationSucceeded(reply));
+ assertNotNull(ManagementHelper.getOperationExceptionMessage(reply));
+ server.stop();
+ }
+
+ public void testHandleManagementMessageWithUnknowAttribute() throws Exception
+ {
+ Configuration conf = new ConfigurationImpl();
+ conf.setJMXManagementEnabled(false);
+
+ MessagingServer server = Messaging.newMessagingServer(conf, false);
+ server.start();
+
+ // invoke attribute and operation on the server
+ ServerMessage message = new ServerMessageImpl();
+ MessagingBuffer body = ChannelBuffers.buffer(2048);
+ message.setBody(body);
+ ManagementHelper.putAttribute(message, ResourceNames.CORE_SERVER, "Attribute.Does.Not.Exist");
+
+ ServerMessage reply = server.getManagementService().handleMessage(message);
+
+
+ assertFalse(ManagementHelper.hasOperationSucceeded(reply));
+ assertNotNull(ManagementHelper.getOperationExceptionMessage(reply));
+ server.stop();
+ }
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
More information about the jboss-cvs-commits
mailing list