Hi,
while we are hunting for sendSync() hangs we found the following code in the EIP
endpoint class that looked a bit strange
EIPEndpoint.java:380
/* (non-Javadoc)
* @see
org.apache.servicemix.common.ExchangeProcessor#process(javax.jbi.messaging.MessageExchange)
*/
public void process(MessageExchange exchange) throws Exception {
boolean txSync = exchange.isTransacted() &&
Boolean.TRUE.equals(exchange.getProperty(JbiConstants.SEND_SYNC));
if (txSync && exchange.getRole() == Role.PROVIDER &&
exchange.getStatus() == ExchangeStatus.ACTIVE) {
processSync(exchange);
} else {
processAsync(exchange);
}
}
As we do not use transactions exchange.isTransacted() is false
but because we use sendSync() at the client side the SEND_SYNC flag is set and
the second part true.
Wouldn't be a || (or) be correct here instead of && (and)?
otherwise the method would use a send and not a sendSync and not wait or process
on the response?
Peter