From 4c8a133000fea250b7636faba6cc3681df6b7e7c Mon Sep 17 00:00:00 2001
From: AJoshi19 <ajoshi19@slb.com>
Date: Tue, 14 Jan 2025 15:07:37 -0600
Subject: [PATCH] handle at globalexcmapper only

---
 .../util/DetailedBadRequestMessageUtil.java   | 11 ++------
 .../DetailedBadRequestMessageUtilTest.java    | 25 +------------------
 2 files changed, 3 insertions(+), 33 deletions(-)

diff --git a/search-core/src/main/java/org/opengroup/osdu/search/util/DetailedBadRequestMessageUtil.java b/search-core/src/main/java/org/opengroup/osdu/search/util/DetailedBadRequestMessageUtil.java
index cbe98facc..c128cd706 100644
--- a/search-core/src/main/java/org/opengroup/osdu/search/util/DetailedBadRequestMessageUtil.java
+++ b/search-core/src/main/java/org/opengroup/osdu/search/util/DetailedBadRequestMessageUtil.java
@@ -30,10 +30,8 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpEntity;
-import org.apache.logging.log4j.util.Strings;
 import org.elasticsearch.client.Response;
 import org.elasticsearch.client.ResponseException;
-import org.opengroup.osdu.search.config.SearchConfigurationProperties;
 import org.springframework.stereotype.Component;
 
 @Slf4j
@@ -42,14 +40,13 @@ import org.springframework.stereotype.Component;
 public class DetailedBadRequestMessageUtil implements IDetailedBadRequestMessageUtil {
 
   private final ObjectMapper objectMapper;
-  private final SearchConfigurationProperties configurationProperties;
 
   @Override
   public String getDetailedBadRequestMessage(SearchRequest searchRequest, Exception e) {
     String defaultErrorMessage = "Invalid parameters were given on search request";
     Throwable[] suppressed = e.getSuppressed();
     if (suppressed != null && suppressed.length > 0) {
-      String fullReasonMessage = extractAndCombineReasonMessages(e, suppressed);
+      String fullReasonMessage = extractAndCombineReasonMessages(suppressed);
       if (StringUtils.isNotEmpty(fullReasonMessage)) {
         return fullReasonMessage;
       }
@@ -75,17 +72,13 @@ public class DetailedBadRequestMessageUtil implements IDetailedBadRequestMessage
     return defaultErrorMessage;
   }
 
-  private String extractAndCombineReasonMessages(Exception e, Throwable[] suppressed) {
+  private String extractAndCombineReasonMessages(Throwable[] suppressed) {
     StringJoiner stringJoiner = new StringJoiner(".");
     for (Throwable throwable : suppressed) {
       if (throwable instanceof ResponseException) {
         ResponseException responseException = (ResponseException) throwable;
         Response response = responseException.getResponse();
         HttpEntity entity = response.getEntity();
-        if (entity.getContentLength() > configurationProperties.getMaxExceptionLogMessageLength()) {
-          log.error(String.format("%s. Truncating response for logging, error message content length: %s is too big.", e.getMessage(), entity.getContentLength()));
-          return Strings.EMPTY;
-        }
         try {
           InputStream content = entity.getContent();
           JsonNode errorNode = objectMapper.readValue(content, JsonNode.class);
diff --git a/search-core/src/test/java/org/opengroup/osdu/search/util/DetailedBadRequestMessageUtilTest.java b/search-core/src/test/java/org/opengroup/osdu/search/util/DetailedBadRequestMessageUtilTest.java
index 3e9561cdd..5ce916029 100644
--- a/search-core/src/test/java/org/opengroup/osdu/search/util/DetailedBadRequestMessageUtilTest.java
+++ b/search-core/src/test/java/org/opengroup/osdu/search/util/DetailedBadRequestMessageUtilTest.java
@@ -17,14 +17,12 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.junit.MockitoJUnitRunner;
-import org.opengroup.osdu.search.config.SearchConfigurationProperties;
 
 @RunWith(MockitoJUnitRunner.class)
 public class DetailedBadRequestMessageUtilTest {
 
     private static final String NESTED_FAIL_REASON = "failed to create query: [nested] failed to find nested object under path [data.NameAliases]";
     private static final String GEO_FIELD_FAIL_REASON = "failed to find geo field [officeAddress]";
-    private static final String GENERIC_FAIL_REASON = "Invalid parameters were given on search request";
     private final ObjectMapper objectMapper = new ObjectMapper();
 
     private DetailedBadRequestMessageUtil badRequestMessageUtil;
@@ -34,13 +32,9 @@ public class DetailedBadRequestMessageUtilTest {
     @Mock
     private SearchRequest searchRequest;
 
-    @Mock
-    private SearchConfigurationProperties configurationProperties;
-
     @Before
     public void setUp() {
-        when(this.configurationProperties.getMaxExceptionLogMessageLength()).thenReturn(5000);
-        badRequestMessageUtil = new DetailedBadRequestMessageUtil(objectMapper, configurationProperties);
+        badRequestMessageUtil = new DetailedBadRequestMessageUtil(objectMapper);
     }
     
     @Test
@@ -56,7 +50,6 @@ public class DetailedBadRequestMessageUtilTest {
         when(responseMock.getEntity()).thenReturn(httpEntityMock);
         when(httpEntityMock.getContent()).thenReturn(getResponseContent("nestedfail.json"));
         when(elasticsearchStatusExceptionMock.getSuppressed()).thenReturn(throwable);
-        when(httpEntityMock.getContentLength()).thenReturn(100L);
 
         String detailedBadRequestMessage = badRequestMessageUtil.getDetailedBadRequestMessage(searchRequest, elasticsearchStatusExceptionMock);
         assertEquals(NESTED_FAIL_REASON, detailedBadRequestMessage);
@@ -68,7 +61,6 @@ public class DetailedBadRequestMessageUtilTest {
         Response responseMock = Mockito.mock(Response.class);
         HttpEntity httpEntityMock = Mockito.mock(HttpEntity.class);
 
-        when(httpEntityMock.getContentLength()).thenReturn(100L);
         when(responseExceptionMock.getResponse()).thenReturn(responseMock);
         when(responseMock.getEntity()).thenReturn(httpEntityMock);
         when(httpEntityMock.getContent()).thenReturn(getResponseContent("nestedfail.json"));
@@ -91,21 +83,6 @@ public class DetailedBadRequestMessageUtilTest {
         assertEquals(NESTED_FAIL_REASON + "." + GEO_FIELD_FAIL_REASON, detailedBadRequestMessage);
     }
 
-    @Test
-    public void testSingleResponse_maxLength() throws IOException {
-        ResponseException responseExceptionMock = Mockito.mock(ResponseException.class);
-        Response responseMock = Mockito.mock(Response.class);
-        HttpEntity httpEntityMock = Mockito.mock(HttpEntity.class);
-        ElasticsearchException elasticsearchStatusExceptionMock = Mockito.mock(ElasticsearchException.class);
-        throwable = new Throwable[]{responseExceptionMock};
-        when(responseExceptionMock.getResponse()).thenReturn(responseMock);
-        when(responseMock.getEntity()).thenReturn(httpEntityMock);
-        when(elasticsearchStatusExceptionMock.getSuppressed()).thenReturn(throwable);
-        when(httpEntityMock.getContentLength()).thenReturn(10000L);
-        String detailedBadRequestMessage = badRequestMessageUtil.getDetailedBadRequestMessage(searchRequest, elasticsearchStatusExceptionMock);
-        assertEquals(GENERIC_FAIL_REASON, detailedBadRequestMessage);
-    }
-
     private InputStream getResponseContent(String fileName) {
         return this.getClass().getResourceAsStream("/errorresponses/" + fileName);
     }
-- 
GitLab