This is an automated email from the ASF dual-hosted git repository.

vorburger pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new e10a78b  FINERACT-822 Integrating Error Prone
e10a78b is described below

commit e10a78b2bdfc3c6227e07383d69276951de49af3
Author: percyashu <[email protected]>
AuthorDate: Fri May 8 12:15:49 2020 +0100

    FINERACT-822 Integrating Error Prone
---
 fineract-provider/build.gradle                     | 87 ++++++++++++++++++++++
 .../fineract/integrationtests/StaffTest.java       |  8 ++
 .../integrationtests/common/OfficeDomain.java      |  7 +-
 ...VariableInstallmentsDecliningBalanceHelper.java |  3 +-
 .../VariableInstallmentsFlatHelper.java            |  2 +-
 .../fineract/interoperation/util/MathUtil.java     | 10 ++-
 .../floatingrates/data/FloatingRateDTO.java        |  2 +-
 .../floatingrates/data/FloatingRatePeriodData.java |  2 +-
 ...countWritePlatformServiceJpaRepositoryImpl.java |  4 +-
 9 files changed, 113 insertions(+), 12 deletions(-)

diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle
index edc147e..1ac1add 100644
--- a/fineract-provider/build.gradle
+++ b/fineract-provider/build.gradle
@@ -47,6 +47,7 @@ buildscript {
         classpath 
"gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.2.0"
         classpath 
"gradle.plugin.com.github.andygoossens:gradle-modernizer-plugin:1.3.0"
         classpath 
"gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:2.2.2"
+        classpath "net.ltgt.gradle:gradle-errorprone-plugin:1.1.1"
     }
 }
 
@@ -67,6 +68,7 @@ apply plugin: 'checkstyle'
 apply plugin: 'com.github.andygoossens.gradle-modernizer-plugin'
 apply plugin: 'jacoco'
 apply plugin: "com.gorylenko.gradle-git-properties"
+apply plugin: "net.ltgt.errorprone"
 // apply plugin: 'pmd'
 
 dependencyManagement {
@@ -278,6 +280,88 @@ configurations {
 tasks.withType(JavaCompile) {
     options.compilerArgs += ["-Xlint:unchecked","-Xlint:cast","-Werror"] // 
TODO FINERACT-959 (gradually) enable -Xlint:all (see "javac -help -X")
     options.deprecation = true
+    options.errorprone {
+        disableWarningsInGeneratedCode = true
+        //Todo Remove necessary checks from this list
+        disable("UnusedVariable",
+                "VariableNameSameAsType",
+                "InconsistentCapitalization",
+                "UnnecessaryParentheses",
+                "ClassCanBeStatic",
+                "MissingCasesInEnumSwitch",
+                "CompareToZero",
+                "OperatorPrecedence",
+                "MixedMutabilityReturnType",
+                "SameNameButDifferent",
+                "EqualsGetClass",
+                "ReferenceEquality",
+                "StringSplitter",
+                "MissingOverride",
+                "BigDecimalEquals",
+                "ImmutableEnumChecker",
+                "EqualsUnsafeCast",
+                "AssertEqualsArgumentOrderChecker",
+                "BoxedPrimitiveEquality",
+                "BadImport",
+                "UnusedMethod",
+                "ModifiedButNotUsed",
+                "ArgumentSelectionDefectChecker",
+                "JodaPlusMinusLong",
+                "TypeParameterUnusedInFormals",
+                "DoubleBraceInitialization",
+                "UnusedNestedClass",
+                "UndefinedEquals",
+                "JdkObsolete",
+                "OperatorPrecedence",
+                "NarrowingCompoundAssignment"
+        )
+        //TODO gradually enable these checks
+        error(  "DefaultCharset",
+//                "ReturnMissingNullable",
+//                "InconsistentOverloads",
+//                "MethodCanBeStatic",
+//                "Var",
+//                "ConstantField",
+//                "EmptySetMultibindingContributions",
+//                "MixedArrayDimensions",
+//                "MultipleTopLevelClasses",
+//                "MultiVariableDeclaration",
+//                "PackageLocation",
+//                "PrivateConstructorForNoninstantiableModule",
+//                "RemoveUnusedImports",
+//                "UnnecessaryStaticImport",
+//                "UseBinds",
+//                "WildcardImport",
+//                "FutureReturnValueIgnored",
+//                "IntLongMath",
+//                "FloatCast",
+//                "ClassNewInstance",
+//                "ConstructorInvokesOverridable",
+//                "ThreeLetterTimeZoneID",
+//                "UnsafeFinalization",
+//                "MutableMethodReturnType",
+//                "SynchronizeOnNonFinalField",
+//                "WaitNotInLoop",
+//                "SwitchDefault",
+//                "ReachabilityFenceUsage",
+//                "BoxedPrimitiveConstructor",
+//                "InjectOnConstructorOfAbstractClass",
+////                "StringSplitter",
+//                "UnnecessaryDefaultInEnumSwitch",
+//                "StreamResourceLeak",
+////                "InconsistentCapitalization",
+//                "TruthIncompatibleType",
+//                "ByteBufferBackingArray",
+//                "OrphanedFormatString",
+//                "CatchAndPrintStackTrace",
+//                "VarTypeName",
+//                "ObjectToString",
+//                "AssertThrowsMultipleStatements",
+//                "FieldCanBeFinal"
+        )
+    }
+    options.compilerArgs +=["-Xmaxwarns",1500,"-Xmaxerrs",1500]
+
 }
 
 apply from: 'dependencies.gradle'
@@ -398,6 +482,9 @@ dependencies {
   tomcat "org.apache.tomcat:tomcat:9.0.34@zip"
 }
 
+dependencies { 
+    errorprone "com.google.errorprone:error_prone_core:2.3.4"
+}
 cargo {
   containerId "tomcat9x"
 
diff --git 
a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/StaffTest.java
 
b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/StaffTest.java
index 47df585..f7467ec 100644
--- 
a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/StaffTest.java
+++ 
b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/StaffTest.java
@@ -31,6 +31,7 @@ import org.apache.fineract.integrationtests.common.Utils;
 import org.apache.fineract.integrationtests.common.organisation.StaffHelper;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 
 public class StaffTest {
@@ -91,6 +92,8 @@ public class StaffTest {
         StaffHelper.createStaffWithJson(requestSpec, 
responseSpecForValidationError, new Gson().toJson(map));
     }
 
+    @Test
+    @Ignore //TODO FINERACT-1005
     public void testStaffCreateMaxNameLength() {
 
         final HashMap<String, Object> map = new HashMap<>();
@@ -102,6 +105,7 @@ public class StaffTest {
         StaffHelper.createStaffWithJson(requestSpec, responseSpec, new 
Gson().toJson(map));
     }
 
+    @Test
     public void testStaffCreateExternalIdValidationError() {
         final HashMap<String, Object> map = new HashMap<>();
 
@@ -183,6 +187,8 @@ public class StaffTest {
         Assert.assertEquals(mobileNo, changes.get("mobileNo"));
     }
 
+    @Test
+    @Ignore // TODO FINERACT- 1005
     public void testStaffUpdateLongExternalIdError() {
         final HashMap<String, Object> map = new HashMap<>();
         map.put("externalId", Utils.randomStringGenerator("EXT", 98));
@@ -190,6 +196,8 @@ public class StaffTest {
         StaffHelper.updateStaff(requestSpec, responseSpecForValidationError, 
1, map);
     }
 
+    @Test
+    @Ignore // TODO FINERACT- 1005
     public void testStaffUpdateWrongActiveState() {
         final HashMap<String, Object> map = new HashMap<>();
         map.put("isActive", "xyz");
diff --git 
a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/OfficeDomain.java
 
b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/OfficeDomain.java
index 6364720..89d907b 100644
--- 
a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/OfficeDomain.java
+++ 
b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/OfficeDomain.java
@@ -19,6 +19,7 @@
 package org.apache.fineract.integrationtests.common;
 
 import com.google.gson.Gson;
+import java.util.Arrays;
 
 public class OfficeDomain {
 
@@ -127,7 +128,7 @@ public class OfficeDomain {
             hash += this.externalId.hashCode();
         }
         if (this.openingDate != null) {
-            hash += this.openingDate.hashCode();
+            hash += Arrays.hashCode(this.openingDate);
         }
         if (this.hierarchy != null) {
             hash += this.hierarchy.hashCode();
@@ -151,11 +152,11 @@ public class OfficeDomain {
         if (this.id == od.getId() && this.name.equals(od.getName())
                 && this.nameDecorated.equals(od.getName())
                 && this.externalId.equals(od.getExternalId())
-                && this.openingDate.equals(od.getOpeningDate())
+                && Arrays.equals(this.openingDate, od.getOpeningDate())
                 && this.hierarchy.equals(od.getHierarchy())) {
             return true;
         }
 
         return false;
     }
-}
\ No newline at end of file
+}
diff --git 
a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsDecliningBalanceHelper.java
 
b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsDecliningBalanceHelper.java
index 4ab6249..29750d9 100644
--- 
a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsDecliningBalanceHelper.java
+++ 
b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsDecliningBalanceHelper.java
@@ -284,13 +284,14 @@ public class VariableInstallmentsDecliningBalanceHelper {
         }
         return toReturn;
     }
+
     public static String formatDate(ArrayList list) {
         Calendar cal = Calendar.getInstance();
         cal.set(Calendar.YEAR, (int) list.get(0));
         cal.set(Calendar.MONTH, (int) list.get(1) - 1);
         cal.set(Calendar.DAY_OF_MONTH, (int) list.get(2));
         Date date = cal.getTime();
-        DateFormat requiredFormat = new SimpleDateFormat("dd MMMM YYYY");
+        DateFormat requiredFormat = new SimpleDateFormat("dd MMMM yyyy");
         return requiredFormat.format(date);
     }
 
diff --git 
a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsFlatHelper.java
 
b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsFlatHelper.java
index acedbf3..6ff1b68 100644
--- 
a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsFlatHelper.java
+++ 
b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsFlatHelper.java
@@ -209,7 +209,7 @@ public class VariableInstallmentsFlatHelper {
         cal.set(Calendar.MONTH, (int) list.get(1) - 1);
         cal.set(Calendar.DAY_OF_MONTH, (int) list.get(2));
         Date date = cal.getTime();
-        DateFormat requiredFormat = new SimpleDateFormat("dd MMMM YYYY");
+        DateFormat requiredFormat = new SimpleDateFormat("dd MMMM yyyy");
         return requiredFormat.format(date);
     }
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/interoperation/util/MathUtil.java
 
b/fineract-provider/src/main/java/org/apache/fineract/interoperation/util/MathUtil.java
index adf64d6..b99f69d 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/interoperation/util/MathUtil.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/interoperation/util/MathUtil.java
@@ -88,9 +88,13 @@ public class MathUtil {
     /** @return calculates minimum of the two values considering null values
      * @param notNull if true then null parameter is omitted, otherwise 
returns null */
     public static Long min(Long first, Long second, boolean notNull) {
-        return first == null
-                ? (notNull ? second : null)
-                : second == null ? (notNull ? first : null) : Math.min(first, 
second);
+        if (first == null){
+            return notNull ? second : null;
+        }
+        if (second == null) {
+            return notNull ? first : null;
+        }
+        return Math.min(first, second);
     }
 
     /** @return calculates minimum of the values considering null values
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/FloatingRateDTO.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/FloatingRateDTO.java
index 0f50baa..e62ef0d 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/FloatingRateDTO.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/FloatingRateDTO.java
@@ -42,7 +42,7 @@ public class FloatingRateDTO {
     public BigDecimal fetchBaseRate(LocalDate date) {
         BigDecimal rate = null;
         for (FloatingRatePeriodData periodData : this.baseLendingRatePeriods) {
-            final LocalDate periodFromDate = new 
LocalDate(periodData.getFromDate());
+            final LocalDate periodFromDate = periodData.getFromDate();
             if (periodFromDate.isBefore(date) || periodFromDate.isEqual(date)) 
{
                 rate = periodData.getInterestRate();
                 break;
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/FloatingRatePeriodData.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/FloatingRatePeriodData.java
index 13eca97..e6d2e89 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/FloatingRatePeriodData.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/FloatingRatePeriodData.java
@@ -62,7 +62,7 @@ public class FloatingRatePeriodData implements
     }
 
     public LocalDate getFromDateAsLocalDate() {
-        return new LocalDate(this.fromDate);
+        return this.fromDate;
     }
 
     public BigDecimal getInterestRate() {
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
index 7eb4a63..979c074 100755
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
@@ -1657,7 +1657,7 @@ public class 
SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi
 
         for (SavingsAccountTransaction transaction : 
savingsAccount.getTransactions()) {
             if ((transaction.getTransactionLocalDate().isEqual(transferDate)
-                    && transaction.getTransactionLocalDate().isAfter(new 
LocalDate(transferDate)))
+                    && 
transaction.getTransactionLocalDate().isAfter(transferDate))
                     || 
transaction.getTransactionLocalDate().isAfter(transferDate)) {
                 throw new 
GeneralPlatformDomainRuleException(TransferApiConstants.transferClientSavingsException,
                         TransferApiConstants.transferClientSavingsException, 
new LocalDate(transaction.createdDate()),
@@ -1667,4 +1667,4 @@ public class 
SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi
         }
 
     }
-}
\ No newline at end of file
+}

Reply via email to