Commit 8c639de
committed
Provide a coherent implementation of hashCode for JsonObject/JsonArray with respect to equals.
Motivation:
JsonArray/JsonObject hashCode implementations rely on the wrapped data structure hashCode implementation and on the generic Object hashCode function.
1. The hash value might differ from data structure implementations.
2. Number coercion is performed in equals which allows case were we do have equality (after coercion) but hash differs (e.g. 4L and 4D)
Changes:
JsonObject/JsonArray implement hashCode methods.
Number's hashCode is computed against the hashCode of their double value.1 parent 66917da commit 8c639de
File tree
4 files changed
+136
-103
lines changed- src
- main/java/io/vertx/core/json
- impl
- test/java/io/vertx/core/json
4 files changed
+136
-103
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
23 | | - | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
661 | 662 | | |
662 | 663 | | |
663 | 664 | | |
664 | | - | |
| 665 | + | |
665 | 666 | | |
| 667 | + | |
666 | 668 | | |
667 | | - | |
| 669 | + | |
668 | 670 | | |
| 671 | + | |
669 | 672 | | |
670 | | - | |
| 673 | + | |
671 | 674 | | |
| 675 | + | |
672 | 676 | | |
673 | 677 | | |
674 | 678 | | |
675 | | - | |
| 679 | + | |
| 680 | + | |
676 | 681 | | |
| 682 | + | |
677 | 683 | | |
678 | | - | |
| 684 | + | |
679 | 685 | | |
680 | 686 | | |
681 | | - | |
| 687 | + | |
682 | 688 | | |
683 | 689 | | |
684 | 690 | | |
| |||
688 | 694 | | |
689 | 695 | | |
690 | 696 | | |
691 | | - | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
692 | 702 | | |
693 | 703 | | |
694 | 704 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
1162 | 1163 | | |
1163 | 1164 | | |
1164 | 1165 | | |
1165 | | - | |
| 1166 | + | |
1166 | 1167 | | |
| 1168 | + | |
1167 | 1169 | | |
1168 | | - | |
| 1170 | + | |
1169 | 1171 | | |
| 1172 | + | |
1170 | 1173 | | |
1171 | | - | |
| 1174 | + | |
1172 | 1175 | | |
| 1176 | + | |
1173 | 1177 | | |
1174 | 1178 | | |
1175 | 1179 | | |
1176 | | - | |
| 1180 | + | |
1177 | 1181 | | |
| 1182 | + | |
1178 | 1183 | | |
1179 | 1184 | | |
1180 | 1185 | | |
| |||
1183 | 1188 | | |
1184 | 1189 | | |
1185 | 1190 | | |
1186 | | - | |
| 1191 | + | |
1187 | 1192 | | |
1188 | 1193 | | |
1189 | 1194 | | |
1190 | 1195 | | |
1191 | 1196 | | |
1192 | 1197 | | |
1193 | 1198 | | |
1194 | | - | |
1195 | | - | |
1196 | | - | |
1197 | | - | |
1198 | | - | |
1199 | | - | |
1200 | | - | |
1201 | | - | |
1202 | | - | |
1203 | | - | |
1204 | | - | |
1205 | | - | |
1206 | | - | |
1207 | | - | |
1208 | | - | |
1209 | | - | |
1210 | | - | |
1211 | | - | |
1212 | | - | |
1213 | | - | |
1214 | | - | |
1215 | | - | |
1216 | | - | |
1217 | | - | |
1218 | | - | |
1219 | | - | |
1220 | | - | |
1221 | | - | |
1222 | | - | |
1223 | | - | |
1224 | | - | |
1225 | | - | |
1226 | | - | |
1227 | | - | |
1228 | | - | |
1229 | | - | |
1230 | | - | |
1231 | | - | |
1232 | | - | |
1233 | | - | |
1234 | | - | |
1235 | | - | |
1236 | | - | |
1237 | | - | |
1238 | | - | |
1239 | | - | |
1240 | 1199 | | |
1241 | 1200 | | |
1242 | | - | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
1243 | 1208 | | |
1244 | 1209 | | |
1245 | 1210 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
| 19 | + | |
23 | 20 | | |
24 | 21 | | |
25 | 22 | | |
| |||
128 | 125 | | |
129 | 126 | | |
130 | 127 | | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
131 | 184 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1548 | 1548 | | |
1549 | 1549 | | |
1550 | 1550 | | |
1551 | | - | |
1552 | | - | |
1553 | | - | |
1554 | | - | |
1555 | | - | |
1556 | | - | |
1557 | | - | |
1558 | | - | |
1559 | | - | |
1560 | | - | |
1561 | | - | |
1562 | | - | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
1563 | 1563 | | |
1564 | | - | |
1565 | | - | |
1566 | | - | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
1567 | 1567 | | |
1568 | 1568 | | |
1569 | 1569 | | |
| |||
1574 | 1574 | | |
1575 | 1575 | | |
1576 | 1576 | | |
1577 | | - | |
1578 | | - | |
| 1577 | + | |
| 1578 | + | |
1579 | 1579 | | |
1580 | 1580 | | |
1581 | | - | |
1582 | | - | |
1583 | | - | |
1584 | | - | |
1585 | | - | |
1586 | | - | |
1587 | | - | |
1588 | | - | |
1589 | | - | |
1590 | | - | |
1591 | | - | |
1592 | | - | |
1593 | | - | |
1594 | | - | |
1595 | | - | |
| 1581 | + | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
| 1598 | + | |
| 1599 | + | |
| 1600 | + | |
| 1601 | + | |
| 1602 | + | |
1596 | 1603 | | |
1597 | 1604 | | |
1598 | | - | |
| 1605 | + | |
1599 | 1606 | | |
1600 | | - | |
1601 | | - | |
1602 | | - | |
1603 | | - | |
1604 | | - | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
1605 | 1610 | | |
1606 | 1611 | | |
1607 | 1612 | | |
| |||
1905 | 1910 | | |
1906 | 1911 | | |
1907 | 1912 | | |
1908 | | - | |
| 1913 | + | |
1909 | 1914 | | |
1910 | 1915 | | |
1911 | 1916 | | |
| |||
0 commit comments