You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by GitBox <gi...@apache.org> on 2022/03/23 22:19:53 UTC

[GitHub] [fineract] fynmanoj opened a new pull request #2177: FINERACT-1450-fix

fynmanoj opened a new pull request #2177:
URL: https://github.com/apache/fineract/pull/2177


   ## Description
   
   Describe the changes made and why they were made.
   
   Ignore if these details are present on the associated [Apache Fineract JIRA ticket](https://github.com/apache/fineract/pull/1284).
   
   
   ## Checklist
   
   Please make sure these boxes are checked before submitting your pull request - thanks!
   
   - [ ] Write the commit message as per https://github.com/apache/fineract/#pull-requests
   
   - [ ] Acknowledge that we will not review PRs that are not passing the build _("green")_ - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.
   
   - [ ] Create/update unit or integration tests for verifying the changes made.
   
   - [ ] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.
   
   - [ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details of any API changes
   
   - [ ] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)
   
   FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.
   


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] vidakovic commented on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
vidakovic commented on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1081424161


   ```
   testLoanRefundByCashCashBasedAccounting()
   ```
   ... is failing... just in case you have an idea.


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] vidakovic edited a comment on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
vidakovic edited a comment on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1081510059


   For your convenience I've also extracted the stacktraces that i could find... maybe that helps... it seems that something with JPA parameter passing for queries is off (missing values?). There are some EclipseLink warnings in the logs (I'll send on the mailing list).


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] vidakovic commented on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
vidakovic commented on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1081504402


   See this PR to easily identify where things are breaking: https://github.com/apache/fineract/pull/2212/files.
   I have annotated the stuff with "// TODO: @fynmanoj, @avikganguly01... could you help find out why this is failing?" so that you can find it easier.


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] fynmanoj commented on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
fynmanoj commented on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1081452281


   Sure, I shall check the test case


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] vidakovic commented on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
vidakovic commented on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1081722610


   @avikganguly01 @fynmanoj was not the issue... sorry for that... must be another dependency issue of some sort. If you find something suspicious though please let me know.


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] vidakovic commented on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
vidakovic commented on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1081510059


   For your convenience I've also extracted the stacktraces that i could find... maybe that helps... it seems that something with JPA parameter passing for queries is off (missing values?). There are some EclipseLink warnings in the logs (please see attachment).


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] vidakovic commented on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
vidakovic commented on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1079792151


   Hi... can we hold this one for a moment and not merge it until #2187 and #2188 are approved and merged? I think there won't be too much of an impact to your PR if we take the other two first, but those PRs were a bit painful to get right and would be important for cleanup. The PRs are ready, someone might approve this weekend, at the latest Monday. Thanks in advance for the patience.


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] avikganguly01 commented on a change in pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
avikganguly01 commented on a change in pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#discussion_r835416891



##########
File path: integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanRescheduleWithAdvancePaymentTest.java
##########
@@ -0,0 +1,255 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.fineract.integrationtests;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.builder.ResponseSpecBuilder;
+import io.restassured.http.ContentType;
+import io.restassured.path.json.JsonPath;
+import io.restassured.specification.RequestSpecification;
+import io.restassured.specification.ResponseSpecification;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.fineract.integrationtests.common.ClientHelper;
+import org.apache.fineract.integrationtests.common.GlobalConfigurationHelper;
+import org.apache.fineract.integrationtests.common.LoanRescheduleRequestHelper;
+import org.apache.fineract.integrationtests.common.Utils;
+import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder;
+import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
+import org.apache.fineract.integrationtests.common.loans.LoanRescheduleRequestTestBuilder;
+import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class LoanRescheduleWithAdvancePaymentTest {
+
+    private static final Logger LOG = LoggerFactory.getLogger(LoanRescheduleWithAdvancePaymentTest.class);
+    private ResponseSpecification responseSpec;
+    private ResponseSpecification generalResponseSpec;
+    private RequestSpecification requestSpec;
+    private LoanTransactionHelper loanTransactionHelper;
+    private LoanRescheduleRequestHelper loanRescheduleRequestHelper;
+    private Integer clientId;
+    private Integer loanProductId;
+    private Integer loanId;
+    private Integer loanRescheduleRequestId;
+    private final String loanPrincipalAmount = "100000.00";
+    private final String numberOfRepayments = "12";
+    private final String interestRatePerPeriod = "18";
+
+    @BeforeEach
+    public void initialize() {
+        Utils.initializeRESTAssured();
+        this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
+        this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
+        this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
+        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+        this.loanRescheduleRequestHelper = new LoanRescheduleRequestHelper(this.requestSpec, this.responseSpec);
+
+        this.generalResponseSpec = new ResponseSpecBuilder().build();
+
+    }
+
+    @AfterEach
+    public void tearDown() {
+        disableConfig();
+    }
+
+    /**
+     * enables the configuration `is-interest-to-be-recovered-first-when-greater-than-emi`
+     **/
+    private void enableConfig() {
+        GlobalConfigurationHelper.updateEnabledFlagForGlobalConfiguration(this.requestSpec, this.responseSpec, "42", true);
+    }
+
+    /**
+     * disables the configuration `is-interest-to-be-recovered-first-when-greater-than-emi`
+     **/
+    private void disableConfig() {
+        GlobalConfigurationHelper.updateEnabledFlagForGlobalConfiguration(this.requestSpec, this.responseSpec, "42", false);
+    }
+
+    /**
+     * enables the configuration `is-principal-compounding-disabled-for-overdue-loans`
+     **/
+    private void enablePrincipalCompoundingConfig() {
+        GlobalConfigurationHelper.updateEnabledFlagForGlobalConfiguration(this.requestSpec, this.responseSpec, "43", true);
+    }
+
+    /**
+     * disables the configuration `is-principal-compounding-disabled-for-overdue-loans`
+     **/
+    private void disablePrincipalCompoundingConfig() {
+        GlobalConfigurationHelper.updateEnabledFlagForGlobalConfiguration(this.requestSpec, this.responseSpec, "43", false);
+    }
+
+    /**
+     * approve the loan application
+     **/
+    private void approveLoanApplication(String approveDate) {
+
+        if (this.loanId != null) {
+            this.loanTransactionHelper.approveLoan(approveDate, this.loanId);
+            LOG.info("Successfully approved loan (ID: {} )", this.loanId);
+        }
+    }
+
+    /**
+     * disburse the newly created loan
+     **/
+    private void disburseLoan(String disburseDate) {
+
+        if (this.loanId != null) {
+            String loanDetails = this.loanTransactionHelper.getLoanDetails(this.requestSpec, this.responseSpec, this.loanId);
+            this.loanTransactionHelper.disburseLoan(disburseDate, this.loanId,
+                    JsonPath.from(loanDetails).get("netDisbursalAmount").toString());
+            LOG.info("Successfully disbursed loan (ID: {} )", this.loanId);
+        }
+    }
+
+    /* FINERACT-1450 */
+    @Test
+    public void testRescheduleAfterLatePayment() {
+        this.enableConfig();
+        this.enablePrincipalCompoundingConfig();
+        // create all required entities
+        this.createRequiredEntitiesWithLatePayment();
+        this.createApproveLoanRescheduleRequestAfterLatePayment();
+        this.disablePrincipalCompoundingConfig();
+        this.disableConfig();
+    }
+
+    /**
+     * create a new client
+     **/
+    private void createClientEntity() {
+        this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+
+        ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, this.clientId);
+    }
+
+    private void createRequiredEntitiesWithLatePayment() {
+        this.createClientEntity();
+        this.createLoanProductWithInterestRecalculation();
+        this.createLoanEntityWithEntitiesForTestResceduleWithLatePayment();
+    }
+
+    private void createLoanProductWithInterestRecalculation() {
+        LOG.info(
+                "---------------------------------CREATING LOAN PRODUCT WITH RECALULATION ENABLED ------------------------------------------");
+
+        final String interestRecalculationCompoundingMethod = LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE;
+        final String rescheduleStrategyMethod = LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_NUMBER_OF_INSTALLMENTS;
+        final String recalculationRestFrequencyType = LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_DAILY;
+        final String recalculationRestFrequencyInterval = "0";
+        final String preCloseInterestCalculationStrategy = LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE;
+        final String recalculationCompoundingFrequencyType = null;
+        final String recalculationCompoundingFrequencyInterval = null;
+        final Integer recalculationCompoundingFrequencyOnDayType = null;
+        final Integer recalculationCompoundingFrequencyDayOfWeekType = null;
+        final Integer recalculationRestFrequencyOnDayType = null;
+        final Integer recalculationRestFrequencyDayOfWeekType = null;
+
+        final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(loanPrincipalAmount)
+                .withNumberOfRepayments(numberOfRepayments).withinterestRatePerPeriod(interestRatePerPeriod)
+                .withInterestRateFrequencyTypeAsYear().withInterestTypeAsDecliningBalance().withInterestCalculationPeriodTypeAsDays()
+                .withInterestRecalculationDetails(interestRecalculationCompoundingMethod, rescheduleStrategyMethod,
+                        preCloseInterestCalculationStrategy)
+                .withInterestRecalculationRestFrequencyDetails(recalculationRestFrequencyType, recalculationRestFrequencyInterval,
+                        recalculationRestFrequencyOnDayType, recalculationRestFrequencyDayOfWeekType)
+                .withInterestRecalculationCompoundingFrequencyDetails(recalculationCompoundingFrequencyType,
+                        recalculationCompoundingFrequencyInterval, recalculationCompoundingFrequencyOnDayType,
+                        recalculationCompoundingFrequencyDayOfWeekType)
+                .build(null);
+
+        this.loanProductId = this.loanTransactionHelper.getLoanProductId(loanProductJSON);
+        LOG.info("Successfully created loan product  (ID:{}) ", this.loanProductId);
+    }
+
+    private void createLoanEntityWithEntitiesForTestResceduleWithLatePayment() {
+        String firstRepaymentDate = "14 June 2021";
+        String submittedDate = "10 May 2021";
+
+        LOG.info("---------------------------------NEW LOAN APPLICATION------------------------------------------");
+
+        final String loanApplicationJSON = new LoanApplicationTestBuilder().withPrincipal("15000").withLoanTermFrequency("12")
+                .withLoanTermFrequencyAsMonths().withNumberOfRepayments("12").withRepaymentEveryAfter("1")
+                .withRepaymentFrequencyTypeAsMonths().withAmortizationTypeAsEqualInstallments().withInterestCalculationPeriodTypeAsDays()
+                .withInterestRatePerPeriod("12").withInterestTypeAsDecliningBalance().withSubmittedOnDate(submittedDate)
+                .withExpectedDisbursementDate(submittedDate).withFirstRepaymentDate(firstRepaymentDate)
+                .withwithRepaymentStrategy(LoanApplicationTestBuilder.INTEREST_PRINCIPAL_PENALTIES_FEES_ORDER_STRATEGY)
+                .withinterestChargedFromDate(submittedDate).build(this.clientId.toString(), this.loanProductId.toString(), null);
+
+        this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON);
+
+        LOG.info("Sucessfully created loan (ID: {} )", this.loanId);
+
+        this.approveLoanApplication(submittedDate);
+        this.disburseLoan(submittedDate);
+    }
+
+    private void createApproveLoanRescheduleRequestAfterLatePayment() {
+        LOG.info("-------------Make repayment 1-----------");
+        this.loanTransactionHelper.makeRepayment("14 June 2021", Float.parseFloat("1331.58"), loanId);
+
+        LOG.info("-------------Make repayment 2-----------");
+        this.loanTransactionHelper.makeRepayment("15 July 2021", Float.parseFloat("1331.58"), loanId);
+
+        LOG.info(
+                "---------------------------------CREATING LOAN RESCHEDULE REQUEST FOR LOAN WITH RECALCULATION------------------------------------");
+
+        final String requestJSON = new LoanRescheduleRequestTestBuilder().updateGraceOnPrincipal(null).updateGraceOnInterest(null)
+                .updateExtraTerms(null).updateRescheduleFromDate("16 August 2021").updateAdjustedDueDate("31 August 2021")
+                .updateRecalculateInterest(false).updateSubmittedOnDate("16 August 2022").build(this.loanId.toString());
+        LOG.info("Reschedule request : {}", requestJSON);
+        this.loanRescheduleRequestId = this.loanRescheduleRequestHelper.createLoanRescheduleRequest(requestJSON);
+        this.loanRescheduleRequestHelper.verifyCreationOfLoanRescheduleRequest(this.loanRescheduleRequestId);
+
+        LOG.info("Successfully created loan reschedule request (ID: {} )", this.loanRescheduleRequestId);
+
+        final String aproveRequestJSON = new LoanRescheduleRequestTestBuilder().updateSubmittedOnDate("16 August 2022")
+                .getApproveLoanRescheduleRequestJSON();
+        this.loanRescheduleRequestHelper.approveLoanRescheduleRequest(this.loanRescheduleRequestId, aproveRequestJSON);
+
+        final HashMap response = (HashMap) this.loanRescheduleRequestHelper.getLoanRescheduleRequest(loanRescheduleRequestId, "statusEnum");
+        assertTrue((Boolean) response.get("approved"));
+
+        LOG.info("Successfully approved loan reschedule request (ID: {})", this.loanRescheduleRequestId);
+
+        final Map repaymentSchedule = (Map) this.loanTransactionHelper.getLoanDetailExcludeFutureSchedule(requestSpec, generalResponseSpec,
+                this.loanId, "repaymentSchedule");
+        LOG.info("Repayment Schedule for id {} : {}", this.loanId, repaymentSchedule);
+        final ArrayList periods = (ArrayList) repaymentSchedule.get("periods");
+
+        HashMap period = (HashMap) periods.get(4);
+        LOG.info("period  {}", period);
+
+        assertEquals(new ArrayList<>(Arrays.asList(2021, 8, 31)), period.get("dueDate"), "Checking for Due Date for 1st Month");

Review comment:
       LGTM




-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] avikganguly01 merged pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
avikganguly01 merged pull request #2177:
URL: https://github.com/apache/fineract/pull/2177


   


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] vidakovic edited a comment on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
vidakovic edited a comment on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1081424161


   ```
   testLoanRefundByCashCashBasedAccounting()
   ```
   ... this is the stacktrace I get:
   
   ```
   2022-03-29 07:49:11.896 ERROR 194527 --- [pool-5-thread-2] a.f.p.s.s.SavingsSchedularInterestPoster : Interest posting job for savings failed for account 10
   
   java.lang.NullPointerException: Cannot invoke "java.math.BigDecimal.divide(java.math.BigDecimal, java.math.MathContext)" because the return value of "org.apache.fineract.portfolio.savings.data.SavingsAccountData.getNominalAnnualInterestRateOverdraft()" is null
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountInterestPostingServiceImpl.getEffectiveOverdraftInterestRateAsFraction(SavingsAccountInterestPostingServiceImpl.java:364)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountInterestPostingServiceImpl.calculateInterestUsing(SavingsAccountInterestPostingServiceImpl.java:279)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountInterestPostingServiceImpl.postInterest(SavingsAccountInterestPostingServiceImpl.java:84)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountWritePlatformServiceJpaRepositoryImpl.postInterest(SavingsAccountWritePlatformServiceJpaRepositoryImpl.java:662)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountWritePlatformServiceJpaRepositoryImpl$$FastClassBySpringCGLIB$$fa18015c.invoke(<generated>)
   	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
   	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)
   	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
   	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
   	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
   	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
   	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
   	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
   	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
   	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountWritePlatformServiceJpaRepositoryImpl$$EnhancerBySpringCGLIB$$8dd5f997.postInterest(<generated>)
   	at org.apache.fineract.portfolio.savings.service.SavingsSchedularInterestPoster.call(SavingsSchedularInterestPoster.java:153)
   	at org.apache.fineract.portfolio.savings.service.SavingsSchedularInterestPoster.call(SavingsSchedularInterestPoster.java:61)
   	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
   	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
   	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
   	at java.base/java.lang.Thread.run(Thread.java:833)
   
   2022-03-29 07:49:11.896 ERROR 194527 --- [pool-5-thread-3] a.f.p.s.s.SavingsSchedularInterestPoster : Interest posting job for savings failed for account 12
   
   java.lang.NullPointerException: Cannot invoke "java.math.BigDecimal.divide(java.math.BigDecimal, java.math.MathContext)" because the return value of "org.apache.fineract.portfolio.savings.data.SavingsAccountData.getNominalAnnualInterestRateOverdraft()" is null
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountInterestPostingServiceImpl.getEffectiveOverdraftInterestRateAsFraction(SavingsAccountInterestPostingServiceImpl.java:364)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountInterestPostingServiceImpl.calculateInterestUsing(SavingsAccountInterestPostingServiceImpl.java:279)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountInterestPostingServiceImpl.postInterest(SavingsAccountInterestPostingServiceImpl.java:84)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountWritePlatformServiceJpaRepositoryImpl.postInterest(SavingsAccountWritePlatformServiceJpaRepositoryImpl.java:662)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountWritePlatformServiceJpaRepositoryImpl$$FastClassBySpringCGLIB$$fa18015c.invoke(<generated>)
   	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
   	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)
   	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
   	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
   	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
   	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
   	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
   	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
   	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
   	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)
   	at org.apache.fineract.portfolio.savings.service.SavingsAccountWritePlatformServiceJpaRepositoryImpl$$EnhancerBySpringCGLIB$$8dd5f997.postInterest(<generated>)
   	at org.apache.fineract.portfolio.savings.service.SavingsSchedularInterestPoster.call(SavingsSchedularInterestPoster.java:153)
   	at org.apache.fineract.portfolio.savings.service.SavingsSchedularInterestPoster.call(SavingsSchedularInterestPoster.java:61)
   	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
   ```
   
   ... is failing... just in case you have an idea.


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] avikganguly01 commented on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
avikganguly01 commented on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1080424707


   Both #2187 and #2188 seems to be merged. Can I go ahead and merge this now?


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [fineract] vidakovic commented on pull request #2177: FINERACT-1450-fix

Posted by GitBox <gi...@apache.org>.
vidakovic commented on pull request #2177:
URL: https://github.com/apache/fineract/pull/2177#issuecomment-1081421199


   Currently investigating failing tests on develop... even minor lib updates from the dependency bot are failing... could this be related? If you have a moment to checkout current develop, run one of the failing tests and see if you can recognize something? Doing the same here. Thanks again.


-- 
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: commits-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org