[SMXCOMP-973]Servicemix-drools - exchange submited two times, second raise error in logs
git-svn-id: https://svn.apache.org/repos/asf/servicemix/components/trunk@1523536 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/engines/servicemix-drools/src/main/java/org/apache/servicemix/drools/model/JbiHelper.java b/engines/servicemix-drools/src/main/java/org/apache/servicemix/drools/model/JbiHelper.java
index 4609259..8176bba 100644
--- a/engines/servicemix-drools/src/main/java/org/apache/servicemix/drools/model/JbiHelper.java
+++ b/engines/servicemix-drools/src/main/java/org/apache/servicemix/drools/model/JbiHelper.java
@@ -18,6 +18,7 @@
import javax.jbi.component.ComponentContext;
import javax.jbi.messaging.DeliveryChannel;
+import javax.jbi.messaging.ExchangeStatus;
import javax.jbi.messaging.Fault;
import javax.jbi.messaging.InOnly;
import javax.jbi.messaging.MessageExchange;
@@ -194,14 +195,17 @@
* @param content the response
* @throws Exception
*/
- public void answer(Source content) throws Exception {
- MessageExchange me = this.exchange.getInternalExchange();
- NormalizedMessage out = me.createMessage();
- out.setContent(content);
- me.setMessage(out, "out");
- getChannel().send(me);
- exchangeHandled = true;
- update();
+ public void answer(Source content) throws Exception {
+ MessageExchange me = this.exchange.getInternalExchange();
+ if (me.getStatus() == ExchangeStatus.ACTIVE)
+ {
+ NormalizedMessage out = me.createMessage();
+ out.setContent(content);
+ me.setMessage(out, "out");
+ getChannel().send(me);
+ exchangeHandled = true;
+ update();
+ }
}
/**