[ 
https://issues.apache.org/jira/browse/IGNITE-22721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vyacheslav Koptilin reassigned IGNITE-22721:
--------------------------------------------

    Assignee: Vyacheslav Koptilin

> Exception copying mechanism might fail
> --------------------------------------
>
>                 Key: IGNITE-22721
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22721
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Roman Puchkovskiy
>            Assignee: Vyacheslav Koptilin
>            Priority: Major
>              Labels: ignite-3
>
> ExceptionUtils#copyExceptionWithCause() assumes that each exception passed to 
> it will have at least one of constructors from the predefined list of 
> signatures. If an exception does not have such a constructor, the method 
> returns null which makes it not safe. We already have places in code (look 
> them up by the key of this issue) which do 'try to copy an exception; if not, 
> create a fallback exception' which looks ugly.
> It was supposed to have an (automatically enforced) rule that makes sure that 
> each internal exception obeys this requirement, but:
>  # The rule (implemented as a test for archtest) does not seem to be actually 
> enforced (at least there is MismatchingTransactionOutcomeException which 
> violates the rule)
>  # It seems convenient to have custom exception fields and correspondingly 
> non-standard constructor signatures
> We should either avoid copying, or enforce the rules that are required to 
> make it work reliably.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to