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

Vyacheslav Koptilin updated IGNITE-20140:
-----------------------------------------
    Description: 
When exception derived from IgniteException is thrown from the SQL command, 
{{org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl#requestNextAsync}} 
wraps it using the 
{{{}org.apache.ignite.lang.IgniteExceptionUtils#copyExceptionWithCause{}}}, 
which tries to find corresponding constructor in the derived class.

The problem is that when the exception has a custom constructor with the 
matching signature, for instance, with the single String argument, it gets 
called with the original exception message leading to duplicated messages if 
the custom constructor constructs a message from its argument.

If the exception class doesn't have matching constructor, the original 
exception gets lots because the handler in the {{requestNextAsync}} throws a 
{{{}null{}}}.

  was:
When exception derived from IgniteException is thrown from the SQL command, 
{{org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl#requestNextAsync}} 
wraps it using the 
{{{}org.apache.ignite.lang.IgniteExceptionUtils#copyExceptionWithCause{}}}, 
which tries to find corresponding constructor in the derived class.

The problem is that when the exception has a custom constructor with the 
matching signature, for instance, with the single String argument, it gets 
called with the original exception message leading to duplicated messages if 
the custom constructor constructs a message from its argument.

It the exception class doesn't have matching constructor, the original 
exception gets lots because the handler in the {{requestNextAsync}} throws a 
{{{}null{}}}.


> Exceptions derived from IgniteException are constructed unexpectedly while 
> copying
> ----------------------------------------------------------------------------------
>
>                 Key: IGNITE-20140
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20140
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Vadim Pakhnushev
>            Assignee: Vyacheslav Koptilin
>            Priority: Major
>              Labels: ignite-3
>
> When exception derived from IgniteException is thrown from the SQL command, 
> {{org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl#requestNextAsync}} 
> wraps it using the 
> {{{}org.apache.ignite.lang.IgniteExceptionUtils#copyExceptionWithCause{}}}, 
> which tries to find corresponding constructor in the derived class.
> The problem is that when the exception has a custom constructor with the 
> matching signature, for instance, with the single String argument, it gets 
> called with the original exception message leading to duplicated messages if 
> the custom constructor constructs a message from its argument.
> If the exception class doesn't have matching constructor, the original 
> exception gets lots because the handler in the {{requestNextAsync}} throws a 
> {{{}null{}}}.



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

Reply via email to