From d780e1513e95eada399ad4885d65846e86ca776b Mon Sep 17 00:00:00 2001
From: NThakur4 <nthakur4@slb.com>
Date: Tue, 27 Apr 2021 14:02:20 -0500
Subject: [PATCH] enable indexing meta-attributes if there are schema parsing
 errors

---
 .../converter/SchemaToStorageFormatImpl.java  | 69 +++++++++----------
 .../indexer/service/SchemaProviderImpl.java   |  9 +--
 2 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImpl.java
index e45e3df8d..2ed1506a4 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImpl.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImpl.java
@@ -84,44 +84,43 @@ public class SchemaToStorageFormatImpl implements SchemaToStorageFormat {
         PropertiesProcessor propertiesProcessor = new PropertiesProcessor(schemaServiceSchema.getDefinitions(), schemaConverterConfig);
 
         final List<Map<String, Object>> storageSchemaItems = new ArrayList<>();
-        if (schemaServiceSchema.getProperties() != null) {
-            PropertiesData schemaData = schemaServiceSchema.getProperties().getData();
-            if (!Objects.isNull(schemaData)) {
-
-                if (schemaData.getAllOf() != null) {
-                    storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getAllOf().stream()
-                            .flatMap(propertiesProcessor::processItem)
-                            .collect(Collectors.toList()));
-                }
-
-                if (schemaData.getAnyOf() != null) {
-                    storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getAnyOf().stream()
-                            .flatMap(propertiesProcessor::processItem)
-                            .collect(Collectors.toList()));
-                }
-
-                if (schemaData.getOneOf() != null) {
-                    storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getOneOf().stream()
-                            .flatMap(propertiesProcessor::processItem)
-                            .collect(Collectors.toList()));
-                }
-
-                if (schemaData.getRef() != null) {
-                    storageSchemaItems.addAll(propertiesProcessor.processRef(schemaData.getRef())
-                            .collect(Collectors.toList()));
-                }
-
-                if (schemaData.getProperties() != null) {
-                    storageSchemaItems.addAll(propertiesProcessor.processProperties(schemaData.getProperties())
-                            .collect(Collectors.toList()));
-                }
-            } else {
-                throw new SchemaProcessingException(String.format("Schema doesn't have properties section, kind: %s", kind));
-            }
-        } else {
+        if (schemaServiceSchema.getProperties() == null) {
             throw new SchemaProcessingException(String.format("Schema doesn't have data section, kind: %s", kind));
         }
 
+        PropertiesData schemaData = schemaServiceSchema.getProperties().getData();
+        if (Objects.isNull(schemaData)) {
+            throw new SchemaProcessingException(String.format("Schema doesn't have properties section, kind: %s", kind));
+        }
+
+        if (schemaData.getAllOf() != null) {
+            storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getAllOf().stream()
+                    .flatMap(propertiesProcessor::processItem)
+                    .collect(Collectors.toList()));
+        }
+
+        if (schemaData.getAnyOf() != null) {
+            storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getAnyOf().stream()
+                    .flatMap(propertiesProcessor::processItem)
+                    .collect(Collectors.toList()));
+        }
+
+        if (schemaData.getOneOf() != null) {
+            storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getOneOf().stream()
+                    .flatMap(propertiesProcessor::processItem)
+                    .collect(Collectors.toList()));
+        }
+
+        if (schemaData.getRef() != null) {
+            storageSchemaItems.addAll(propertiesProcessor.processRef(schemaData.getRef())
+                    .collect(Collectors.toList()));
+        }
+
+        if (schemaData.getProperties() != null) {
+            storageSchemaItems.addAll(propertiesProcessor.processProperties(schemaData.getProperties())
+                    .collect(Collectors.toList()));
+        }
+
         if (!propertiesProcessor.getErrors().isEmpty()) {
             throw new SchemaProcessingException(String.format("Errors occurred during parsing the schema, kind: %s | errors: %s" ,
                     kind, String.join(",", propertiesProcessor.getErrors())));
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/SchemaProviderImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/SchemaProviderImpl.java
index c462c78e8..6f2bf52cc 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/SchemaProviderImpl.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/SchemaProviderImpl.java
@@ -19,13 +19,11 @@ import org.apache.http.HttpStatus;
 import org.opengroup.osdu.core.common.http.FetchServiceHttpRequest;
 import org.opengroup.osdu.core.common.http.IUrlFetchService;
 import org.opengroup.osdu.core.common.logging.JaxRsDpsLog;
-import org.opengroup.osdu.core.common.model.http.AppException;
 import org.opengroup.osdu.core.common.model.http.HttpResponse;
 import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo;
 import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
+import org.opengroup.osdu.indexer.schema.converter.exeption.SchemaProcessingException;
 import org.opengroup.osdu.indexer.schema.converter.interfaces.SchemaToStorageFormat;
-import org.opengroup.osdu.indexer.service.SchemaService;
-import org.opengroup.osdu.indexer.service.StorageService;
 import org.springframework.stereotype.Component;
 
 import javax.inject.Inject;
@@ -64,8 +62,11 @@ public class SchemaProviderImpl implements SchemaService {
 
         try {
             schemaServiceSchema = getFromSchemaService(kind);
+        } catch (SchemaProcessingException ex) {
+            log.error(ex.getMessage(), ex);
+            return null;
         } catch (RuntimeException ex) {
-            log.error(String.format("Failed to get the schema from the Schema service, kind: %s | message: %s", kind, ex.getMessage(), ex));
+            log.error(String.format("Failed to get the schema from the Schema service, kind: %s | message: %s", kind, ex.getMessage()), ex);
             return null;
         }
 
-- 
GitLab