Details
-
Sub-task
-
Status: Resolved
-
Medium
-
Resolution: Done
-
None
-
None
Description
Generating anyxml/anydata properties has a direct implication on DataObject.equals(). Since we currently do not define an equality contract, the default is identity comparison, which is wrong and breaks with proxying – if we generate two proxies, we will end up blowing up if we're not careful.
The contract needs to be defaulted in OpaqueData first: compare the representations and then the values. Implementations of OpaqueValue can then decide how to compare (via a default method).
For OpaqueObjects, we first need to compare implementedInterface() and then compare OpaqueData.
Attachments
Issue Links
- blocks
-
MDSAL-437 Generate binding interfaces for anyxml nodes
-
- Resolved
-
| # | Subject | Branch | Project | Status | CR | V |
|---|---|---|---|---|---|---|
| 81590,7 | Define OpaqueData/OpaqueObject hashCode/equals | master | mdsal | Status: MERGED | +2 | +1 |
| 81646,2 | Define OpaqueData/OpaqueObject hashCode/equals | v3.0.x | mdsal | Status: MERGED | +2 | +1 |