From c86a250a42f9675d185c00f98ba152a60e46585d Mon Sep 17 00:00:00 2001 From: Martin Riese Date: Wed, 11 Feb 2026 10:17:52 -0600 Subject: [PATCH] Add debug logging We have a bug with case search and want to know how prevalent it is in production. On the BHA domains in manifests with the first column in the case search results being "####". --- .../application/MenuController.java | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/commcare/formplayer/application/MenuController.java b/src/main/java/org/commcare/formplayer/application/MenuController.java index 2176f24e0..d6e3b8ca7 100644 --- a/src/main/java/org/commcare/formplayer/application/MenuController.java +++ b/src/main/java/org/commcare/formplayer/application/MenuController.java @@ -11,10 +11,7 @@ import org.commcare.formplayer.beans.ResponseMetaData; import org.commcare.formplayer.beans.SessionNavigationBean; import org.commcare.formplayer.beans.SubmitResponseBean; -import org.commcare.formplayer.beans.menus.BaseResponseBean; -import org.commcare.formplayer.beans.menus.EntityDetailListResponse; -import org.commcare.formplayer.beans.menus.EntityDetailResponse; -import org.commcare.formplayer.beans.menus.LocationRelevantResponseBean; +import org.commcare.formplayer.beans.menus.*; import org.commcare.formplayer.services.FormplayerStorageFactory; import org.commcare.formplayer.services.MenuSessionFactory; import org.commcare.formplayer.services.ResponseMetaDataTracker; @@ -185,6 +182,10 @@ public BaseResponseBean navigateSessionWithAuth(@RequestBody SessionNavigationBe sessionNavigationBean.getFormSessionId() ); + String domain = sessionNavigationBean.getDomain(); + if (domain != null && domain.startsWith("co-carecoordination")) { + log4Hashes(response); + } setResponseMetaData(response); SubmitResponseBean formSubmissionResponse = handleAutoFormSubmission(request, sessionNavigationBean, @@ -197,6 +198,25 @@ public BaseResponseBean navigateSessionWithAuth(@RequestBody SessionNavigationBe } } + private void log4Hashes(BaseResponseBean response) { + + if (response instanceof EntityListResponse entityListResponse && + entityListResponse.getEntities().length > 0 && + entityListResponse.getHeaders().length > 0 + ) { + int fourHashCount = 0; + for (EntityBean entity : entityListResponse.getEntities()) { + Object[] data = entity.getData(); + if (data.length > 0 && data[0] != null && data[0].toString().equals("####")) { + fourHashCount++; + } + } + if (fourHashCount > 0) { + log.error("USH-6370 response with " + fourHashCount + " leading #### in first column"); + } + } + } + private void setResponseMetaData(BaseResponseBean response) { ResponseMetaData responseMetaData = new ResponseMetaData(responseMetaDataTracker.isAttemptRestore(), responseMetaDataTracker.isNewInstall());