fix: DuplicatedKeyException not propagated as cause on Follower forwarded commands - #5014
Conversation
…rded commands Investigated and fixed by Leonardo for client issue https://github.com/ArcadeData/arcadedb-operations/issues/526.
|
Tick the box to add this pull request to the merge queue (same as
|
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
🟢 Coverage 88.89% diff coverage · -7.22% coverage variation
Metric Results Coverage variation ✅ -7.22% coverage variation Diff coverage ✅ 88.89% diff coverage Coverage variation details
Coverable lines Covered lines Coverage Common ancestor commit (115dfa0) 134558 100099 74.39% Head commit (54ee012) 166385 (+31827) 111765 (+11666) 67.17% (-7.22%) Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch:
<coverage of head commit> - <coverage of common ancestor commit>Diff coverage details
Coverable lines Covered lines Diff coverage Pull request (#5014) 27 24 88.89% Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified:
<covered lines added or modified>/<coverable lines added or modified> * 100%
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5014 +/- ##
============================================
- Coverage 65.40% 65.40% -0.01%
- Complexity 817 823 +6
============================================
Files 1685 1685
Lines 134558 134582 +24
Branches 28788 28797 +9
============================================
+ Hits 88004 88017 +13
- Misses 34496 34497 +1
- Partials 12058 12068 +10 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
#5017) Follow-up to #5014. When a Follower forwards a command to the Leader and the Leader returns an error, reconstructLeaderException now rebuilds the exact exception type instead of collapsing retryable subtypes onto their NeedRetryException supertype. - ConcurrentModificationException / LockTimeoutException stay retryable NeedRetryException subtypes; non-retryable TimeoutException stays distinct. - Command-path types (CommandExecution/CommandParsing/CommandSQLParsing/CommandSemantic/QueryNotIdempotent/Validation/Schema) are reconstructed faithfully via an explicit registry (no reflection). - DuplicatedKeyException keeps its structured 3-arg reconstruction; unknown classes fall back to TransactionException. - Tests pin the retryable vs non-retryable semantics (18 tests). Follow-up issue #5018 tracks an unrelated latent dead branch spotted during review.
#5017) Follow-up to #5014. When a Follower forwards a command to the Leader and the Leader returns an error, reconstructLeaderException now rebuilds the exact exception type instead of collapsing retryable subtypes onto their NeedRetryException supertype. - ConcurrentModificationException / LockTimeoutException stay retryable NeedRetryException subtypes; non-retryable TimeoutException stays distinct. - Command-path types (CommandExecution/CommandParsing/CommandSQLParsing/CommandSemantic/QueryNotIdempotent/Validation/Schema) are reconstructed faithfully via an explicit registry (no reflection). - DuplicatedKeyException keeps its structured 3-arg reconstruction; unknown classes fall back to TransactionException. - Tests pin the retryable vs non-retryable semantics (18 tests). Follow-up issue #5018 tracks an unrelated latent dead branch spotted during review. (cherry picked from commit ef0fdb3)
Fix for a customer-reported issue: DuplicatedKeyException not propagated as cause on Follower forwarded commands.
I traced the root cause, reproduced it with a test, and verified the fix. Internal tracking: https://github.com/ArcadeData/arcadedb-operations/issues/526
Please review before merging.