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

Reply via email to