Repository navigation
Commit 621ccff
authored
[kotlin] Fix the kotlinx serializer for a number branch in oneOf/anyOf wrappers (#25472)
* [kotlin-client] Encode unformatted number branches in kotlinx oneOf/anyOf wrappers
A plain `type: number` member maps to java.math.BigDecimal, which is not a Kotlin primitive, so the kotlinx_serialization oneOf/anyOf wrapper serializer emitted `java.math.BigDecimal.serializer()`. kotlinx.serialization has no such serializer, so the generated code did not compile. The number branch now writes the value as a JSON number via `JsonPrimitive`.
Fixes #25452
* [kotlin-client] Decode number branches in kotlinx oneOf/anyOf wrappers
The unformatted number (java.math.BigDecimal) branch is now encoded as a JSON number, but its decode branch only ran for non-primitive JSON elements, so a number never matched. A plain Json also has no BigDecimal serializer for decodeFromJsonElement. The branch now accepts a non-string JsonPrimitive and builds the BigDecimal from its content.1 parent cc39f62 commit 621ccff
4 files changed
Lines changed: 96 additions & 0 deletions
File tree
- modules/openapi-generator/src
- main/resources/kotlin-client
- test
- java/org/openapitools/codegen/kotlin
- resources/3_0/kotlin
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
159 | 163 | | |
| 164 | + | |
160 | 165 | | |
161 | 166 | | |
162 | 167 | | |
| |||
208 | 213 | | |
209 | 214 | | |
210 | 215 | | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
211 | 226 | | |
212 | 227 | | |
213 | 228 | | |
| |||
216 | 231 | | |
217 | 232 | | |
218 | 233 | | |
| 234 | + | |
219 | 235 | | |
220 | 236 | | |
221 | 237 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
219 | 219 | | |
220 | 220 | | |
221 | 221 | | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
222 | 226 | | |
| 227 | + | |
223 | 228 | | |
224 | 229 | | |
225 | 230 | | |
| |||
271 | 276 | | |
272 | 277 | | |
273 | 278 | | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
274 | 289 | | |
275 | 290 | | |
276 | 291 | | |
| |||
279 | 294 | | |
280 | 295 | | |
281 | 296 | | |
| 297 | + | |
282 | 298 | | |
283 | 299 | | |
284 | 300 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1582 | 1582 | | |
1583 | 1583 | | |
1584 | 1584 | | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
| 1598 | + | |
| 1599 | + | |
| 1600 | + | |
| 1601 | + | |
| 1602 | + | |
| 1603 | + | |
| 1604 | + | |
| 1605 | + | |
| 1606 | + | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
1585 | 1614 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
0 commit comments