[ https://issues.apache.org/activemq/browse/CAMEL-3124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-3124. -------------------------------- Resolution: Fixed > polling of feeds in FeedEntryPollingConsumer is broken. > ------------------------------------------------------- > > Key: CAMEL-3124 > URL: https://issues.apache.org/activemq/browse/CAMEL-3124 > Project: Apache Camel > Issue Type: Bug > Components: camel-rss > Affects Versions: 2.4.0 > Environment: ubuntu 10.4 > java 6 > Reporter: Ernst Bunders > Assignee: Claus Ibsen > Priority: Minor > Fix For: 2.5.0 > > > The FeedEntryPollingConsumer class implements the poll() method for the > 'splitEntries' mode of the RssEndpoint is broken. > You can think of two ways that polling feeds could work: > 1) A feed is created, then one item is processed, then the delay, then > process another item. This way the feed is kept between calls to poll(). > 2) A feed is created, then all the items are processed, the feed is cleared, > and then the delay. > But the way it presently works: > A feed is created, one items is processed, and the feed is cleared, then the > delay, and again the feed is created and the next item is cleared. > This is clearly wrong. Feed entries can be missed, because the index of the > next item to process is stored over polls but the list isn't. Also this > creates a big network overhead when polling very active feeds such as twitter > search... > This is easy to fix. In the below code: > {code} > public void poll() throws Exception { > Object feed = createFeed(); > populateList(feed); > while (hasNextEntry()) { > Object entry = list.get(entryIndex--); > boolean valid = true; > if (entryFilter != null) { > valid = entryFilter.isValidEntry(endpoint, feed, entry); > } > if (valid) { > Exchange exchange = endpoint.createExchange(feed, entry); > getProcessor().process(exchange); > // return and wait for the next poll to continue from last > time (this consumer is stateful) > return; > } > } > {code} > The return (at line 56 of > org.apache.camel.component.feed.FeedEntryPollingConsumer) should be deleted. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.