[jboss-svn-commits] JBL Code SVN: r26625 - in labs/jbossesb/trunk/product/rosetta: tests/src/org/jboss/soa/esb/listeners/message and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed May 20 03:11:43 EDT 2009


Author: beve
Date: 2009-05-20 03:11:43 -0400 (Wed, 20 May 2009)
New Revision: 26625

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounter.java
   labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterUnitTest.java
Log:
Work for https://jira.jboss.org/jira/browse/JBESB-2522 "twiddle get for ServiceMessageCounter causes NPE"


Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounter.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounter.java	2009-05-19 19:05:13 UTC (rev 26624)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounter.java	2009-05-20 07:11:43 UTC (rev 26625)
@@ -314,10 +314,10 @@
 		for (String key : actionProcessTimeHash.keySet()) {
 			long processTotal = actionProcessTimeHash.get(key).value;
 			String actionId = key.substring(0, key.indexOf(PROCESSING_TIME));
-			int successCount = actionCounterHash.get(actionId + " " + MESSAGE_COUNTER).value;
+			IntHolder successCount = actionCounterHash.get(actionId + " " + MESSAGE_COUNTER);
 			String avgTime = null;
-			if (successCount > 0) {
-				avgTime = ((double) processTotal / successCount) + " ns";
+			if (successCount != null && successCount.value > 0 ) {
+				avgTime = ((double) processTotal / successCount.value) + " ns";
 			}
 			Attribute at = new Attribute(key, avgTime);
 			attributeList.add(at);

Modified: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterUnitTest.java	2009-05-19 19:05:13 UTC (rev 26624)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterUnitTest.java	2009-05-20 07:11:43 UTC (rev 26625)
@@ -21,37 +21,67 @@
  */
 package org.jboss.soa.esb.listeners.message;
 
+import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import javax.management.AttributeList;
+import javax.management.AttributeNotFoundException;
+import javax.management.MBeanException;
 import javax.management.ObjectName;
+import javax.management.ReflectionException;
 
 import junit.framework.JUnit4TestAdapter;
 
-import org.apache.log4j.Logger;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.lifecycle.LifecycleResourceException;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.junit.Before;
 import org.junit.Test;
 
 /**
  * Unit test for ServiceMessageCounter
  * 
- * @author <a href="mailto:daniel.bevenius at redpill.se">Daniel Bevenius</a>				
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>				
  *
  */
 public class ServiceMessageCounterUnitTest
 {
-	private Logger log = Logger.getLogger( ServiceMessageCounterUnitTest.class );
-	
+    private ServiceMessageCounter counter;
+
+    @Before
+    public void setup() throws LifecycleResourceException
+    {
+		final ConfigTree config = createConfigTreeForScheduler();
+		counter = ServiceMessageCounterLifecycleResource.getServiceMessageCounter(config);
+    }
 	@Test
-	public void getObjectName()
-		throws LifecycleResourceException
+	public void getObjectName() throws LifecycleResourceException
 	{
-		ConfigTree config = createConfigTreeForScheduler();
-		log.debug( config );
-		
-		ServiceMessageCounter counter = ServiceMessageCounterLifecycleResource.getServiceMessageCounter(config);
-		ObjectName objectName = counter.getObjectName();
-		log.debug( objectName );
+		final ObjectName objectName = counter.getObjectName();
+		assertEquals("jboss.esb:category=MessageCounter,deployment=ID-DEFAULT", objectName.getCanonicalName());
 	}
 	
+	/**
+	 * Test for JIRA: https://jira.jboss.org/jira/browse/JBESB-2522
+	 */
+	@Test
+    public void getAttributesMissingKey() throws LifecycleResourceException, AttributeNotFoundException, MBeanException, ReflectionException
+    {
+        counter.update(new ActionStatusBean(100l, 0, MessageFactory.getInstance().getMessage(), ActionStatusBean.ACTION_SENT));
+        
+        try
+        {
+            counter.getAttributes(new String[] {"boguskey"});
+        }
+        catch (final NullPointerException e)
+        {
+            e.printStackTrace();
+            fail("getAttributes should not throw NPE if key does not exist. Exception was : " + e.getMessage());
+        }
+    }
+	
 	private ConfigTree createConfigTreeForScheduler()
 	{
 		ConfigTree parent = new ConfigTree("parent");
@@ -62,7 +92,10 @@
 		config.setAttribute( "listenerClass", "org.jboss.soa.esb.listeners.ScheduleListener" );
 		config.setAttribute( "scheduleidref", "cronTrigger");
 		
-		return config;
+		ConfigTree action = new ConfigTree(ListenerTagNames.ACTION_ELEMENT_TAG, parent);
+		action.setAttribute("name", "testAction");
+		
+		return parent;
 	}
 	
 	/*




More information about the jboss-svn-commits mailing list