Commit 5c63643
committed
fix: prevent table corruption when adding column after deleted var-length column
mutateAddColumn() wrote the current live var-column count instead of
the historical max, corrupting the table definition and later causing
raw ArrayIndexOutOfBoundsExceptions on read/write. Wrap remaining
inconsistencies as JackcessException instead of leaking unchecked
exceptions.
Reported-by: @congjun-yang
Closes #101 parent 863ae78 commit 5c63643
2 files changed
Lines changed: 80 additions & 2 deletions
File tree
- src
- main/java/io/github/spannm/jackcess/impl
- test/java/io/github/spannm/jackcess
Lines changed: 28 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| |||
765 | 766 | | |
766 | 767 | | |
767 | 768 | | |
768 | | - | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
769 | 784 | | |
770 | 785 | | |
771 | 786 | | |
| |||
1077 | 1092 | | |
1078 | 1093 | | |
1079 | 1094 | | |
1080 | | - | |
| 1095 | + | |
1081 | 1096 | | |
1082 | 1097 | | |
1083 | 1098 | | |
| |||
2546 | 2561 | | |
2547 | 2562 | | |
2548 | 2563 | | |
| 2564 | + | |
| 2565 | + | |
| 2566 | + | |
| 2567 | + | |
| 2568 | + | |
| 2569 | + | |
| 2570 | + | |
| 2571 | + | |
| 2572 | + | |
| 2573 | + | |
| 2574 | + | |
2549 | 2575 | | |
2550 | 2576 | | |
2551 | 2577 | | |
| |||
Lines changed: 52 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
307 | 359 | | |
308 | 360 | | |
309 | 361 | | |
| |||
0 commit comments