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.