You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2020/04/01 10:59:02 UTC

[commons-numbers] 08/08: Fix some Complex PMD issues.

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

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit c06ba43574a3e70639987a0b8a698aba0aeace0d
Author: aherbert <ah...@apache.org>
AuthorDate: Wed Apr 1 11:57:02 2020 +0100

    Fix some Complex PMD issues.
    
    Suppress loss of stack trace in Complex parse exception.
---
 .../apache/commons/numbers/complex/Complex.java    |  2 +-
 src/main/resources/pmd/pmd-ruleset.xml             | 29 ++++++++++++++++------
 2 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java b/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
index 95cd1e3..dbad564 100644
--- a/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
+++ b/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
@@ -3147,7 +3147,7 @@ public final class Complex implements Serializable  {
             // inner part
             final double realPart = nthRootOfAbs *  Math.cos(innerPart);
             final double imaginaryPart = nthRootOfAbs *  Math.sin(innerPart);
-            result.add(new Complex(realPart, imaginaryPart));
+            result.add(ofCartesian(realPart, imaginaryPart));
             innerPart += slice;
         }
 
diff --git a/src/main/resources/pmd/pmd-ruleset.xml b/src/main/resources/pmd/pmd-ruleset.xml
index 56920ca..5ee62ef 100644
--- a/src/main/resources/pmd/pmd-ruleset.xml
+++ b/src/main/resources/pmd/pmd-ruleset.xml
@@ -70,7 +70,7 @@
   <rule ref="category/java/codestyle.xml/ShortMethodName">
     <properties>
       <!-- TODO: Current regex effectively disables this rule. -->
-      <property name="violationSuppressXPath" value="//ClassOrInterfaceDeclaration[matches(@Image, '^.*$')]"/>
+      <property name="violationSuppressXPath" value="//ClassOrInterfaceType[matches(@Image, '^.*$')]"/>
     </properties>
   </rule>
   <rule ref="category/java/codestyle.xml/ClassNamingConventions">
@@ -93,7 +93,7 @@
   <rule ref="category/java/design.xml/ExcessivePublicCount">
     <properties>
       <property name="violationSuppressXPath"
-        value="//ClassOrInterfaceDeclaration[@Image='Complex'
+        value="//ClassOrInterfaceType[@Image='Complex'
                or @Image='Fraction'
                or @Image='BigFraction']"/>
     </properties>
@@ -101,7 +101,7 @@
   <rule ref="category/java/design.xml/ExcessiveClassLength">
     <properties>
       <property name="violationSuppressXPath"
-        value="//ClassOrInterfaceDeclaration[@Image='Complex'
+        value="//ClassOrInterfaceType[@Image='Complex'
                or @Image='Fraction'
                or @Image='BigFraction']"/>
     </properties>
@@ -109,7 +109,7 @@
   <rule ref="category/java/design.xml/GodClass">
     <properties>
       <property name="violationSuppressXPath"
-        value="//ClassOrInterfaceDeclaration[@Image='Fraction']"/>
+        value="//ClassOrInterfaceType[@Image='Fraction']"/>
     </properties>
   </rule>
 
@@ -117,7 +117,7 @@
     <properties>
       <property name="ignoreMagicNumbers" value="-1,0,1" />
       <property name="violationSuppressXPath"
-        value="//ClassOrInterfaceDeclaration[@Image='LogGamma'
+        value="//ClassOrInterfaceType[@Image='LogGamma'
                or @Image='LogGammaSum'
                or @Image='InverseErf'
                or @Image='InvGamma1pm1']"/>
@@ -127,7 +127,7 @@
   <rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingMethodName">
     <properties>
       <property name="violationSuppressXPath"
-        value="//ClassOrInterfaceDeclaration[@Image='Complex']"/>
+        value="//ClassOrInterfaceType[@Image='Complex']"/>
     </properties>
   </rule>
 
@@ -135,7 +135,22 @@
   <rule ref="category/java/design.xml/ExcessiveMethodLength">
     <properties>
       <property name="violationSuppressXPath"
-        value="//ClassOrInterfaceDeclaration[@Image='Complex']"/>
+        value="//ClassOrInterfaceType[@Image='Complex']"/>
+    </properties>
+  </rule>
+
+  <!-- Complex parse deliberately catches and re-throws a new NumberFormatException
+       to include the full input string in the exception message. -->
+  <rule ref="category/java/design.xml/AvoidThrowingNewInstanceOfSameException">
+    <properties>
+      <property name="violationSuppressXPath"
+        value="//ClassOrInterfaceType[@Image='Complex']"/>
+    </properties>
+  </rule>
+  <rule ref="category/java/bestpractices.xml/PreserveStackTrace">
+    <properties>
+      <property name="violationSuppressXPath"
+        value="//ClassOrInterfaceType[@Image='Complex']"/>
     </properties>
   </rule>