You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/06/15 23:37:40 UTC

svn commit: r414689 - /incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java

Author: gnodet
Date: Thu Jun 15 14:37:40 2006
New Revision: 414689

URL: http://svn.apache.org/viewvc?rev=414689&view=rev
Log:
MessageExchangeListener should be given exchanges with their own classloader set on the thread

Modified:
    incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java

Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java?rev=414689&r1=414688&r2=414689&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java Thu Jun 15 14:37:40 2006
@@ -616,7 +616,13 @@
             // This is important for transaction boundaries
             me.setPushDeliver(true);
             // Deliver the exchange
-            listener.onMessageExchange(me);
+            ClassLoader old = Thread.currentThread().getContextClassLoader();
+            try {
+                Thread.currentThread().setContextClassLoader(component.getComponent().getClass().getClassLoader());
+                listener.onMessageExchange(me);
+            } finally {
+                Thread.currentThread().setContextClassLoader(old);
+            }
             // TODO: handle delayed exchange notifications 
             return;
         }