From 8bf0eb6325f5762c24e9d50143aaa2901dd838ca Mon Sep 17 00:00:00 2001 From: mansimaurya Date: Mon, 16 Mar 2026 14:43:52 +0000 Subject: [PATCH 1/2] FINERACT-2529: pass externalId instead of null resolvedClientId in ClientNotFoundException --- .../fineract/portfolio/client/api/ClientsApiResource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java index c980cc986a7..bf93146b8be 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java @@ -460,7 +460,7 @@ private Long getResolvedClientId(final Long clientId, final ExternalId clientExt clientExternalId.throwExceptionIfEmpty(); resolvedClientId = clientReadPlatformService.retrieveClientIdByExternalId(clientExternalId); if (resolvedClientId == null) { - throw new ClientNotFoundException(resolvedClientId); + throw new ClientNotFoundException(clientExternalId); } } return resolvedClientId; From eb9542efae2f1a0237bb1e39c195bfe3d77ba62b Mon Sep 17 00:00:00 2001 From: mansimaurya Date: Wed, 18 Mar 2026 11:08:12 +0000 Subject: [PATCH 2/2] FINERACT-2529: improve ClientNotFoundException message and BatchApi rollback assertion for externalId lookup --- .../portfolio/client/exception/ClientNotFoundException.java | 2 +- .../apache/fineract/test/stepdef/common/BatchApiStepDef.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/client/exception/ClientNotFoundException.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/client/exception/ClientNotFoundException.java index 56e08b4ed60..e12e5247932 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/client/exception/ClientNotFoundException.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/client/exception/ClientNotFoundException.java @@ -32,7 +32,7 @@ public ClientNotFoundException(final Long id) { } public ClientNotFoundException(final ExternalId externalId) { - super("error.msg.client.id.invalid", "Client with identifier " + externalId + " does not exist", externalId); + super("error.msg.client.id.invalid", "Client with identifier " + externalId.getValue() + " does not exist", externalId.getValue()); } public ClientNotFoundException() { diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BatchApiStepDef.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BatchApiStepDef.java index 0bbec9400f5..a06927ec580 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BatchApiStepDef.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BatchApiStepDef.java @@ -115,7 +115,7 @@ public class BatchApiStepDef extends AbstractStepDef { private static final Long CHARGE_ID_NFS_FEE = ChargeProductType.LOAN_NSF_FEE.value; private static final String ERROR_DEVELOPER_MESSAGE = "The requested resource is not available."; private static final Integer ERROR_HTTP_404 = 404; - private static final String ERROR_DEVELOPER_MESSAGE_CLIENT = "Client with identifier null does not exist"; + private static final String ERROR_DEVELOPER_MESSAGE_CLIENT = "Client with identifier {externalId} does not exist"; private static final String ERROR_DEVELOPER_MESSAGE_LOAN_EXTERNAL = "Loan with external identifier {externalId} does not exist"; private static final String PWD_USER_WITH_ROLE = "1234567890Aa!"; @@ -921,7 +921,7 @@ public void clientNotCreated(int nr) throws IOException { String developerMessageExpected = ERROR_DEVELOPER_MESSAGE; Integer httpStatusCodeExpected = ERROR_HTTP_404; - String errorsDeveloperMessageExpected = ERROR_DEVELOPER_MESSAGE_CLIENT; + String errorsDeveloperMessageExpected = ERROR_DEVELOPER_MESSAGE_CLIENT.replace("{externalId}", clientExternalId); assertThat(developerMessageActual).as(ErrorMessageHelper.wrongErrorMessage(developerMessageActual, developerMessageExpected)) .isEqualTo(developerMessageExpected);