From 9a487a060b43ce668a3f3b169485dd0bcd674c3d Mon Sep 17 00:00:00 2001 From: percyashu Date: Tue, 16 Jun 2020 20:00:16 +0100 Subject: [PATCH] FINERACT-822 Enforce StringSplitter check --- fineract-provider/build.gradle | 3 +- .../ActivateClientCommandStrategy.java | 6 ++- .../internal/ApproveLoanCommandStrategy.java | 6 ++- .../ApproveLoanRescheduleCommandStrategy.java | 6 ++- .../CollectChargesCommandStrategy.java | 6 ++- .../internal/CreateChargeCommandStrategy.java | 6 ++- .../internal/DisburseLoanCommandStrategy.java | 6 ++- .../internal/RepayLoanCommandStrategy.java | 6 ++- .../batch/service/ResolutionHelper.java | 3 +- .../importhandler/ImportHandlerUtils.java | 4 +- .../client/ClientEntityImportHandler.java | 44 ++++++++++--------- .../client/ClientPersonImportHandler.java | 37 ++++++++-------- .../guarantor/GuarantorImportHandler.java | 9 ++-- .../LoanRepaymentImportHandler.java | 5 ++- .../ChartOfAccountsWorkbook.java | 21 ++++----- .../email/data/EmailDataValidator.java | 3 +- .../core/data/DataValidatorBuilder.java | 3 +- .../ReadWriteNonCoreDataServiceImpl.java | 9 ++-- .../jobs/service/JobRegisterServiceImpl.java | 5 ++- .../reportmailingjob/helper/IPv4Helper.java | 8 ++-- .../validation/ReportMailingJobValidator.java | 3 +- .../security/utils/ColumnValidator.java | 1 + .../CreateInteropIdentifierHandler.java | 12 ++--- .../DeleteInteropIdentifierHandler.java | 12 ++--- .../fineract/mix/service/XBRLBuilder.java | 8 ++-- .../organisation/teller/domain/Cashier.java | 18 ++++---- .../portfolio/loanaccount/domain/Loan.java | 3 +- .../service/LoanChargeAssembler.java | 3 +- 28 files changed, 148 insertions(+), 108 deletions(-) diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle index 05a23dd07..8e8bec066 100644 --- a/fineract-provider/build.gradle +++ b/fineract-provider/build.gradle @@ -336,7 +336,6 @@ tasks.withType(JavaCompile) { disable( "UnusedVariable", "SameNameButDifferent", - "StringSplitter", "ImmutableEnumChecker", "UnusedMethod", "ModifiedButNotUsed", @@ -388,6 +387,7 @@ tasks.withType(JavaCompile) { "OrphanedFormatString", "CatchAndPrintStackTrace", "ObjectToString", + "StringSplitter", "AssertThrowsMultipleStatements", "BoxedPrimitiveConstructor", "BoxedPrimitiveEquality", @@ -422,7 +422,6 @@ tasks.withType(JavaCompile) { // "ConstantField", // "ConstructorInvokesOverridable", // "InjectOnConstructorOfAbstractClass", -// "StringSplitter", // "UnnecessaryDefaultInEnumSwitch", // "FieldCanBeFinal" ) diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ActivateClientCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ActivateClientCommandStrategy.java index ba465dc5a..1d8dadff2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ActivateClientCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ActivateClientCommandStrategy.java @@ -18,6 +18,8 @@ */ package org.apache.fineract.batch.command.internal; +import com.google.common.base.Splitter; +import java.util.List; import javax.ws.rs.core.UriInfo; import org.apache.fineract.batch.command.CommandStrategy; import org.apache.fineract.batch.domain.BatchRequest; @@ -62,8 +64,8 @@ public class ActivateClientCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - final String[] pathParameters = request.getRelativeUrl().split("/"); - Long clientId = Long.parseLong(pathParameters[1].substring(0, pathParameters[1].indexOf("?"))); + final List pathParameters = Splitter.on('/').splitToList(request.getRelativeUrl()); + Long clientId = Long.parseLong(pathParameters.get(1).substring(0, pathParameters.get(1).indexOf("?"))); // Try-catch blocks to map exceptions to appropriate status codes try { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanCommandStrategy.java index fbf010ab6..5b5ad34c3 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanCommandStrategy.java @@ -18,6 +18,8 @@ */ package org.apache.fineract.batch.command.internal; +import com.google.common.base.Splitter; +import java.util.List; import javax.ws.rs.core.UriInfo; import org.apache.fineract.batch.command.CommandStrategy; import org.apache.fineract.batch.domain.BatchRequest; @@ -62,8 +64,8 @@ public class ApproveLoanCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - final String[] pathParameters = request.getRelativeUrl().split("/"); - Long loanId = Long.parseLong(pathParameters[1].substring(0, pathParameters[1].indexOf("?"))); + final List pathParameters = Splitter.on('/').splitToList(request.getRelativeUrl()); + Long loanId = Long.parseLong(pathParameters.get(1).substring(0, pathParameters.get(1).indexOf("?"))); // Try-catch blocks to map exceptions to appropriate status codes try { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanRescheduleCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanRescheduleCommandStrategy.java index 0bfc764bf..9ed6fd5d2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanRescheduleCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanRescheduleCommandStrategy.java @@ -18,6 +18,8 @@ */ package org.apache.fineract.batch.command.internal; +import com.google.common.base.Splitter; +import java.util.List; import javax.ws.rs.core.UriInfo; import org.apache.fineract.batch.command.CommandStrategy; import org.apache.fineract.batch.domain.BatchRequest; @@ -46,8 +48,8 @@ public class ApproveLoanRescheduleCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - final String[] pathParameters = request.getRelativeUrl().split("/"); - Long scheduleId = Long.parseLong(pathParameters[1].substring(0, pathParameters[1].indexOf("?"))); + final List pathParameters = Splitter.on('/').splitToList(request.getRelativeUrl()); + Long scheduleId = Long.parseLong(pathParameters.get(1).substring(0, pathParameters.get(1).indexOf("?"))); // Try-catch blocks to map exceptions to appropriate status codes try { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CollectChargesCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CollectChargesCommandStrategy.java index 3f8cdb489..197d6dde2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CollectChargesCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CollectChargesCommandStrategy.java @@ -18,6 +18,8 @@ */ package org.apache.fineract.batch.command.internal; +import com.google.common.base.Splitter; +import java.util.List; import javax.ws.rs.core.UriInfo; import org.apache.fineract.batch.command.CommandStrategy; import org.apache.fineract.batch.domain.BatchRequest; @@ -62,10 +64,10 @@ public class CollectChargesCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - final String[] pathParameters = request.getRelativeUrl().split("/"); + final List pathParameters = Splitter.on('/').splitToList(request.getRelativeUrl()); // Pluck out the loanId out of the relative path - Long loanId = Long.parseLong(pathParameters[1]); + Long loanId = Long.parseLong(pathParameters.get(1)); // Try-catch blocks to map exceptions to appropriate status codes try { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateChargeCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateChargeCommandStrategy.java index 94b02dcbe..39b186750 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateChargeCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateChargeCommandStrategy.java @@ -18,6 +18,8 @@ */ package org.apache.fineract.batch.command.internal; +import com.google.common.base.Splitter; +import java.util.List; import javax.ws.rs.core.UriInfo; import org.apache.fineract.batch.command.CommandStrategy; import org.apache.fineract.batch.domain.BatchRequest; @@ -62,8 +64,8 @@ public class CreateChargeCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - final String[] pathParameters = request.getRelativeUrl().split("/"); - Long loanId = Long.parseLong(pathParameters[1]); + final List pathParameters = Splitter.on('/').splitToList(request.getRelativeUrl()); + Long loanId = Long.parseLong(pathParameters.get(1)); // Try-catch blocks to map exceptions to appropriate status codes try { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/DisburseLoanCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/DisburseLoanCommandStrategy.java index c6027ce98..f9074c1ca 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/DisburseLoanCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/DisburseLoanCommandStrategy.java @@ -18,6 +18,8 @@ */ package org.apache.fineract.batch.command.internal; +import com.google.common.base.Splitter; +import java.util.List; import javax.ws.rs.core.UriInfo; import org.apache.fineract.batch.command.CommandStrategy; import org.apache.fineract.batch.domain.BatchRequest; @@ -62,8 +64,8 @@ public class DisburseLoanCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - final String[] pathParameters = request.getRelativeUrl().split("/"); - Long loanId = Long.parseLong(pathParameters[1].substring(0, pathParameters[1].indexOf("?"))); + final List pathParameters = Splitter.on('/').splitToList(request.getRelativeUrl()); + Long loanId = Long.parseLong(pathParameters.get(1).substring(0, pathParameters.get(1).indexOf("?"))); // Try-catch blocks to map exceptions to appropriate status codes try { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/RepayLoanCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/RepayLoanCommandStrategy.java index a3250e034..f0b0194f6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/RepayLoanCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/RepayLoanCommandStrategy.java @@ -18,6 +18,8 @@ */ package org.apache.fineract.batch.command.internal; +import com.google.common.base.Splitter; +import java.util.List; import javax.ws.rs.core.UriInfo; import org.apache.fineract.batch.command.CommandStrategy; import org.apache.fineract.batch.domain.BatchRequest; @@ -60,8 +62,8 @@ public class RepayLoanCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - final String[] pathParameters = request.getRelativeUrl().split("/"); - Long loanId = Long.parseLong(pathParameters[1]); + final List pathParameters = Splitter.on('/').splitToList(request.getRelativeUrl()); + Long loanId = Long.parseLong(pathParameters.get(1)); // Try-catch blocks to map exceptions to appropriate status codes try { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/service/ResolutionHelper.java b/fineract-provider/src/main/java/org/apache/fineract/batch/service/ResolutionHelper.java index 50102e1c1..89714eea4 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/service/ResolutionHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/service/ResolutionHelper.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.batch.service; +import com.google.common.base.Splitter; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -164,7 +165,7 @@ public class ResolutionHelper { relativeUrl = relativeUrl.substring(0, relativeUrl.indexOf("?")); } - final String[] parameters = relativeUrl.split("/"); + final Iterable parameters = Splitter.on('/').split(relativeUrl); for (String parameter : parameters) { if (parameter.contains("$.")) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandlerUtils.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandlerUtils.java index f3491d333..5cfd05d5d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandlerUtils.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandlerUtils.java @@ -18,6 +18,8 @@ */ package org.apache.fineract.infrastructure.bulkimport.importhandler; +import com.google.common.base.Splitter; +import com.google.common.collect.Iterables; import java.util.List; import org.apache.fineract.infrastructure.bulkimport.constants.TemplatePopulateImportConstants; import org.apache.fineract.infrastructure.core.data.ApiParameterError; @@ -130,7 +132,7 @@ public class ImportHandlerUtils { public static String trimEmptyDecimalPortion(String result) { if (result != null && result.endsWith(".0")) { - return result.split("\\.")[0]; + return Iterables.get(Splitter.on("\\.").split(result), 0); } else { return result; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientEntityImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientEntityImportHandler.java index 024106e57..6b4edba4a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientEntityImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientEntityImportHandler.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.bulkimport.importhandler.client; +import com.google.common.base.Splitter; import com.google.gson.GsonBuilder; import java.util.ArrayList; import java.util.Arrays; @@ -98,17 +99,17 @@ public class ClientEntityImportHandler implements ImportHandler { String clientType = ImportHandlerUtils.readAsString(ClientEntityConstants.CLIENT_TYPE_COL, row); Long clientTypeId = null; if (clientType != null) { - String[] clientTypeAr = clientType.split("-"); - if (clientTypeAr[1] != null) { - clientTypeId = Long.parseLong(clientTypeAr[1]); + List clientTypeAr = Splitter.on('-').splitToList(clientType); + if (clientTypeAr.get(1) != null) { + clientTypeId = Long.parseLong(clientTypeAr.get(1)); } } String clientClassification = ImportHandlerUtils.readAsString(ClientEntityConstants.CLIENT_CLASSIFICATION_COL, row); Long clientClassicationId = null; if (clientClassification != null) { - String[] clientClassificationAr = clientClassification.split("-"); - if (clientClassificationAr[1] != null) { - clientClassicationId = Long.parseLong(clientClassificationAr[1]); + List clientClassificationAr = Splitter.on('-').splitToList(clientClassification); + if (clientClassificationAr.get(1) != null) { + clientClassicationId = Long.parseLong(clientClassificationAr.get(1)); } } String incorporationNo = ImportHandlerUtils.readAsString(ClientEntityConstants.INCOPORATION_NUMBER_COL, row); @@ -116,17 +117,18 @@ public class ClientEntityImportHandler implements ImportHandler { String mainBusinessLine = ImportHandlerUtils.readAsString(ClientEntityConstants.MAIN_BUSINESS_LINE, row); Long mainBusinessId = null; if (mainBusinessLine != null) { - String[] mainBusinessLineAr = ImportHandlerUtils.readAsString(ClientEntityConstants.MAIN_BUSINESS_LINE, row).split("-"); - if (mainBusinessLineAr[1] != null) { - mainBusinessId = Long.parseLong(mainBusinessLineAr[1]); + List mainBusinessLineAr = Splitter.on('-') + .splitToList(ImportHandlerUtils.readAsString(ClientEntityConstants.MAIN_BUSINESS_LINE, row)); + if (mainBusinessLineAr.get(1) != null) { + mainBusinessId = Long.parseLong(mainBusinessLineAr.get(1)); } } String constitution = ImportHandlerUtils.readAsString(ClientEntityConstants.CONSTITUTION_COL, row); Long constitutionId = null; if (constitution != null) { - String[] constitutionAr = constitution.split("-"); - if (constitutionAr[1] != null) { - constitutionId = Long.parseLong(constitutionAr[1]); + List constitutionAr = Splitter.on('-').splitToList(constitution); + if (constitutionAr.get(1) != null) { + constitutionId = Long.parseLong(constitutionAr.get(1)); } } String remarks = ImportHandlerUtils.readAsString(ClientEntityConstants.REMARKS_COL, row); @@ -150,9 +152,9 @@ public class ClientEntityImportHandler implements ImportHandler { String addressType = ImportHandlerUtils.readAsString(ClientEntityConstants.ADDRESS_TYPE_COL, row); Long addressTypeId = null; if (addressType != null) { - String[] addressTypeAr = addressType.split("-"); - if (addressTypeAr[1] != null) { - addressTypeId = Long.parseLong(addressTypeAr[1]); + List addressTypeAr = Splitter.on('-').splitToList(addressType); + if (addressTypeAr.get(1) != null) { + addressTypeId = Long.parseLong(addressTypeAr.get(1)); } } String street = ImportHandlerUtils.readAsString(ClientEntityConstants.STREET_COL, row); @@ -167,17 +169,17 @@ public class ClientEntityImportHandler implements ImportHandler { String stateProvince = ImportHandlerUtils.readAsString(ClientEntityConstants.STATE_PROVINCE_COL, row); Long stateProvinceId = null; if (stateProvince != null) { - String[] stateProvinceAr = stateProvince.split("-"); - if (stateProvinceAr[1] != null) { - stateProvinceId = Long.parseLong(stateProvinceAr[1]); + List stateProvinceAr = Splitter.on('-').splitToList(stateProvince); + if (stateProvinceAr.get(1) != null) { + stateProvinceId = Long.parseLong(stateProvinceAr.get(1)); } } String country = ImportHandlerUtils.readAsString(ClientEntityConstants.COUNTRY_COL, row); Long countryId = null; if (country != null) { - String[] countryAr = country.split("-"); - if (countryAr[1] != null) { - countryId = Long.parseLong(countryAr[1]); + List countryAr = Splitter.on('-').splitToList(country); + if (countryAr.get(1) != null) { + countryId = Long.parseLong(countryAr.get(1)); } } addressDataObj = new AddressData(addressTypeId, street, addressLine1, addressLine2, addressLine3, city, postalCode, diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientPersonImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientPersonImportHandler.java index 5507dad41..33ca5fa79 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientPersonImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/client/ClientPersonImportHandler.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.bulkimport.importhandler.client; +import com.google.common.base.Splitter; import com.google.gson.GsonBuilder; import java.util.ArrayList; import java.util.Arrays; @@ -104,25 +105,25 @@ public class ClientPersonImportHandler implements ImportHandler { String clientType = ImportHandlerUtils.readAsString(ClientPersonConstants.CLIENT_TYPE_COL, row); Long clientTypeId = null; if (clientType != null) { - String[] clientTypeAr = clientType.split("-"); - if (clientTypeAr.length > 1 && clientTypeAr[1] != null) { - clientTypeId = Long.parseLong(clientTypeAr[1]); + List clientTypeAr = Splitter.on('-').splitToList(clientType); + if (clientTypeAr.size() > 1 && clientTypeAr.get(1) != null) { + clientTypeId = Long.parseLong(clientTypeAr.get(1)); } } String gender = ImportHandlerUtils.readAsString(ClientPersonConstants.GENDER_COL, row); Long genderId = null; if (gender != null) { - String[] genderAr = gender.split("-"); - if (genderAr.length > 1 && genderAr[1] != null) { - genderId = Long.parseLong(genderAr[1]); + List genderAr = Splitter.on('-').splitToList(gender); + if (genderAr.size() > 1 && genderAr.get(1) != null) { + genderId = Long.parseLong(genderAr.get(1)); } } String clientClassification = ImportHandlerUtils.readAsString(ClientPersonConstants.CLIENT_CLASSIFICATION_COL, row); Long clientClassificationId = null; if (clientClassification != null) { - String[] clientClassificationAr = clientClassification.split("-"); - if (clientClassificationAr.length > 1 && clientClassificationAr[1] != null) { - clientClassificationId = Long.parseLong(clientClassificationAr[1]); + List clientClassificationAr = Splitter.on('-').splitToList(clientClassification); + if (clientClassificationAr.size() > 1 && clientClassificationAr.get(1) != null) { + clientClassificationId = Long.parseLong(clientClassificationAr.get(1)); } } Boolean isStaff = ImportHandlerUtils.readAsBoolean(ClientPersonConstants.IS_STAFF_COL, row); @@ -133,10 +134,10 @@ public class ClientPersonImportHandler implements ImportHandler { String addressType = ImportHandlerUtils.readAsString(ClientPersonConstants.ADDRESS_TYPE_COL, row); Long addressTypeId = null; if (addressType != null) { - String[] addressTypeAr = addressType.split("-"); + List addressTypeAr = Splitter.on('-').splitToList(addressType); - if (addressTypeAr.length > 1 && addressTypeAr[1] != null) { - addressTypeId = Long.parseLong(addressTypeAr[1]); + if (addressTypeAr.size() > 1 && addressTypeAr.get(1) != null) { + addressTypeId = Long.parseLong(addressTypeAr.get(1)); } } String street = ImportHandlerUtils.readAsString(ClientPersonConstants.STREET_COL, row); @@ -151,20 +152,20 @@ public class ClientPersonImportHandler implements ImportHandler { String stateProvince = ImportHandlerUtils.readAsString(ClientPersonConstants.STATE_PROVINCE_COL, row); Long stateProvinceId = null; if (stateProvince != null) { - String[] stateProvinceAr = stateProvince.split("-"); + List stateProvinceAr = Splitter.on('-').splitToList(stateProvince); // Arkansas-AL <-- expected format of the cell // but probably it's either an empty cell or it is missing a // hyphen - if (stateProvinceAr.length > 1 && stateProvinceAr[1] != null) { - stateProvinceId = Long.parseLong(stateProvinceAr[1]); + if (stateProvinceAr.size() > 1 && stateProvinceAr.get(1) != null) { + stateProvinceId = Long.parseLong(stateProvinceAr.get(1)); } } String country = ImportHandlerUtils.readAsString(ClientPersonConstants.COUNTRY_COL, row); Long countryId = null; if (country != null) { - String[] countryAr = country.split("-"); - if (countryAr.length > 1 && countryAr[1] != null) { - countryId = Long.parseLong(countryAr[1]); + List countryAr = Splitter.on('-').splitToList(country); + if (countryAr.size() > 1 && countryAr.get(1) != null) { + countryId = Long.parseLong(countryAr.get(1)); } } addressDataObj = new AddressData(addressTypeId, street, addressLine1, addressLine2, addressLine3, city, postalCode, diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/guarantor/GuarantorImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/guarantor/GuarantorImportHandler.java index 1b553048e..8dc366ca8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/guarantor/GuarantorImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/guarantor/GuarantorImportHandler.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.bulkimport.importhandler.guarantor; +import com.google.common.base.Splitter; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import java.math.BigDecimal; @@ -84,8 +85,8 @@ public class GuarantorImportHandler implements ImportHandler { private GuarantorData readGuarantor(Row row, String locale, String dateFormat) { String loanaccountInfo = ImportHandlerUtils.readAsString(GuarantorConstants.LOAN_ACCOUNT_NO_COL, row); if (loanaccountInfo != null) { - String[] loanAccountAr = loanaccountInfo.split("-"); - loanAccountId = Long.parseLong(loanAccountAr[0]); + List loanAccountAr = Splitter.on('-').splitToList(loanaccountInfo); + loanAccountId = Long.parseLong(loanAccountAr.get(0)); } String guarantorType = ImportHandlerUtils.readAsString(GuarantorConstants.GUARANTO_TYPE_COL, row); @@ -102,8 +103,8 @@ public class GuarantorImportHandler implements ImportHandler { String clientRelationshipTypeInfo = ImportHandlerUtils.readAsString(GuarantorConstants.CLIENT_RELATIONSHIP_TYPE_COL, row); Integer clientRelationshipTypeId = null; if (clientRelationshipTypeInfo != null) { - String[] clientRelationshipTypeAr = clientRelationshipTypeInfo.split("-"); - clientRelationshipTypeId = Integer.parseInt(clientRelationshipTypeAr[1]); + List clientRelationshipTypeAr = Splitter.on('-').splitToList(clientRelationshipTypeInfo); + clientRelationshipTypeId = Integer.parseInt(clientRelationshipTypeAr.get(1)); } String firstname = ImportHandlerUtils.readAsString(GuarantorConstants.FIRST_NAME_COL, row); String lastname = ImportHandlerUtils.readAsString(GuarantorConstants.LAST_NAME_COL, row); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/loanrepayment/LoanRepaymentImportHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/loanrepayment/LoanRepaymentImportHandler.java index 715a25a1d..ac93049fe 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/loanrepayment/LoanRepaymentImportHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/loanrepayment/LoanRepaymentImportHandler.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.bulkimport.importhandler.loanrepayment; +import com.google.common.base.Splitter; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import java.math.BigDecimal; @@ -86,8 +87,8 @@ public class LoanRepaymentImportHandler implements ImportHandler { private LoanTransactionData readLoanRepayment(Row row, String locale, String dateFormat) { String loanaccountInfo = ImportHandlerUtils.readAsString(LoanRepaymentConstants.LOAN_ACCOUNT_NO_COL, row); if (loanaccountInfo != null) { - String[] loanAccountAr = loanaccountInfo.split("-"); - loanAccountId = this.loanReadPlatformService.retrieveLoanIdByAccountNumber(loanAccountAr[0]); + List loanAccountAr = Splitter.on('-').splitToList(loanaccountInfo); + loanAccountId = this.loanReadPlatformService.retrieveLoanIdByAccountNumber(loanAccountAr.get(0)); } BigDecimal repaymentAmount = null; if (ImportHandlerUtils.readAsDouble(LoanRepaymentConstants.AMOUNT_COL, row) != null) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java index 7f67a9422..c917708ff 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.bulkimport.populator.chartofaccounts; +import com.google.common.base.Splitter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -179,19 +180,19 @@ public class ChartOfAccountsWorkbook extends AbstractWorkbookPopulator { if (!accountNamesandTags.isEmpty()) { for (String accountNameandTag : accountNamesandTags) { if (chartOfAccountsSheet.getRow(rowIndex) != null) { - String[] accountNameAndTagAr = accountNameandTag.split("-"); - writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr[0]); - writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr[1]); - writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr[2]); - writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr[3]); + List accountNameAndTagAr = Splitter.on('-').splitToList(accountNameandTag); + writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr.get(0)); + writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr.get(1)); + writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr.get(2)); + writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr.get(3)); rowIndex++; } else { row = chartOfAccountsSheet.createRow(rowIndex); - String[] accountNameAndTagAr = accountNameandTag.split("-"); - writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr[0]); - writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr[1]); - writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr[2]); - writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr[3]); + List accountNameAndTagAr = Splitter.on('-').splitToList(accountNameandTag); + writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_NAME_COL, row, accountNameAndTagAr.get(0)); + writeString(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL, row, accountNameAndTagAr.get(1)); + writeString(ChartOfAcountsConstants.LOOKUP_TAG_COL, row, accountNameAndTagAr.get(2)); + writeString(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL, row, accountNameAndTagAr.get(3)); rowIndex++; } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailDataValidator.java index e5ff3016b..fc01b011b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailDataValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailDataValidator.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.campaigns.email.data; +import com.google.common.base.Splitter; import com.google.gson.JsonElement; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; @@ -280,7 +281,7 @@ public final class EmailDataValidator { Set emailRecipientsSet = new HashSet<>(); if (emailRecipients != null) { - String[] split = emailRecipients.split(","); + Iterable split = Splitter.on(',').split(emailRecipients); for (String emailAddress : split) { emailAddress = emailAddress.trim(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/DataValidatorBuilder.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/DataValidatorBuilder.java index 4c743a892..4c071b82c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/DataValidatorBuilder.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/DataValidatorBuilder.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.core.data; +import com.google.common.base.Splitter; import com.google.gson.JsonArray; import java.math.BigDecimal; import java.text.ParseException; @@ -951,7 +952,7 @@ public class DataValidatorBuilder { if (this.value == null && this.ignoreNullValue) { return this; } - final String[] inputs = validInputs.split(VALID_INPUT_SEPERATOR); + final Iterable inputs = Splitter.onPattern(VALID_INPUT_SEPERATOR).split(validInputs); boolean validationErr = true; for (final String input : inputs) { if (input.equalsIgnoreCase(this.value.toString().trim())) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java index bb38abf1c..367d74f32 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.dataqueries.service; +import com.google.common.base.Splitter; import com.google.common.collect.ImmutableMap; import com.google.gson.JsonArray; import com.google.gson.JsonElement; @@ -325,16 +326,16 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ @Override public String getDataTableName(String url) { - String[] urlParts = url.split("/"); + List urlParts = Splitter.on('/').splitToList(url); - return urlParts[3]; + return urlParts.get(3); } @Override public String getTableName(String url) { - String[] urlParts = url.split("/"); - return urlParts[4]; + List urlParts = Splitter.on('/').splitToList(url); + return urlParts.get(4); } @Transactional diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobRegisterServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobRegisterServiceImpl.java index 7d06a9808..8a2396726 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobRegisterServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobRegisterServiceImpl.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.jobs.service; +import com.google.common.base.Splitter; import java.text.ParseException; import java.util.ArrayList; import java.util.Arrays; @@ -435,8 +436,8 @@ public class JobRegisterServiceImpl implements JobRegisterService, ApplicationLi } private JobKey constructJobKey(final String Key) { - final String[] keyParams = Key.split(SchedulerServiceConstants.JOB_KEY_SEPERATOR); - final JobKey jobKey = new JobKey(keyParams[0], keyParams[1]); + final List keyParams = Splitter.onPattern(SchedulerServiceConstants.JOB_KEY_SEPERATOR).splitToList(Key); + final JobKey jobKey = new JobKey(keyParams.get(0), keyParams.get(1)); return jobKey; } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/helper/IPv4Helper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/helper/IPv4Helper.java index e852e0f6a..86fee586f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/helper/IPv4Helper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/helper/IPv4Helper.java @@ -18,7 +18,9 @@ */ package org.apache.fineract.infrastructure.reportmailingjob.helper; +import com.google.common.base.Splitter; import java.net.InetAddress; +import java.util.List; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,16 +49,16 @@ public class IPv4Helper { throw new IllegalArgumentException("ip address cannot be null or empty"); } - String[] octets = ipAddress.split(java.util.regex.Pattern.quote(".")); + List octets = Splitter.onPattern(java.util.regex.Pattern.quote(".")).splitToList(ipAddress); - if (octets.length != 4) { + if (octets.size() != 4) { throw new IllegalArgumentException("invalid ip address"); } long ip = 0; for (int i = 3; i >= 0; i--) { - long octet = Long.parseLong(octets[3 - i]); + long octet = Long.parseLong(octets.get(3 - i)); if (octet > 255 || octet < 0) { throw new IllegalArgumentException("invalid ip address"); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/validation/ReportMailingJobValidator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/validation/ReportMailingJobValidator.java index 1ab0a41cf..9a7900a91 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/validation/ReportMailingJobValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/validation/ReportMailingJobValidator.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.infrastructure.reportmailingjob.validation; +import com.google.common.base.Splitter; import com.google.gson.JsonElement; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; @@ -278,7 +279,7 @@ public class ReportMailingJobValidator { Set emailRecipientsSet = new HashSet<>(); if (emailRecipients != null) { - String[] split = emailRecipients.split(","); + Iterable split = Splitter.on(',').split(emailRecipients); for (String emailAddress : split) { emailAddress = emailAddress.trim(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/utils/ColumnValidator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/utils/ColumnValidator.java index ee3dd4e44..7a0dad5b5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/utils/ColumnValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/utils/ColumnValidator.java @@ -122,6 +122,7 @@ public class ColumnValidator { return tableColumnMap; } + @SuppressWarnings("StringSplitter") private static Map> getTableColumnAliasMap(Set operands) { Map> tableColumnMap = new HashMap<>(); for (String operand : operands) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/handler/CreateInteropIdentifierHandler.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/handler/CreateInteropIdentifierHandler.java index 96fa77d54..16b2e5b3d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/handler/CreateInteropIdentifierHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/handler/CreateInteropIdentifierHandler.java @@ -20,7 +20,9 @@ package org.apache.fineract.interoperation.handler; import static org.apache.fineract.interoperation.util.InteropUtil.ENTITY_NAME_IDENTIFIER; +import com.google.common.base.Splitter; import com.google.common.base.Strings; +import java.util.List; import org.apache.fineract.commands.annotation.CommandType; import org.apache.fineract.commands.handler.NewCommandSourceHandler; import org.apache.fineract.infrastructure.core.api.JsonCommand; @@ -46,11 +48,11 @@ public class CreateInteropIdentifierHandler implements NewCommandSourceHandler { @Transactional @Override public CommandProcessingResult processCommand(final JsonCommand command) { - String[] split = command.getUrl().split("/"); - int length = split.length; - String subIdOrType = Strings.emptyToNull(StringUtils.trimWhitespace(split[length - 1])); - String idValue = split[length - 2]; - InteropIdentifierType idType = InteropIdentifierType.valueOf(split[length - 3].toUpperCase()); + List split = Splitter.on('/').splitToList(command.getUrl()); + int length = split.size(); + String subIdOrType = Strings.emptyToNull(StringUtils.trimWhitespace(split.get(length - 1))); + String idValue = split.get(length - 2); + InteropIdentifierType idType = InteropIdentifierType.valueOf(split.get(length - 3).toUpperCase()); return this.interopService.registerAccountIdentifier(idType, idValue, subIdOrType, command); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/handler/DeleteInteropIdentifierHandler.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/handler/DeleteInteropIdentifierHandler.java index 853ed66df..38240011c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/handler/DeleteInteropIdentifierHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/handler/DeleteInteropIdentifierHandler.java @@ -20,7 +20,9 @@ package org.apache.fineract.interoperation.handler; import static org.apache.fineract.interoperation.util.InteropUtil.ENTITY_NAME_IDENTIFIER; +import com.google.common.base.Splitter; import com.google.common.base.Strings; +import java.util.List; import org.apache.fineract.commands.annotation.CommandType; import org.apache.fineract.commands.handler.NewCommandSourceHandler; import org.apache.fineract.infrastructure.core.api.JsonCommand; @@ -46,11 +48,11 @@ public class DeleteInteropIdentifierHandler implements NewCommandSourceHandler { @Transactional @Override public CommandProcessingResult processCommand(final JsonCommand command) { - String[] split = command.getUrl().split("/"); - int length = split.length; - String subIdOrType = Strings.emptyToNull(StringUtils.trimWhitespace(split[length - 1])); - String idValue = split[length - 2]; - InteropIdentifierType idType = InteropIdentifierType.valueOf(split[length - 3].toUpperCase()); + List split = Splitter.on('/').splitToList(command.getUrl()); + int length = split.size(); + String subIdOrType = Strings.emptyToNull(StringUtils.trimWhitespace(split.get(length - 1))); + String idValue = split.get(length - 2); + InteropIdentifierType idType = InteropIdentifierType.valueOf(split.get(length - 3).toUpperCase()); return this.interopService.deleteAccountIdentifier(idType, idValue, subIdOrType); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/service/XBRLBuilder.java b/fineract-provider/src/main/java/org/apache/fineract/mix/service/XBRLBuilder.java index c1fe90cd9..3fd282ed9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/mix/service/XBRLBuilder.java +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/service/XBRLBuilder.java @@ -18,10 +18,12 @@ */ package org.apache.fineract.mix.service; +import com.google.common.base.Splitter; import java.math.BigDecimal; import java.sql.Date; import java.text.SimpleDateFormat; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.apache.fineract.mix.data.ContextData; @@ -111,10 +113,10 @@ public class XBRLBuilder { ContextData context = null; if (dimension != null) { - final String[] dims = dimension.split(":"); + final List dims = Splitter.on(':').splitToList(dimension); - if (dims.length == 2) { - context = new ContextData(dims[0], dims[1], taxonomy.getType()); + if (dims.size() == 2) { + context = new ContextData(dims.get(0), dims.get(1), taxonomy.getType()); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java index cd8b20392..44636cbe4 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java @@ -18,8 +18,10 @@ */ package org.apache.fineract.organisation.teller.domain; +import com.google.common.base.Splitter; import java.util.Date; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import javax.persistence.Column; import javax.persistence.Entity; @@ -224,8 +226,8 @@ public class Cashier extends AbstractPersistableCustom { public Long getHourFromStartTime() { if (this.startTime != null && !this.startTime.equalsIgnoreCase("")) { - String[] extractHourFromStartTime = this.startTime.split(":"); - Long hour = Long.parseLong(extractHourFromStartTime[1]); + List extractHourFromStartTime = Splitter.on(':').splitToList(this.startTime); + Long hour = Long.parseLong(extractHourFromStartTime.get(1)); return hour; } return null; @@ -233,8 +235,8 @@ public class Cashier extends AbstractPersistableCustom { public Long getMinFromStartTime() { if (this.startTime != null && !this.startTime.equalsIgnoreCase("")) { - String[] extractMinFromStartTime = this.startTime.split(":"); - Long min = Long.parseLong(extractMinFromStartTime[1]); + List extractMinFromStartTime = Splitter.on(':').splitToList(this.startTime); + Long min = Long.parseLong(extractMinFromStartTime.get(1)); return min; } return null; @@ -242,8 +244,8 @@ public class Cashier extends AbstractPersistableCustom { public Long getHourFromEndTime() { if (this.endTime != null && !this.endTime.equalsIgnoreCase("")) { - String[] extractHourFromEndTime = this.endTime.split(":"); - Long hour = Long.parseLong(extractHourFromEndTime[0]); + List extractHourFromEndTime = Splitter.on(':').splitToList(this.endTime); + Long hour = Long.parseLong(extractHourFromEndTime.get(0)); return hour; } return null; @@ -251,8 +253,8 @@ public class Cashier extends AbstractPersistableCustom { public Long getMinFromEndTime() { if (this.endTime != null && !this.endTime.equalsIgnoreCase("")) { - String[] extractMinFromEndTime = this.endTime.split(":"); - Long min = Long.parseLong(extractMinFromEndTime[1]); + List extractMinFromEndTime = Splitter.on(':').splitToList(this.endTime); + Long min = Long.parseLong(extractMinFromEndTime.get(1)); return min; } return null; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java index 131cc1bc2..dd40ec085 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.portfolio.loanaccount.domain; +import com.google.common.base.Splitter; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -1812,7 +1813,7 @@ public class Loan extends AbstractPersistableCustom { chargeIds = (String) parsedDisbursementData.get(LoanApiConstants.loanChargeIdParameterName); if (chargeIds != null) { if (chargeIds.indexOf(",") != -1) { - String[] chargeId = chargeIds.split(","); + Iterable chargeId = Splitter.on(',').split(chargeIds); for (String loanChargeId : chargeId) { loanChargeIds.remove(Long.parseLong(loanChargeId)); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeAssembler.java index 257a235e1..a9d33ae73 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeAssembler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeAssembler.java @@ -18,6 +18,7 @@ */ package org.apache.fineract.portfolio.loanaccount.service; +import com.google.common.base.Splitter; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -74,7 +75,7 @@ public class LoanChargeAssembler { String chargeIds = jsonObject.getAsJsonPrimitive(LoanApiConstants.loanChargeIdParameterName).getAsString(); if (chargeIds != null) { if (chargeIds.indexOf(",") != -1) { - String[] chargeId = chargeIds.split(","); + Iterable chargeId = Splitter.on(',').split(chargeIds); for (String loanChargeId : chargeId) { disbursementChargeIds.add(Long.parseLong(loanChargeId)); }