pjfanning opened a new pull request, #1379:
URL: https://github.com/apache/poi/pull/1379

   These are the `equals` findings from SpotBugs that are actual problems.
   
   ### Fixed
   - **`HSSFPalette.CustomColor`** (a real bug): `HSSFColor.equals` compares 
the base class's index and RGB. `CustomColor` keeps its own index and colour 
bytes and never sets those base fields. So every colour returned by 
`HSSFPalette.getColor` for a custom palette entry equalled every other one. 
`CustomColor` now implements `equals`/`hashCode` from its index and RGB.
   - **`CustomProperty` vs `Property`** (asymmetric): `Property.equals` ignores 
the name, so `property.equals(customProperty)` could be true while 
`customProperty.equals(property)` was false. Sections hold both: a section read 
from a file has plain `Property` objects, while one built through 
`setCustomProperties` has `CustomProperty` objects. So the result of 
`Section.equals` depended on which section came first.
     - `CustomProperty.equals` now compares a plain `Property` the way 
`Property.equals` does. Two `CustomProperty` objects are still compared by name 
too.
     - `Property.equals` is unchanged, so no comparison that returned true 
before now returns false.
   - **`TextPiece` vs `OldTextPiece`** (asymmetric): `TextPiece.equals` 
accepted any subclass, while `OldTextPiece.equals` only accepted 
`OldTextPiece`. `TextPiece.equals` now requires the same class.
   
   ### Not changed
   - **`EscherArrayProperty`** doesn't override `equals`: the inherited 
`EscherComplexProperty.equals` already compares the complex data, and that 
holds the array.
   - **`ZipArchiveFakeEntry`** doesn't override `equals`: POI never compares 
these entries.
   - **`ZipPackage.EntryTriple` and `AbstractWordConverter.Structure`** have a 
`compareTo` that is inconsistent with `equals`. Both are private and only used 
to sort lists, so this has no effect.
   - **`Property.hashCode`** is not consistent with `Property.equals` for 
`byte[]` values: they are compared by content but hashed by identity. This is 
pre-existing and left as is.
   
   New tests cover each fix: `TestHSSFPalette.testCustomColorEquals`, 
`TestCustomProperty` and `TestTextPiece`. The hpsf package, `TestHSSFColor`, 
`TestHSSFPalette` and the hwpf model tests all pass.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to