[
https://issues.apache.org/jira/browse/IGNITE-19534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin updated IGNITE-19534:
-----------------------------------------
Description:
Error code can be duplicated in the message as follows:
{code:java}
org.apache.ignite.sql.SqlException: IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49 IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49 IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49
at
[email protected]/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
[email protected]/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
[email protected]/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at
[email protected]/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at app//org.apache.ignite.lang.IgniteException.wrap(IgniteException.java:276)
at app//org.apache.ignite.sql.Session.execute(Session.java:60)
at
app//org.apache.ignite.internal.sqllogic.ScriptContext.executeQuery(ScriptContext.java:89)
at
app//org.apache.ignite.internal.sqllogic.Statement.execute(Statement.java:108)
... 7 more
Caused by: org.apache.ignite.sql.SqlException: IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49 IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49
...
... 3 more
Caused by: org.apache.ignite.sql.SqlException: IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49
at
app//org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.convertDdlException(ExecutionServiceImpl.java:311)
at
app//org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$executeDdl$8(ExecutionServiceImpl.java:289)
... 12 more
Caused by: java.util.concurrent.TimeoutException
... 8 more
{code}
-It seems to me, this behavior is caused by `IgniteException.wrap`.
By the way, this method is a good candidate to be moved to `ExceptionUtils`
along with `IgniteException.getIgniteErrorCode()`.-
It seems to me, that the real cause of the issue is that `IgniteException`
extends the user-provided message with an error code and trace id, but this
behavior contradicts the implementation of Throwable:
- the user-defined message should not be changed in any way, and
`getMessage()` should return exactly the same message.
- any additional information is included by `toString()` implementation (such
as adding FQCN, error code and traceId)
was:
Error code can be duplicated in the message as follows:
{code:java}
org.apache.ignite.sql.SqlException: IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49 IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49 IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49
at
[email protected]/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
[email protected]/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
[email protected]/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at
[email protected]/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at app//org.apache.ignite.lang.IgniteException.wrap(IgniteException.java:276)
at app//org.apache.ignite.sql.Session.execute(Session.java:60)
at
app//org.apache.ignite.internal.sqllogic.ScriptContext.executeQuery(ScriptContext.java:89)
at
app//org.apache.ignite.internal.sqllogic.Statement.execute(Statement.java:108)
... 7 more
Caused by: org.apache.ignite.sql.SqlException: IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49 IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49
...
... 3 more
Caused by: org.apache.ignite.sql.SqlException: IGN-SQL-20
TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49
at
app//org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.convertDdlException(ExecutionServiceImpl.java:311)
at
app//org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$executeDdl$8(ExecutionServiceImpl.java:289)
... 12 more
Caused by: java.util.concurrent.TimeoutException
... 8 more
{code}
It seems to me, this behavior is caused by `IgniteException.wrap`.
By the way, this method is a good candidate to be moved to `ExceptionUtils`
along with `IgniteException.getIgniteErrorCode()`.
> Duplicating error code in the message.
> --------------------------------------
>
> Key: IGNITE-19534
> URL: https://issues.apache.org/jira/browse/IGNITE-19534
> Project: Ignite
> Issue Type: Bug
> Reporter: Vyacheslav Koptilin
> Assignee: Vyacheslav Koptilin
> Priority: Major
> Labels: iep-84, ignite-3
> Fix For: 3.0.0-beta2
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Error code can be duplicated in the message as follows:
> {code:java}
> org.apache.ignite.sql.SqlException: IGN-SQL-20
> TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49 IGN-SQL-20
> TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49 IGN-SQL-20
> TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49
> at
> [email protected]/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
> [email protected]/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at
> [email protected]/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at
> [email protected]/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
> at
> app//org.apache.ignite.lang.IgniteException.wrap(IgniteException.java:276)
> at app//org.apache.ignite.sql.Session.execute(Session.java:60)
> at
> app//org.apache.ignite.internal.sqllogic.ScriptContext.executeQuery(ScriptContext.java:89)
> at
> app//org.apache.ignite.internal.sqllogic.Statement.execute(Statement.java:108)
> ... 7 more
> Caused by: org.apache.ignite.sql.SqlException: IGN-SQL-20
> TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49 IGN-SQL-20
> TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49
> ...
> ... 3 more
> Caused by: org.apache.ignite.sql.SqlException: IGN-SQL-20
> TraceId:8c53228d-6463-4dec-8ef6-7f7a19baab49
> at
> app//org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.convertDdlException(ExecutionServiceImpl.java:311)
> at
> app//org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$executeDdl$8(ExecutionServiceImpl.java:289)
> ... 12 more
> Caused by: java.util.concurrent.TimeoutException
> ... 8 more
> {code}
> -It seems to me, this behavior is caused by `IgniteException.wrap`.
> By the way, this method is a good candidate to be moved to `ExceptionUtils`
> along with `IgniteException.getIgniteErrorCode()`.-
> It seems to me, that the real cause of the issue is that `IgniteException`
> extends the user-provided message with an error code and trace id, but this
> behavior contradicts the implementation of Throwable:
> - the user-defined message should not be changed in any way, and
> `getMessage()` should return exactly the same message.
> - any additional information is included by `toString()` implementation
> (such as adding FQCN, error code and traceId)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)