Commit c13e298
authored
SQLTimeoutException fix (#1135)
## Description
<!-- Provide a brief summary of the changes made and the issue they aim
to address.-->
This PR fixes timeout exception handling to ensure `SQLTimeoutException`
is thrown (via `DatabricksTimeoutException`) instead of generic
`DatabricksSQLException` when queries timeout, improving JDBC standards
compliance.
**Changes:**
- **Client-side timeout fix** (`DatabricksStatement.java`): Changed
exception unwrapping to check for `SQLException` instead of just
`DatabricksSQLException`, allowing `DatabricksTimeoutException` to
propagate correctly
- **Server-side timeout fix for Thrift mode**
(`DatabricksThriftAccessor.java`): Added SQL state check for `57KD0`
(Databricks timeout code) in `checkOperationStatusForErrors()` to throw
`DatabricksTimeoutException`
- **Server-side timeout fix for SEA mode** (`DatabricksSdkClient.java`):
Added SQL state check for `57KD0` in `handleFailedExecution()` to throw
`DatabricksTimeoutException`
- **Unit tests**: Added server-side timeout tests for both Thrift and
SEA modes
## Testing
<!-- Describe how the changes have been tested-->
- Existing client-side timeout tests pass (`testClientSideTimeout` in
both test files)
- New server-side timeout tests pass
(`testServerSideTimeoutThrowsTimeoutException` in both test files)
- Manually verified expected exceptions by connecting to a real
Databricks workspace
## Additional Notes to the Reviewer
<!-- Share any additional context or insights that may help the reviewer
understand the changes better. This could include challenges faced,
limitations, or compromises made during the development process.
Also, mention any areas of the code that you would like the reviewer to
focus on specifically. -->
---------
Signed-off-by: Sreekanth Vadigi <sreekanth.vadigi@databricks.com>1 parent 6e1c164 commit c13e298
8 files changed
Lines changed: 126 additions & 27 deletions
File tree
- development
- src
- main/java/com/databricks/jdbc
- api/impl
- common
- dbclient/impl
- sqlexec
- thrift
- test/java/com/databricks/jdbc/dbclient/impl
- sqlexec
- thrift
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
11 | 13 | | |
12 | 14 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
| 2 | + | |
| 3 | + | |
4 | 4 | | |
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
755 | 755 | | |
756 | 756 | | |
757 | 757 | | |
758 | | - | |
| 758 | + | |
759 | 759 | | |
760 | 760 | | |
761 | | - | |
762 | | - | |
| 761 | + | |
| 762 | + | |
763 | 763 | | |
764 | 764 | | |
765 | 765 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
| 107 | + | |
107 | 108 | | |
108 | 109 | | |
109 | 110 | | |
| |||
Lines changed: 8 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
650 | 651 | | |
651 | 652 | | |
652 | 653 | | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
653 | 660 | | |
654 | | - | |
655 | | - | |
656 | | - | |
| 661 | + | |
657 | 662 | | |
658 | 663 | | |
659 | 664 | | |
| |||
Lines changed: 20 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
574 | 575 | | |
575 | 576 | | |
576 | 577 | | |
577 | | - | |
| 578 | + | |
578 | 579 | | |
579 | 580 | | |
580 | 581 | | |
581 | 582 | | |
582 | 583 | | |
583 | 584 | | |
584 | | - | |
| 585 | + | |
585 | 586 | | |
586 | 587 | | |
587 | 588 | | |
588 | 589 | | |
589 | 590 | | |
590 | 591 | | |
591 | | - | |
| 592 | + | |
592 | 593 | | |
593 | 594 | | |
594 | 595 | | |
595 | 596 | | |
596 | 597 | | |
597 | | - | |
598 | | - | |
| 598 | + | |
599 | 599 | | |
600 | 600 | | |
601 | 601 | | |
602 | 602 | | |
603 | 603 | | |
604 | 604 | | |
605 | | - | |
| 605 | + | |
606 | 606 | | |
607 | 607 | | |
608 | 608 | | |
609 | 609 | | |
610 | 610 | | |
611 | | - | |
612 | | - | |
| 611 | + | |
613 | 612 | | |
614 | 613 | | |
615 | 614 | | |
616 | 615 | | |
617 | 616 | | |
618 | | - | |
619 | | - | |
| 617 | + | |
620 | 618 | | |
621 | 619 | | |
622 | 620 | | |
623 | 621 | | |
624 | 622 | | |
625 | | - | |
626 | | - | |
| 623 | + | |
627 | 624 | | |
628 | 625 | | |
629 | 626 | | |
630 | 627 | | |
631 | 628 | | |
632 | | - | |
633 | | - | |
| 629 | + | |
634 | 630 | | |
635 | 631 | | |
636 | 632 | | |
| |||
669 | 665 | | |
670 | 666 | | |
671 | 667 | | |
672 | | - | |
| 668 | + | |
673 | 669 | | |
674 | 670 | | |
675 | 671 | | |
| |||
742 | 738 | | |
743 | 739 | | |
744 | 740 | | |
745 | | - | |
| 741 | + | |
746 | 742 | | |
747 | 743 | | |
748 | 744 | | |
| |||
751 | 747 | | |
752 | 748 | | |
753 | 749 | | |
754 | | - | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
755 | 758 | | |
756 | 759 | | |
757 | 760 | | |
| |||
Lines changed: 54 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
438 | 439 | | |
439 | 440 | | |
440 | 441 | | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
441 | 495 | | |
442 | 496 | | |
443 | 497 | | |
| |||
Lines changed: 36 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
824 | 825 | | |
825 | 826 | | |
826 | 827 | | |
827 | | - | |
828 | | - | |
| 828 | + | |
829 | 829 | | |
830 | 830 | | |
831 | 831 | | |
| |||
869 | 869 | | |
870 | 870 | | |
871 | 871 | | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
872 | 906 | | |
873 | 907 | | |
874 | 908 | | |
| |||
0 commit comments