You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2011/01/13 17:59:48 UTC
[jira] Resolved: (CAMEL-3540) Jt400DataQueueConsumer incorrectly
implements timeout semantics (jt400 component)
[ https://issues.apache.org/jira/browse/CAMEL-3540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-3540.
--------------------------------
Resolution: Fixed
Fix Version/s: 2.6.0
trunk: 1058659.
> 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
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 2.6.0
>
> 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.