adamsaghy commented on code in PR #4697:
URL: https://github.com/apache/fineract/pull/4697#discussion_r2107264556


##########
fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/export/S3DatatableReportExportServiceImpl.java:
##########
@@ -51,9 +52,20 @@ public ResponseHolder export(String reportName, 
MultivaluedMap<String, String> q
                     isSelfServiceUserReport);
             try (ByteArrayOutputStream byteArrayOutputStream = new 
ByteArrayOutputStream()) {
                 output.write(byteArrayOutputStream);
+                byte[] fileBytes = byteArrayOutputStream.toByteArray();
+                if (fileBytes.length == 0) {
+                    throw new IllegalStateException("Can not upload empty 
report content to S3");
+                }
+                String bucketName = 
properties.getReport().getExport().getS3().getBucketName();
+                if (StringUtils.isBlank(bucketName)) {
+                    throw new IllegalStateException("S3 bucket name is not 
configured");
+                }
                 String folder = 
configurationDomainService.retrieveReportExportS3FolderName();
                 String filePath = 
DatatableExportUtil.generateS3DatatableExportFileName(AWS_S3_MAXIMUM_KEY_LENGTH,
 folder, "csv",
                         reportName, reportParams);
+                if (fileBytes.length > AWS_S3_MAXIMUM_KEY_LENGTH) {

Review Comment:
   Also please make sure you are adding test cases which covers the correct 
exception is thrown in the above handled situations. You can use unit test to 
target the exception handling



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to