This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-2.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.x by this push: new d39eafb CAMEL-13077: Fix polling return for empty OData ClientEntitySets (#2719) d39eafb is described below commit d39eafb17efd7a62a26320d10d77c2d0be8ccc89 Author: phantomjinx <p.g.richard...@phantomjinx.co.uk> AuthorDate: Tue Jan 22 14:56:26 2019 +0000 CAMEL-13077: Fix polling return for empty OData ClientEntitySets (#2719) * ApiConsumerHelper does not recognise ClientEntitySets and thus defaults to return a constant 1. This means that the scheduling polling is never concluded to be idle and the backoffXXX consumer properties do not work. * If the ClientEntitySet is empty then return 0 to allow for backoffXXX properties to correctly handle the scheduling of the polling. --- .../org/apache/camel/component/olingo4/Olingo4Consumer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Consumer.java b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Consumer.java index 1fcd546..16256bc 100644 --- a/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Consumer.java +++ b/components/camel-olingo4/camel-olingo4-component/src/main/java/org/apache/camel/component/olingo4/Olingo4Consumer.java @@ -27,6 +27,7 @@ import org.apache.camel.component.olingo4.internal.Olingo4ApiName; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.component.AbstractApiConsumer; import org.apache.camel.util.component.ApiConsumerHelper; +import org.apache.olingo.client.api.domain.ClientEntitySet; /** * The Olingo4 consumer. @@ -83,7 +84,15 @@ public class Olingo4Consumer extends AbstractApiConsumer<Olingo4ApiName, Olingo4 throw error[0]; } - return ApiConsumerHelper.getResultsProcessed(this, result[0], isSplitResult()); + // + // Allow consumer idle properties to properly handle an empty polling response + // + if (result[0] instanceof ClientEntitySet && (((ClientEntitySet) result[0]).getEntities().isEmpty())) { + return 0; + } else { + int processed = ApiConsumerHelper.getResultsProcessed(this, result[0], isSplitResult()); + return processed; + } } catch (Throwable t) { throw ObjectHelper.wrapRuntimeCamelException(t);