From 92db1ed53e5dda7d51e0fa6fa5d56960b2c9597a Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Fri, 13 Feb 2026 13:38:54 +0530 Subject: [PATCH 1/4] SK-2548 fix network http failure --- .../vault/controller/DetectController.java | 13 ++++++++++ .../vault/controller/VaultController.java | 25 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/main/java/com/skyflow/vault/controller/DetectController.java b/src/main/java/com/skyflow/vault/controller/DetectController.java index 5801d688..57446931 100644 --- a/src/main/java/com/skyflow/vault/controller/DetectController.java +++ b/src/main/java/com/skyflow/vault/controller/DetectController.java @@ -9,6 +9,7 @@ import com.skyflow.errors.ErrorMessage; import com.skyflow.errors.SkyflowException; import com.skyflow.generated.rest.core.ApiClientApiException; +import com.skyflow.generated.rest.core.ApiClientException; import com.skyflow.generated.rest.core.RequestOptions; import com.skyflow.generated.rest.resources.files.requests.*; import com.skyflow.generated.rest.resources.strings.requests.DeidentifyStringRequest; @@ -66,6 +67,9 @@ public DeidentifyTextResponse deidentifyText(DeidentifyTextRequest deidentifyTex String bodyString = extractBodyAsString(ex); LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_TEXT_REQUEST_REJECTED.getLog()); throw new SkyflowException(ex.statusCode(), ex, ex.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_TEXT_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } LogUtil.printInfoLog(InfoLogs.DEIDENTIFY_TEXT_SUCCESS.getLog()); return deidentifyTextResponse; @@ -94,6 +98,9 @@ public ReidentifyTextResponse reidentifyText(ReidentifyTextRequest reidentifyTex String bodyString = extractBodyAsString(ex); LogUtil.printErrorLog(ErrorLogs.REIDENTIFY_TEXT_REQUEST_REJECTED.getLog()); throw new SkyflowException(ex.statusCode(), ex, ex.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.REIDENTIFY_TEXT_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } LogUtil.printInfoLog(InfoLogs.REIDENTIFY_TEXT_SUCCESS.getLog()); return reidentifyTextResponse; @@ -180,6 +187,9 @@ public DeidentifyFileResponse deidentifyFile(DeidentifyFileRequest request) thro String bodyString = extractBodyAsString(e); LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_FILE_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_FILE_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } return response; } @@ -431,6 +441,9 @@ public DeidentifyFileResponse getDetectRun(GetDetectRunRequest request) throws S String bodyString = extractBodyAsString(e); LogUtil.printErrorLog(ErrorLogs.GET_DETECT_RUN_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.GET_DETECT_RUN_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } } } diff --git a/src/main/java/com/skyflow/vault/controller/VaultController.java b/src/main/java/com/skyflow/vault/controller/VaultController.java index acac9608..55dd6338 100644 --- a/src/main/java/com/skyflow/vault/controller/VaultController.java +++ b/src/main/java/com/skyflow/vault/controller/VaultController.java @@ -22,6 +22,7 @@ import com.skyflow.errors.ErrorCode; import com.skyflow.errors.SkyflowException; import com.skyflow.generated.rest.core.ApiClientApiException; +import com.skyflow.generated.rest.core.ApiClientException; import com.skyflow.generated.rest.core.ApiClientHttpResponse; import com.skyflow.generated.rest.core.RequestOptions; import com.skyflow.generated.rest.resources.query.requests.QueryServiceExecuteQueryBody; @@ -202,6 +203,9 @@ public InsertResponse insert(InsertRequest insertRequest) throws SkyflowExceptio String bodyString = GSON.toJson(e.body()); LogUtil.printErrorLog(ErrorLogs.INSERT_RECORDS_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.INSERT_RECORDS_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } LogUtil.printInfoLog(InfoLogs.INSERT_SUCCESS.getLog()); if (insertedFields.isEmpty()) { @@ -247,6 +251,9 @@ public DetokenizeResponse detokenize(DetokenizeRequest detokenizeRequest) throws String bodyString = GSON.toJson(e.body()); LogUtil.printErrorLog(ErrorLogs.DETOKENIZE_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.DETOKENIZE_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } if (!errorRecords.isEmpty()) { @@ -304,6 +311,9 @@ public GetResponse get(GetRequest getRequest) throws SkyflowException { String bodyString = GSON.toJson(e.body()); LogUtil.printErrorLog(ErrorLogs.GET_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.GET_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } LogUtil.printInfoLog(InfoLogs.GET_SUCCESS.getLog()); return new GetResponse(data, null); @@ -334,6 +344,9 @@ public UpdateResponse update(UpdateRequest updateRequest) throws SkyflowExceptio String bodyString = GSON.toJson(e.body()); LogUtil.printErrorLog(ErrorLogs.UPDATE_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.UPDATE_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } LogUtil.printInfoLog(InfoLogs.UPDATE_SUCCESS.getLog()); return new UpdateResponse(skyflowId, tokensMap); @@ -357,6 +370,9 @@ public DeleteResponse delete(DeleteRequest deleteRequest) throws SkyflowExceptio String bodyString = GSON.toJson(e.body()); LogUtil.printErrorLog(ErrorLogs.DELETE_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.DELETE_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } LogUtil.printInfoLog(InfoLogs.DELETE_SUCCESS.getLog()); return new DeleteResponse(result.getRecordIdResponse().get()); @@ -387,6 +403,9 @@ public QueryResponse query(QueryRequest queryRequest) throws SkyflowException { String bodyString = GSON.toJson(e.body()); LogUtil.printErrorLog(ErrorLogs.QUERY_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.QUERY_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } LogUtil.printInfoLog(InfoLogs.QUERY_SUCCESS.getLog()); return new QueryResponse(fields); @@ -415,6 +434,9 @@ public TokenizeResponse tokenize(TokenizeRequest tokenizeRequest) throws Skyflow String bodyString = GSON.toJson(e.body()); LogUtil.printErrorLog(ErrorLogs.TOKENIZE_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.TOKENIZE_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } LogUtil.printInfoLog(InfoLogs.TOKENIZE_SUCCESS.getLog()); return new TokenizeResponse(list); @@ -454,6 +476,9 @@ public FileUploadResponse uploadFile(FileUploadRequest fileUploadRequest) throws String bodyString = GSON.toJson(e.body()); LogUtil.printErrorLog(ErrorLogs.UPLOAD_FILE_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); + } catch (ApiClientException e) { + LogUtil.printErrorLog(ErrorLogs.UPLOAD_FILE_REQUEST_REJECTED.getLog()); + throw new SkyflowException(e.getMessage(), e.getCause()); } catch (IOException e) { LogUtil.printErrorLog(ErrorLogs.UPLOAD_FILE_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.getMessage(), e); From 340fa5eaeab5c7fe62a8ca50e81f942e55b45311 Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Fri, 13 Feb 2026 18:09:14 +0530 Subject: [PATCH 2/4] SK-2548 add test case --- .../com/skyflow/errors/SkyflowException.java | 5 + .../vault/controller/DetectController.java | 8 +- .../vault/controller/VaultController.java | 16 +- .../controller/VaultControllerTests.java | 150 +++++++++++++++++- 4 files changed, 166 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/skyflow/errors/SkyflowException.java b/src/main/java/com/skyflow/errors/SkyflowException.java index 32c71f39..a971dc7e 100644 --- a/src/main/java/com/skyflow/errors/SkyflowException.java +++ b/src/main/java/com/skyflow/errors/SkyflowException.java @@ -32,6 +32,11 @@ public SkyflowException(String message, Throwable cause) { super(message, cause); this.message = message; } + public SkyflowException(String message, Throwable cause, int httpCode) { + super(message, cause); + this.message = message; + this.httpCode = httpCode; + } public SkyflowException(int code, String message) { super(message); diff --git a/src/main/java/com/skyflow/vault/controller/DetectController.java b/src/main/java/com/skyflow/vault/controller/DetectController.java index 57446931..67ebf65e 100644 --- a/src/main/java/com/skyflow/vault/controller/DetectController.java +++ b/src/main/java/com/skyflow/vault/controller/DetectController.java @@ -69,7 +69,7 @@ public DeidentifyTextResponse deidentifyText(DeidentifyTextRequest deidentifyTex throw new SkyflowException(ex.statusCode(), ex, ex.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_TEXT_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } LogUtil.printInfoLog(InfoLogs.DEIDENTIFY_TEXT_SUCCESS.getLog()); return deidentifyTextResponse; @@ -100,7 +100,7 @@ public ReidentifyTextResponse reidentifyText(ReidentifyTextRequest reidentifyTex throw new SkyflowException(ex.statusCode(), ex, ex.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.REIDENTIFY_TEXT_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } LogUtil.printInfoLog(InfoLogs.REIDENTIFY_TEXT_SUCCESS.getLog()); return reidentifyTextResponse; @@ -189,7 +189,7 @@ public DeidentifyFileResponse deidentifyFile(DeidentifyFileRequest request) thro throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_FILE_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } return response; } @@ -443,7 +443,7 @@ public DeidentifyFileResponse getDetectRun(GetDetectRunRequest request) throws S throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.GET_DETECT_RUN_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } } } diff --git a/src/main/java/com/skyflow/vault/controller/VaultController.java b/src/main/java/com/skyflow/vault/controller/VaultController.java index 55dd6338..cbf0a70f 100644 --- a/src/main/java/com/skyflow/vault/controller/VaultController.java +++ b/src/main/java/com/skyflow/vault/controller/VaultController.java @@ -205,7 +205,7 @@ public InsertResponse insert(InsertRequest insertRequest) throws SkyflowExceptio throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.INSERT_RECORDS_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } LogUtil.printInfoLog(InfoLogs.INSERT_SUCCESS.getLog()); if (insertedFields.isEmpty()) { @@ -253,7 +253,7 @@ public DetokenizeResponse detokenize(DetokenizeRequest detokenizeRequest) throws throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.DETOKENIZE_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } if (!errorRecords.isEmpty()) { @@ -313,7 +313,7 @@ public GetResponse get(GetRequest getRequest) throws SkyflowException { throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.GET_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } LogUtil.printInfoLog(InfoLogs.GET_SUCCESS.getLog()); return new GetResponse(data, null); @@ -346,7 +346,7 @@ public UpdateResponse update(UpdateRequest updateRequest) throws SkyflowExceptio throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.UPDATE_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } LogUtil.printInfoLog(InfoLogs.UPDATE_SUCCESS.getLog()); return new UpdateResponse(skyflowId, tokensMap); @@ -372,7 +372,7 @@ public DeleteResponse delete(DeleteRequest deleteRequest) throws SkyflowExceptio throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.DELETE_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } LogUtil.printInfoLog(InfoLogs.DELETE_SUCCESS.getLog()); return new DeleteResponse(result.getRecordIdResponse().get()); @@ -405,7 +405,7 @@ public QueryResponse query(QueryRequest queryRequest) throws SkyflowException { throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.QUERY_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } LogUtil.printInfoLog(InfoLogs.QUERY_SUCCESS.getLog()); return new QueryResponse(fields); @@ -436,7 +436,7 @@ public TokenizeResponse tokenize(TokenizeRequest tokenizeRequest) throws Skyflow throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.TOKENIZE_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } LogUtil.printInfoLog(InfoLogs.TOKENIZE_SUCCESS.getLog()); return new TokenizeResponse(list); @@ -478,7 +478,7 @@ public FileUploadResponse uploadFile(FileUploadRequest fileUploadRequest) throws throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString); } catch (ApiClientException e) { LogUtil.printErrorLog(ErrorLogs.UPLOAD_FILE_REQUEST_REJECTED.getLog()); - throw new SkyflowException(e.getMessage(), e.getCause()); + throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode()); } catch (IOException e) { LogUtil.printErrorLog(ErrorLogs.UPLOAD_FILE_REQUEST_REJECTED.getLog()); throw new SkyflowException(e.getMessage(), e); diff --git a/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java b/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java index 4115bc2c..e822c179 100644 --- a/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java +++ b/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java @@ -13,11 +13,15 @@ import com.skyflow.utils.Constants; import com.skyflow.utils.Utils; import com.skyflow.vault.data.*; +import com.skyflow.vault.tokens.DetokenizeData; import com.skyflow.vault.tokens.DetokenizeRequest; import com.skyflow.vault.tokens.TokenizeRequest; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; public class VaultControllerTests { private static final String INVALID_EXCEPTION_THROWN = "Should not have thrown any exception"; @@ -185,4 +189,148 @@ public void testInvalidRequestInFileUploadMethod() { } } -} + @Test + public void testApiClientExceptionInInsertMethod() { + try { + ArrayList> values1 = new ArrayList<>(); + HashMap value1 = new HashMap<>(); + value1.put("", ""); + values1.add(value1); + InsertRequest request = InsertRequest.builder().table("table1").values(values1).build(); + + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.vault().insert(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + + @Test + public void testApiClientExceptionInDetokenizeMethod() { + try { + DetokenizeData data = new DetokenizeData("token"); + ArrayList detokenizeData = new ArrayList<>(); + detokenizeData.add(data); + DetokenizeRequest request = DetokenizeRequest.builder().detokenizeData(detokenizeData).build(); + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.vault().detokenize(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + + @Test + public void testApiClientExceptionInGetMethod() { + try { + ArrayList skyflowIds = new ArrayList<>(); + skyflowIds.add(""); // Replace with the Skyflow + GetRequest request = GetRequest.builder().ids(skyflowIds).table("table1").build(); + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.vault().get(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + + @Test + public void testApiClientExceptionInUpdateMethod() { + try { + HashMap data1 = new HashMap<>(); + data1.put("skyflow_id", ""); // Replace with the Skyflow ID of the record + + UpdateRequest request = UpdateRequest.builder().data(data1).table("table1").build(); + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.vault().update(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + + @Test + public void testApiClientExceptionInDeleteMethod() { + try { + ArrayList skyflowIds = new ArrayList<>(); + skyflowIds.add(""); // Replace with the Skyflow + DeleteRequest request = DeleteRequest.builder().ids(skyflowIds).table("table1").build(); + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.vault().delete(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + + @Test + public void testApiClientExceptionInQueryMethod() { + try { + QueryRequest request = QueryRequest.builder().query("SELECT * FROM table1").build(); + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.vault().query(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + + @Test + public void testApiClientExceptionInTokenizeMethod() { + try { + List columnValues = new ArrayList<>(); + columnValues.add(com.skyflow.vault.tokens.ColumnValue.builder().value("val").columnGroup("grp").build()); + TokenizeRequest request = TokenizeRequest.builder().values(columnValues).build(); + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.vault().tokenize(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + + @Test + public void testApiClientExceptionInFileUploadMethod() { + try { + FileUploadRequest request = FileUploadRequest.builder().columnName("column").table("table1").filePath("./src/test/resources/noPrivateKeyCredentials.json").build(); + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.vault().uploadFile(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } +} \ No newline at end of file From 40911238bf5b7dab925d0073872faf224dadff04 Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Fri, 13 Feb 2026 18:20:39 +0530 Subject: [PATCH 3/4] SK-2548 add test case for detect --- .../controller/DetectControllerFileTests.java | 32 ++++++++++++++++++ .../controller/DetectControllerTests.java | 33 ++++++++++++++++++- 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/skyflow/vault/controller/DetectControllerFileTests.java b/src/test/java/com/skyflow/vault/controller/DetectControllerFileTests.java index da8494e1..3540c160 100644 --- a/src/test/java/com/skyflow/vault/controller/DetectControllerFileTests.java +++ b/src/test/java/com/skyflow/vault/controller/DetectControllerFileTests.java @@ -406,4 +406,36 @@ public void testOutputDirectoryNotWritable() throws Exception { dir.delete(); } } + + @Test + public void testApiClientExceptionInDeidentifyFileMethod() throws Exception { + try { + File file = File.createTempFile("test", ".txt"); + FileInput fileInput = FileInput.builder().file(file).build(); + DeidentifyFileRequest request = DeidentifyFileRequest.builder().file(fileInput).waitTime(1).build(); + detectController.deidentifyFile(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + + @Test + public void testApiClientExceptionInGetDetectRunMethod() { + try { + GetDetectRunRequest request = GetDetectRunRequest.builder().runId("dummy-run-id").build(); + detectController.getDetectRun(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } } \ No newline at end of file diff --git a/src/test/java/com/skyflow/vault/controller/DetectControllerTests.java b/src/test/java/com/skyflow/vault/controller/DetectControllerTests.java index aae713b1..c8ee7a65 100644 --- a/src/test/java/com/skyflow/vault/controller/DetectControllerTests.java +++ b/src/test/java/com/skyflow/vault/controller/DetectControllerTests.java @@ -117,5 +117,36 @@ public void testEmptyTextInRequestInReidentifyStringMethod() { } } -} + @Test + public void testApiClientExceptionInDeidentifyTextMethod() { + try { + DeidentifyTextRequest request = DeidentifyTextRequest.builder().text("Sensitive text").build(); + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.detect(vaultID).deidentifyText(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(com.skyflow.errors.ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + @Test + public void testApiClientExceptionInReidentifyTextMethod() { + try { + ReidentifyTextRequest request = ReidentifyTextRequest.builder().text("Deidentified text").build(); + skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build(); + skyflowClient.detect(vaultID).reidentifyText(request); + Assert.fail(EXCEPTION_NOT_THROWN); + } catch (SkyflowException e) { + Assert.assertEquals("Network error executing HTTP request", e.getMessage()); + Assert.assertNull(e.getRequestId()); + Assert.assertNull(e.getGrpcCode()); + Assert.assertNull(e.getDetails()); + Assert.assertEquals(com.skyflow.errors.ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + } + } + +} From edd35a7e71e239c5f56e65ef4917299799c245c0 Mon Sep 17 00:00:00 2001 From: skyflow-bharti Date: Thu, 19 Feb 2026 13:31:06 +0000 Subject: [PATCH 4/4] [AUTOMATED] Private Release 2.0.2-dev-e2476a7 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 62eccea7..9c0115d8 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.skyflow skyflow-java - 2.0.2 + 2.0.2-dev.e2476a7 jar ${project.groupId}:${project.artifactId}