[jboss-svn-commits] JBL Code SVN: r37459 - in labs/jbossesb/tags/GSS-SOA-3365: qa/junit/src/org/jboss/soa/esb/server and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Sep 8 14:27:24 EDT 2011


Author: tcunning
Date: 2011-09-08 14:27:24 -0400 (Thu, 08 Sep 2011)
New Revision: 37459

Modified:
   labs/jbossesb/tags/GSS-SOA-3365/product/rosetta/src/org/jboss/soa/esb/listeners/jca/EndpointProxy.java
   labs/jbossesb/tags/GSS-SOA-3365/qa/junit/src/org/jboss/soa/esb/server/MyRedeliveryAction.java
Log:
JBESB-3679
Port SOA-3001 changes over to branch.


Modified: labs/jbossesb/tags/GSS-SOA-3365/product/rosetta/src/org/jboss/soa/esb/listeners/jca/EndpointProxy.java
===================================================================
--- labs/jbossesb/tags/GSS-SOA-3365/product/rosetta/src/org/jboss/soa/esb/listeners/jca/EndpointProxy.java	2011-09-08 15:44:43 UTC (rev 37458)
+++ labs/jbossesb/tags/GSS-SOA-3365/product/rosetta/src/org/jboss/soa/esb/listeners/jca/EndpointProxy.java	2011-09-08 18:27:24 UTC (rev 37459)
@@ -70,6 +70,11 @@
     * The old classloader of the thread
     */
    protected ClassLoader oldClassLoader = null;
+   
+   /**
+    * The flag indicating that beforeDelivery was invoked.
+    */
+   protected boolean beforeDeliveryInvoked ;
 
    /**
     * Any transaction we started
@@ -156,7 +161,7 @@
          log.trace("MessageEndpoint " + getProxyString(proxy) + " released");
 
       // Tidyup any outstanding delivery
-      if (oldClassLoader != null)
+      if (beforeDeliveryInvoked)
       {
          try
          {
@@ -172,8 +177,9 @@
    protected void before(Object proxy, Method method, Object[] args) throws Throwable
    {
       // Called out of sequence
-      if (oldClassLoader != null)
+      if (beforeDeliveryInvoked)
          throw new IllegalStateException("Missing afterDelivery from the previous beforeDelivery for message endpoint " + getProxyString(proxy));
+      beforeDeliveryInvoked = true ;
 
       if (trace)
          log.trace("MessageEndpoint " + getProxyString(proxy) + " released");
@@ -203,8 +209,9 @@
    protected void after(Object proxy) throws Throwable
    {
       // Called out of sequence
-      if (oldClassLoader == null)
+      if (!beforeDeliveryInvoked)
          throw new IllegalStateException("afterDelivery without a previous beforeDelivery for message endpoint " + getProxyString(proxy));
+      beforeDeliveryInvoked = false ;
 
       // Finish this delivery committing if we can
       try
@@ -226,15 +233,24 @@
       if (trace)
          log.trace("MessageEndpoint " + getProxyString(proxy) + " delivering");
 
+      final Thread currentThread = Thread.currentThread() ;
+      final ClassLoader contextClassLoader = currentThread.getContextClassLoader() ;
+
       // Mark delivery if beforeDelivery was invoked
-      if (oldClassLoader != null)
+      if (beforeDeliveryInvoked)
+      {
          delivered = true;
+      }
+      else
+      {
+         currentThread.setContextClassLoader(loader) ;
+      }
 
       boolean commit = true;
       try
       {
          // Check for starting a transaction
-         if (oldClassLoader == null)
+         if (!beforeDeliveryInvoked)
          {
             boolean isTransacted = messageEndpointFactory.isDeliveryTransacted(method);
             startTransaction("delivery", proxy, method, args, isTransacted);
@@ -256,8 +272,9 @@
       finally
       {
          // No before/after delivery, end any transaction and release the lock
-         if (oldClassLoader == null)
+         if (!beforeDeliveryInvoked)
          {
+            currentThread.setContextClassLoader(contextClassLoader) ;
             try
             {
                // Finish any transaction we started


Property changes on: labs/jbossesb/tags/GSS-SOA-3365/product/rosetta/src/org/jboss/soa/esb/listeners/jca/EndpointProxy.java
___________________________________________________________________
Added: svn:mergeinfo
   + /labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/jca/EndpointProxy.java:30511

Modified: labs/jbossesb/tags/GSS-SOA-3365/qa/junit/src/org/jboss/soa/esb/server/MyRedeliveryAction.java
===================================================================
--- labs/jbossesb/tags/GSS-SOA-3365/qa/junit/src/org/jboss/soa/esb/server/MyRedeliveryAction.java	2011-09-08 15:44:43 UTC (rev 37458)
+++ labs/jbossesb/tags/GSS-SOA-3365/qa/junit/src/org/jboss/soa/esb/server/MyRedeliveryAction.java	2011-09-08 18:27:24 UTC (rev 37459)
@@ -30,6 +30,7 @@
 import org.jboss.soa.esb.actions.ActionPipelineProcessor;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
 import org.jboss.soa.esb.message.Message;
 
 /**
@@ -52,7 +53,14 @@
         System.out.println("Body: " + incomingMessage) ;
         System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
         
-        getRedeliveryMBean().logMessage(incomingMessage);
+        if (LifecycleResourceManager.DEFAULT_IDENTITY.equals(LifecycleResourceManager.getSingleton().getIdentity()))
+        {
+            getRedeliveryMBean().logMessage("Default lifecycle identity used by JCA");
+        }
+        else
+        {
+            getRedeliveryMBean().logMessage(incomingMessage);
+        }
         // Throw an error every second message
         if ((count++ & 1) == 0)
         {


Property changes on: labs/jbossesb/tags/GSS-SOA-3365/qa/junit/src/org/jboss/soa/esb/server/MyRedeliveryAction.java
___________________________________________________________________
Added: svn:mergeinfo
   + /labs/jbossesb/branches/JBESB_4_7_CP/qa/junit/src/org/jboss/soa/esb/server/MyRedeliveryAction.java:30511



More information about the jboss-svn-commits mailing list