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
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.