Title: [743] trunk/core/src/main/java/org/servicemix/jbi/nmr/flow/jca/JCAFlow.java: Revert back change on JCAFlow, because some components tests failed
Revision
743
Author
gnt
Date
2005-11-03 19:52:29 -0500 (Thu, 03 Nov 2005)

Log Message

Revert back change on JCAFlow, because some components tests failed

Modified Paths


Diff

Modified: trunk/core/src/main/java/org/servicemix/jbi/nmr/flow/jca/JCAFlow.java (742 => 743)

--- trunk/core/src/main/java/org/servicemix/jbi/nmr/flow/jca/JCAFlow.java	2005-11-03 21:07:48 UTC (rev 742)
+++ trunk/core/src/main/java/org/servicemix/jbi/nmr/flow/jca/JCAFlow.java	2005-11-04 00:52:29 UTC (rev 743)
@@ -423,22 +423,29 @@
         ComponentNameSpace id = me.getRole() == Role.PROVIDER ? me.getDestinationId() : me.getSourceId();
         ComponentConnector cc = broker.getRegistry().getComponentConnector(id);
         if (cc != null) {
-        	if (me.getMirror().getSyncState() != MessageExchangeImpl.SYNC_STATE_ASYNC) {
-        		throw new IllegalStateException("sendSync can not be used on jca flow with external components");
-        	}
-            try {
-                final String componentName = cc.getComponentNameSpace().getName();
-                JmsTemplate jt = isPersistent(me) ? jmsPersistentTemplate : jmsTemplate;
-                jt.send(INBOUND_PREFIX + componentName, new MessageCreator() {
-					public Message createMessage(Session session) throws JMSException {
-	                    return session.createObjectMessage(me);
-					}
-				});
-            } catch (Exception e) {
-                log.error("Failed to send exchange: " + me + " internal JMS Network", e);
-                throw new MessagingException(e);
+            if (cc.isLocal() && !isPersistent(me)) {
+                super.doRouting(me);
             }
-        } else {
+            else {
+            	if (me.getMirror().getSyncState() != MessageExchangeImpl.SYNC_STATE_ASYNC) {
+            		throw new IllegalStateException("sendSync can not be used on jca flow with external components");
+            	}
+                try {
+                    final String componentName = cc.getComponentNameSpace().getName();
+                    JmsTemplate jt = isPersistent(me) ? jmsPersistentTemplate : jmsTemplate;
+                    jt.send(INBOUND_PREFIX + componentName, new MessageCreator() {
+						public Message createMessage(Session session) throws JMSException {
+		                    return session.createObjectMessage(me);
+						}
+					});
+                }
+                catch (Exception e) {
+                    log.error("Failed to send exchange: " + me + " internal JMS Network", e);
+                    throw new MessagingException(e);
+                }
+            }
+        }
+        else {
             throw new MessagingException("No component with id (" + id + ") - Couldn't route MessageExchange " + me);
         }
     }
@@ -603,4 +610,4 @@
 	public void setBootstrapContext(BootstrapContext bootstrapContext) {
 		this.bootstrapContext = bootstrapContext;
 	}
-}
\ No newline at end of file
+}

Reply via email to