This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-2.23.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.23.x by this push:
new c3750dc CAMEL-13077: Fix polling return for empty OData
ClientEntitySets (#2719)
c3750dc is described below
commit c3750dc94317d8bcd9175da4a554e681b9acf2c6
Author: phantomjinx <[email protected]>
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);