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