[
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)