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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Feb 23 15:27:08 EST 2012


Author: tcunning
Date: 2012-02-23 15:27:07 -0500 (Thu, 23 Feb 2012)
New Revision: 37896

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/RegistryUtil.java
   labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/RegistryUtilUnitTest.java
Log:
JBESB-3747
Make sure that we handle ServiceNotFoundException in a better
way so that it doesn't prevent registerEpr from happening if the
service does not exist.


Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/RegistryUtil.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/RegistryUtil.java	2012-02-22 23:56:13 UTC (rev 37895)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/RegistryUtil.java	2012-02-23 20:27:07 UTC (rev 37896)
@@ -138,21 +138,23 @@
             try
             {
             	if ("true".equalsIgnoreCase(removeOldService))            	
-            		registry.unRegisterService(category, name);
-            	
-                registry.registerEPR(category, name,
-                    serviceDescription, epr, eprDescription) ;
+            		registry.unRegisterService(category, name);            	
             }
             catch (ServiceNotFoundException ex)
             {
             	// ignore as it's possible another client just did the removal for us.
-            	
-            	logger.debug("Could not unregister service < "+category+", "+name+" >.");
+            	logger.debug("removeOldService set : Could not unregister service < "+category+", "+name+" >.");
             }
+            
+            try {
+                registry.registerEPR(category, name,
+                        serviceDescription, epr, eprDescription) ;
+            }
             finally
             {
                 registryLock.unlock() ;
             }
+            
         }
     }
 

Modified: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/RegistryUtilUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/RegistryUtilUnitTest.java	2012-02-22 23:56:13 UTC (rev 37895)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/RegistryUtilUnitTest.java	2012-02-23 20:27:07 UTC (rev 37896)
@@ -23,11 +23,15 @@
 package org.jboss.soa.esb.listeners;
 
 import org.apache.log4j.Logger;
+import org.jboss.soa.esb.addressing.EPR;
+
 import org.jboss.soa.esb.addressing.eprs.HTTPEpr;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.services.registry.RegistryException;
 import org.jboss.soa.esb.services.registry.ServiceNotFoundException;
 
+import java.util.List;
+
 public class RegistryUtilUnitTest extends ListenerManagerBaseTest
 {
 	@SuppressWarnings("unused")
@@ -42,6 +46,41 @@
 		runAfterAllTests();
 	}
 	
+	public void testJBESB3747() throws Exception
+	{
+		RegistryUtil.getEprManager();
+		HTTPEpr epr = new HTTPEpr("http://foo.bar");
+		ConfigTree tree = new ConfigTree("test");
+		
+		tree.setAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, "eprmanager");
+		tree.setAttribute(ListenerTagNames.SERVICE_NAME_TAG, "test");
+		tree.setAttribute(ListenerTagNames.REMOVE_OLD_SERVICE, "true");
+
+		RegistryUtil.register(tree, epr);
+
+		boolean exception = false;
+		try
+		{
+			RegistryUtil.getEprs("eprmanager", "test");
+		}
+        catch (ServiceNotFoundException ex)
+        {
+            exception = true;
+            ex.printStackTrace();
+        }
+		catch (RegistryException ex)
+		{
+			exception = true;
+			ex.printStackTrace();
+		}
+		
+		if (exception)
+			fail("Received exception when querying for foobar:test");		
+
+		RegistryUtil.unregister("eprmanager", "test", epr);
+
+	}
+	
 	public void testRegistryUtil () throws Exception
 	{
 		RegistryUtil.getEprManager();
@@ -69,11 +108,11 @@
 		
 		RegistryUtil.register(tree, epr);
 		
+		List<EPR> eprList = null;
 		try
 		{
-			// case difference is deliberate!
-			
-			RegistryUtil.getEprs("eprManager", "test");
+			eprList = RegistryUtil.getEprs("eprmanager", "test");
+			assertEquals(1, eprList.size());
 		}
 		catch (RegistryException ex)
 		{



More information about the jboss-svn-commits mailing list