[ 
https://issues.apache.org/jira/browse/CAMEL-3540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

João Loureiro updated CAMEL-3540:
---------------------------------

    Summary: Jt400DataQueueConsumer incorrectly implements timeout semantics 
(jt400 component)  (was: Jt400DataQueueConsumer incorrectly implements timeout 
semantics)

> Jt400DataQueueConsumer incorrectly implements timeout semantics (jt400 
> component)
> ---------------------------------------------------------------------------------
>
>                 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
>         Attachments: Jt400DataQueueConsumer.patch, 
> Jt400DataQueueConsumerTest.java
>
>
> 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}
> Note that the submitted patch floors the timeout value when converting to 
> seconds, but different rounding might be desired, which should be specified 
> in the class documentation.

-- 
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