Bug 47969

Summary: Problematic equals methods
Product: POI Reporter: David Horwitz <dhorwitz>
Component: XSSFAssignee: POI Developers List <dev>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 3.5-FINAL   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Attachments: Fix 4 problematic equals statements

Description David Horwitz 2009-10-09 00:46:30 UTC
Created attachment 24367 [details]
Fix 4 problematic equals statements

There are 4 equals methods in the org.apache.ss package
that show the same broken pattern. They assume that they are being passed
non-null values of the same Class. The attached patch fixes these.

The classes affected are:
java/org/apache/poi/ss/formula/eval/forked/ForkedEvaluationSheet.java
org/apache/poi/ss/formula/FormulaUsedBlankCellSet.java
java/org/apache/poi/ss/formula/PlainCellCache.java
java/org/apache/poi/ss/util/MutableFPNumber.java
Comment 1 Josh Micich 2009-10-13 16:39:04 UTC
I guess these 'problems' were also found by an automated code checker.  Actually, all four equals() methods were optimised for performance, knowing that the instanceof check is not needed.  Note that none of the classes is public.  I am pretty sure it is impossible to get a CCE or NPE from any of these methods, no matter how you exercise POI.

Nonetheless, there's value in making it clear that code is not broken, so I have added "assert obj instanceof <MyKeyClass>" statements to three of the equals method, and deleted one which was unused (svn r824972 ). This change should have negligible performance impact and should also suppress the code checker warning.