From 9a3b5474436552abe1fdb6606553970b4d8c1e77 Mon Sep 17 00:00:00 2001 From: Swapnil Patil Date: Fri, 20 Aug 2021 12:42:45 +0530 Subject: [PATCH] fix: Null Errors, using macros in url with pagination fix: defer validation at runtime, when url contains a macro avoiding NullPointerExceptions --- .../plugin/http/source/common/BaseHttpSourceConfig.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/cdap/plugin/http/source/common/BaseHttpSourceConfig.java b/src/main/java/io/cdap/plugin/http/source/common/BaseHttpSourceConfig.java index a554dd6c..92363629 100644 --- a/src/main/java/io/cdap/plugin/http/source/common/BaseHttpSourceConfig.java +++ b/src/main/java/io/cdap/plugin/http/source/common/BaseHttpSourceConfig.java @@ -682,8 +682,8 @@ public void validate() { } } - // Validate HTTP Error Handling Map - if (!containsMacro(PROPERTY_HTTP_ERROR_HANDLING)) { + // Validate HTTP Error Handling Map, fix: defer validation at runtime, when url contains a macro + if (!containsMacro(PROPERTY_URL) && !containsMacro(PROPERTY_HTTP_ERROR_HANDLING)) { List httpErrorsHandlingEntries = getHttpErrorHandlingEntries(); boolean supportsSkippingPages = PaginationIteratorFactory .createInstance(this, null).supportsSkippingPages(); @@ -740,8 +740,9 @@ public void validate() { propertiesShouldBeNotNull.put(PROPERTY_INDEX_INCREMENT, propertiesShouldBeNull.remove(PROPERTY_INDEX_INCREMENT)); propertiesShouldBeNull.remove(PROPERTY_MAX_INDEX); // can be both null and non null - - if (!url.contains(PAGINATION_INDEX_PLACEHOLDER)) { + + // fix: defer validation at runtime, when url contains a macro + if (!containsMacro(PROPERTY_URL) && !url.contains(PAGINATION_INDEX_PLACEHOLDER)) { throw new InvalidConfigPropertyException( String.format("Url '%s' must contain '%s' placeholder when pagination type is '%s'", getUrl(), PAGINATION_INDEX_PLACEHOLDER, getPaginationType()),