You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sebb (JIRA)" <ji...@apache.org> on 2010/03/14 02:28:27 UTC

[jira] Resolved: (MATH-337) Equals methods rely on catching ClassCastException rather than using instanceof check

     [ https://issues.apache.org/jira/browse/MATH-337?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebb resolved MATH-337.
-----------------------

    Resolution: Fixed

URL: http://svn.apache.org/viewvc?rev=922713&view=rev
Log:
MATH-337 Equals methods rely on catching ClassCastException rather than using instanceof check

Modified:
   commons/proper/math/trunk/src/main/java/org/apache/commons/math/complex/Complex.java
   commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/Fraction.java
   commons/proper/math/trunk/src/main/java/org/apache/commons/math/geometry/Vector3D.java
   commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/LinearConstraint.java
   commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/LinearObjectiveFunction.java
   commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java
   commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/BigReal.java
   commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/TransformerMap.java

> Equals methods rely on catching ClassCastException rather than using instanceof check
> -------------------------------------------------------------------------------------
>
>                 Key: MATH-337
>                 URL: https://issues.apache.org/jira/browse/MATH-337
>             Project: Commons Math
>          Issue Type: Improvement
>            Reporter: Sebb
>            Priority: Minor
>             Fix For: 2.1
>
>
> Several of the equals methods rely on catching ClassCastException rather than using an instanceof check.
> For example:
> {code}
> SimplexTableau.equals(Object){
>   if (this == other) {
>     return true;
>   }
>   if (other == null) {
>     return false;
>   }
>   try {
>       SimplexTableau rhs = (SimplexTableau) other;
>       etc.
>   } catch (ClassCastException ex) {
>       return false;
>   }
> }
> {code}
> This is likely to be significantly slower if the cast fails. It would be cheaper to do the following:
> {code}
> SimplexTableau.equals(Object){
>   if (this == other) {
>     return true;
>   }
>   if (!(other instanceof SimplexTableau)) {
>     return false;
>   }
>   SimplexTableau rhs = (SimplexTableau) other;
>   etc.
> }
> {code}
> Note that the null check is no longer needed; it is replaced by the instanceof check.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.