This is an automated email from the ASF dual-hosted git repository.

shuber pushed a commit to branch opensearch-persistence
in repository https://gitbox.apache.org/repos/asf/unomi.git


The following commit(s) were added to refs/heads/opensearch-persistence by this 
push:
     new d5e3f8131 Refactor error handling in HealthCheckIT and 
OpenSearchPersistenceServiceImpl to use logging instead of printStackTrace. 
Update exception messages in IdsConditionESQueryBuilder and 
IdsConditionOSQueryBuilder to include maximum IDs query count for better 
clarity. Other general naming cleanup.
d5e3f8131 is described below

commit d5e3f813153344aa1311fe14e07a2a858c7ad5a4
Author: Serge Huber <[email protected]>
AuthorDate: Tue Oct 14 09:12:21 2025 +0200

    Refactor error handling in HealthCheckIT and 
OpenSearchPersistenceServiceImpl to use logging instead of printStackTrace.
    Update exception messages in IdsConditionESQueryBuilder and 
IdsConditionOSQueryBuilder to include maximum IDs query count for better 
clarity.
    Other general naming cleanup.
---
 .../org/apache/unomi/itests/HealthCheckIT.java     |  3 +-
 .../advanced/IdsConditionESQueryBuilder.java       |  2 +-
 .../advanced/IdsConditionOSQueryBuilder.java       |  2 +-
 .../OpenSearchPersistenceServiceImpl.java          | 39 +++++++++-------------
 4 files changed, 19 insertions(+), 27 deletions(-)

diff --git a/itests/src/test/java/org/apache/unomi/itests/HealthCheckIT.java 
b/itests/src/test/java/org/apache/unomi/itests/HealthCheckIT.java
index b9b779984..755d184c2 100644
--- a/itests/src/test/java/org/apache/unomi/itests/HealthCheckIT.java
+++ b/itests/src/test/java/org/apache/unomi/itests/HealthCheckIT.java
@@ -80,13 +80,12 @@ public class HealthCheckIT extends BaseIT {
             }
         } catch (Exception e) {
             LOGGER.error("Error performing GET request with url {}", url, e);
-            e.printStackTrace();
         } finally {
             if (response != null) {
                 try {
                     response.close();
                 } catch (IOException e) {
-                    e.printStackTrace();
+                    LOGGER.error("Error closing response: ", e);
                 }
             }
         }
diff --git 
a/persistence-elasticsearch/conditions/src/main/java/org/apache/unomi/persistence/elasticsearch/querybuilders/advanced/IdsConditionESQueryBuilder.java
 
b/persistence-elasticsearch/conditions/src/main/java/org/apache/unomi/persistence/elasticsearch/querybuilders/advanced/IdsConditionESQueryBuilder.java
index 50dc9f55f..5dfe96e83 100644
--- 
a/persistence-elasticsearch/conditions/src/main/java/org/apache/unomi/persistence/elasticsearch/querybuilders/advanced/IdsConditionESQueryBuilder.java
+++ 
b/persistence-elasticsearch/conditions/src/main/java/org/apache/unomi/persistence/elasticsearch/querybuilders/advanced/IdsConditionESQueryBuilder.java
@@ -40,7 +40,7 @@ public class IdsConditionESQueryBuilder implements 
ConditionESQueryBuilder {
 
         if (ids.size() > maximumIdsQueryCount) {
             // Avoid building too big ids query - throw exception instead
-            throw new UnsupportedOperationException("Too many profiles");
+            throw new UnsupportedOperationException("Too many profiles, 
exceeding the maximum number of ids query count: " + maximumIdsQueryCount);
         }
 
         Query idsQuery = Query.of(q -> q.ids(i -> 
i.values(ids.stream().toList())));
diff --git 
a/persistence-opensearch/conditions/src/main/java/org/apache/unomi/persistence/opensearch/querybuilders/advanced/IdsConditionOSQueryBuilder.java
 
b/persistence-opensearch/conditions/src/main/java/org/apache/unomi/persistence/opensearch/querybuilders/advanced/IdsConditionOSQueryBuilder.java
index 4fc967987..2ac25b63e 100644
--- 
a/persistence-opensearch/conditions/src/main/java/org/apache/unomi/persistence/opensearch/querybuilders/advanced/IdsConditionOSQueryBuilder.java
+++ 
b/persistence-opensearch/conditions/src/main/java/org/apache/unomi/persistence/opensearch/querybuilders/advanced/IdsConditionOSQueryBuilder.java
@@ -40,7 +40,7 @@ public class IdsConditionOSQueryBuilder implements 
ConditionOSQueryBuilder {
 
         if (ids.size() > maximumIdsQueryCount) {
             // Avoid building too big ids query - throw exception instead
-            throw new UnsupportedOperationException("Too many profiles");
+            throw new UnsupportedOperationException("Too many profiles, 
exceeding the maximum number of ids query count: " + maximumIdsQueryCount);
         }
 
         Query idsQuery = Query.of(q->q.ids(i->i.values(new 
ArrayList<String>(ids))));
diff --git 
a/persistence-opensearch/core/src/main/java/org/apache/unomi/persistence/opensearch/OpenSearchPersistenceServiceImpl.java
 
b/persistence-opensearch/core/src/main/java/org/apache/unomi/persistence/opensearch/OpenSearchPersistenceServiceImpl.java
index afff43ee2..04b79493f 100644
--- 
a/persistence-opensearch/core/src/main/java/org/apache/unomi/persistence/opensearch/OpenSearchPersistenceServiceImpl.java
+++ 
b/persistence-opensearch/core/src/main/java/org/apache/unomi/persistence/opensearch/OpenSearchPersistenceServiceImpl.java
@@ -406,7 +406,7 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
                 client.cluster().health(new 
HealthRequest.Builder().waitForStatus(getHealthStatus(minimalClusterState)).build());
                 LOGGER.info("Cluster status is {}", minimalClusterState);
 
-                // We keep in memory the latest available session index to be 
able to load session using direct GET access on ES
+                // We keep in memory the latest available session index to be 
able to load session using direct GET access on OpenSearch
                 if (isItemTypeRollingOver(Session.ITEM_TYPE)) {
                     LOGGER.info("Sessions are using rollover indices, loading 
latest session index available ...");
                     GetAliasResponse sessionAliasResponse = 
client.indices().getAlias(new 
GetAliasRequest.Builder().index(getIndex(Session.ITEM_TYPE)).build());
@@ -511,16 +511,16 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
         bundleContext.removeBundleListener(this);
     }
 
-    public void 
bindConditionOSQueryBuilder(ServiceReference<ConditionOSQueryBuilder> 
conditionESQueryBuilderServiceReference) {
-        ConditionOSQueryBuilder conditionOSQueryBuilder = 
bundleContext.getService(conditionESQueryBuilderServiceReference);
-        
conditionOSQueryBuilderDispatcher.addQueryBuilder(conditionESQueryBuilderServiceReference.getProperty("queryBuilderId").toString(),
 conditionOSQueryBuilder);
+    public void 
bindConditionOSQueryBuilder(ServiceReference<ConditionOSQueryBuilder> 
conditionOSQueryBuilderServiceReference) {
+        ConditionOSQueryBuilder conditionOSQueryBuilder = 
bundleContext.getService(conditionOSQueryBuilderServiceReference);
+        
conditionOSQueryBuilderDispatcher.addQueryBuilder(conditionOSQueryBuilderServiceReference.getProperty("queryBuilderId").toString(),
 conditionOSQueryBuilder);
     }
 
-    public void 
unbindConditionOSQueryBuilder(ServiceReference<ConditionOSQueryBuilder> 
conditionESQueryBuilderServiceReference) {
-        if (conditionESQueryBuilderServiceReference == null) {
+    public void 
unbindConditionOSQueryBuilder(ServiceReference<ConditionOSQueryBuilder> 
conditionOSQueryBuilderServiceReference) {
+        if (conditionOSQueryBuilderServiceReference == null) {
             return;
         }
-        
conditionOSQueryBuilderDispatcher.removeQueryBuilder(conditionESQueryBuilderServiceReference.getProperty("queryBuilderId").toString());
+        
conditionOSQueryBuilderDispatcher.removeQueryBuilder(conditionOSQueryBuilderServiceReference.getProperty("queryBuilderId").toString());
     }
 
     @Override
@@ -978,7 +978,6 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
                         Query queryBuilder = 
conditionOSQueryBuilderDispatcher.buildFilter(conditions[i]);
                         UpdateByQueryRequest.Builder 
updateByQueryRequestBuilder = new UpdateByQueryRequest.Builder().index(indices);
                         
updateByQueryRequestBuilder.conflicts(Conflicts.Proceed);
-                        // TODO fix this 
updateByQueryRequest.setMaxRetries(1000);
                         updateByQueryRequestBuilder.slices(s -> 
s.calculation(SlicesCalculation.Auto));
                         updateByQueryRequestBuilder.script(scripts[i]);
                         
updateByQueryRequestBuilder.query(wrapWithItemsTypeQuery(itemTypes, 
queryBuilder));
@@ -991,17 +990,12 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
                         } else if (waitForComplete) {
                             
waitForTaskComplete(updateByQueryRequest.toString(), 
updateByQueryRequest.toString(), updateByQueryResponse.task());
                         } else {
-                            LOGGER.debug("ES task started {}", 
updateByQueryResponse.task());
+                            LOGGER.debug("OpenSearch task started {}", 
updateByQueryResponse.task());
                         }
                     }
                     return true;
                 } catch (OpenSearchException ose) {
-                    throw new Exception("No index found for itemTypes=" + 
String.join(",", itemTypes), ose);
-                    /* TODO Implement this
-                } catch (ScriptException e) {
-                    LOGGER.error("Error in the update script : {}\n{}\n{}", 
e.getScript(), e.getDetailedMessage(), e.getScriptStack());
-                    throw new Exception("Error in the update script");
-                     */
+                    throw new Exception("Error updating with query and script 
for itemTypes=" + String.join(",", itemTypes), ose);
                 }
             }
         }.catchingExecuteInClassLoader(true);
@@ -1316,7 +1310,6 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
                     return response.getStatus() == 200;
                 } catch (Exception e) {
                     LOGGER.error("Error registering rollover lifecycle 
policy", e);
-                    e.printStackTrace();
                     return false;
                 }
             }
@@ -1485,15 +1478,15 @@ public class OpenSearchPersistenceServiceImpl 
implements PersistenceService, Syn
     }
 
     private Map<String, Object> createPropertyMapping(final PropertyType 
property) {
-        final String esType = 
convertValueTypeToESType(property.getValueTypeId());
+        final String osType = 
convertValueTypeToOSType(property.getValueTypeId());
         final HashMap<String, Object> definition = new HashMap<>();
 
-        if (esType == null) {
+        if (osType == null) {
             LOGGER.warn("No predefined type found for property[{}], no mapping 
will be created", property.getValueTypeId());
             return Collections.emptyMap();
         } else {
-            definition.put("type", esType);
-            if ("text".equals(esType)) {
+            definition.put("type", osType);
+            if ("text".equals(osType)) {
                 definition.put("analyzer", "folding");
                 final Map<String, Object> fields = new HashMap<>();
                 final Map<String, Object> keywordField = new HashMap<>();
@@ -1518,7 +1511,7 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
         return Collections.singletonMap(property.getItemId(), definition);
     }
 
-    private String convertValueTypeToESType(String valueTypeId) {
+    private String convertValueTypeToOSType(String valueTypeId) {
         switch (valueTypeId) {
             case "set":
             case "json":
@@ -2282,7 +2275,7 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
                 try {
                     client.indices().refresh(r->r);
                 } catch (IOException e) {
-                    e.printStackTrace();//TODO manage ES7
+                    LOGGER.error("Error on refresh: ", e);
                 }
                 return true;
             }
@@ -2298,7 +2291,7 @@ public class OpenSearchPersistenceServiceImpl implements 
PersistenceService, Syn
                     String index = getIndex(itemType);
                     client.indices().refresh(r->r.index(index));
                 } catch (IOException e) {
-                    e.printStackTrace();//TODO manage ES7
+                    LOGGER.error("Error on refreshIndex: ", e);
                 }
                 return true;
             }

Reply via email to