Jt400DataQueueConsumer incorrectly implements timeout semantics
---------------------------------------------------------------

                 Key: CAMEL-3540
                 URL: https://issues.apache.org/jira/browse/CAMEL-3540
             Project: Camel
          Issue Type: Bug
    Affects Versions: 2.5.0
            Reporter: João Loureiro
            Priority: Minor


Jt400DataQueueConsumer implementation of receive(long) passes the timeout 
argument directly to com.ibm.as400.access.DataQueue.read(int), not performing 
unit conversion. However, Jt400DataQueueConsumer.receive(long) accepts 
milliseconds, whereas DataQueue.read(int) accepts seconds as the time unit.

Also, invoking Jt400DataQueueConsumer.receive() results in a call to 
DataQueue.read(), which is not a blocking call; on the contrary, it will not 
wait for entries.

Code snippet below.

{code:title=Jt400DataQueueConsumer.java|borderStyle=solid}
        DataQueue queue = endpoint.getDataQueue();
        try {
            DataQueueEntry entry;
            if (timeout >= 0) {
                entry = queue.read((int)timeout);
            } else {
                entry = queue.read();
            }
{code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to