[jboss-svn-commits] JBL Code SVN: r38197 - in labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta: tests/src/org/jboss/soa/esb/actions and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Sep 24 15:30:53 EDT 2012


Author: tcunning
Date: 2012-09-24 15:30:53 -0400 (Mon, 24 Sep 2012)
New Revision: 38197

Modified:
   labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/SyncServiceInvoker.java
   labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/SyncServiceInvokerUnitTest.java
   labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/sync-invoker-config-01.xml
   labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/sync-invoker-config-02.xml
Log:
JBESB-3852
Port changes from JBESB-3772 to 4.11 branch.


Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/SyncServiceInvoker.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/SyncServiceInvoker.java	2012-09-24 18:41:18 UTC (rev 38196)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/actions/SyncServiceInvoker.java	2012-09-24 19:30:53 UTC (rev 38197)
@@ -70,17 +70,18 @@
             }
         }
 
+        Message response = null;
         try {
             call.setFaultTo(null);
             call.setReplyTo(null);
 
-            return serviceInvoker.deliverSync(message, timeout);
+            response = serviceInvoker.deliverSync(message, timeout);
+
+            // JBESB-3772
+            response.getHeader().getCall().setFaultTo(faultTo);
+            response.getHeader().getCall().setReplyTo(replyTo);
+            return response;
         } catch (Exception e) {
-            // No real need to reset the EPRs because the pipeline has already captured them, but
-            // lets do it anyway...
-            call.setFaultTo(faultTo);
-            call.setReplyTo(replyTo);
-
             if (failOnException) {
                 throw new ActionProcessingException("Error delivering message to service '" + serviceInvoker.getService() + "'", e);
             } else {
@@ -88,6 +89,12 @@
                 return message;
             }
         } finally {
+            // JBESB-3772
+            // When an exception is thrown but failOnException is false, then the request message
+            // will be the current message again in the action pipeline.
+            call.setFaultTo(faultTo);
+            call.setReplyTo(replyTo);
+
             try {
                 if(txObject != null) {
                     TransactionStrategy.getTransactionStrategy(true).resume(txObject);

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/SyncServiceInvokerUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/SyncServiceInvokerUnitTest.java	2012-09-24 18:41:18 UTC (rev 38196)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/SyncServiceInvokerUnitTest.java	2012-09-24 19:30:53 UTC (rev 38197)
@@ -19,8 +19,11 @@
  */
 package org.jboss.soa.esb.actions;
 
+import java.net.URI;
+
 import junit.framework.TestCase;
 import org.jboss.soa.esb.testutils.AbstractTestRunner;
+import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.client.ServiceInvoker;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
@@ -47,11 +50,19 @@
 
                 request.getBody().add("Hello");
 
+                EPR faultToEpr = new EPR(new URI("fault.to.epr.test"));
+                request.getHeader().getCall().setFaultTo(faultToEpr);
+
                 ResponseAction.responseMessage = MessageFactory.getInstance().getMessage();
                 ResponseAction.responseMessage.getBody().add("Goodbye");
+                MessageSpyAction.cleanup();
 
                 Message response = invoker.deliverSync(request, 10000);
+
                 assertEquals("Goodbye", response.getBody().get());
+                // JBESB-3772: Check if the FaultTo in the Call is retained
+                assertNotNull(MessageSpyAction.getMessage());
+                assertEquals(faultToEpr, MessageSpyAction.getMessage().getHeader().getCall().getFaultTo());
             }
         }.setServiceConfig("sync-invoker-config-01.xml");
 
@@ -67,12 +78,14 @@
                 request.getBody().add("Hello");
 
                 ResponseAction.exception = new ActionProcessingException("Exception!!");
+                MessageSpyAction.cleanup();
 
                 try {
                     invoker.deliverSync(request, 10000);
                     fail("Expected FaultMessageException");
                 } catch(FaultMessageException e) {
                     assertEquals("Error delivering message to service 'Services:ServiceB'", e.getCause().getMessage());
+                    assertNull(MessageSpyAction.getMessage());
                 }
             }
         }.setServiceConfig("sync-invoker-config-01.xml");
@@ -88,9 +101,18 @@
 
                 request.getBody().add("Hello");
 
+                EPR faultToEpr = new EPR(new URI("fault.to.epr.test"));
+                request.getHeader().getCall().setFaultTo(faultToEpr);
+
                 ResponseAction.exception = new ActionProcessingException("Exception!!");
+                MessageSpyAction.cleanup();
 
-                invoker.deliverSync(request, 10000);
+                Message response = invoker.deliverSync(request, 10000);
+
+                assertEquals("Hello", response.getBody().get());
+                // JBESB-3772: Check if the FaultTo in the Call is retained
+                assertNotNull(MessageSpyAction.getMessage());
+                assertEquals(faultToEpr, MessageSpyAction.getMessage().getHeader().getCall().getFaultTo());
             }
         }.setServiceConfig("sync-invoker-config-02.xml");
 

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/sync-invoker-config-01.xml
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/sync-invoker-config-01.xml	2012-09-24 18:41:18 UTC (rev 38196)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/sync-invoker-config-01.xml	2012-09-24 19:30:53 UTC (rev 38197)
@@ -15,7 +15,8 @@
                     <property name="service-category" value="Services" />
                     <property name="service-name" value="ServiceB" />
                 </action>
-            </actions>			
+                <action name="message-spy" class="org.jboss.soa.esb.actions.MessageSpyAction" />
+            </actions>
         </service>
 
     </services>

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/sync-invoker-config-02.xml
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/sync-invoker-config-02.xml	2012-09-24 18:41:18 UTC (rev 38196)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/tests/src/org/jboss/soa/esb/actions/sync-invoker-config-02.xml	2012-09-24 19:30:53 UTC (rev 38197)
@@ -16,7 +16,8 @@
                     <property name="service-name" value="ServiceB" />
                     <property name="failOnException" value="false" />
                 </action>
-            </actions>			
+                <action name="message-spy" class="org.jboss.soa.esb.actions.MessageSpyAction" />
+            </actions>
         </service>
 
     </services>



More information about the jboss-svn-commits mailing list