Xintong Song created FLINK-25970:
------------------------------------
Summary: SerializedThrowable should record type of the original
throwable.
Key: FLINK-25970
URL: https://issues.apache.org/jira/browse/FLINK-25970
Project: Flink
Issue Type: Improvement
Components: API / Core
Affects Versions: 1.14.3
Reporter: Xintong Song
Currently, only the message and stack of the original throwable is preserved in
{{{}SerializedThrowable{}}}, while the type of the original throwable is
discarded.
Sometimes, it would be helpful if message of {{SerializedThrowable}} can also
include the full class name of the original throwable.
E.g., in the following stack.
{code:java}
Caused by: org.apache.flink.util.SerializedThrowable
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) ~[?:1.8.0_102]
at java.util.HashMap$EntryIterator.next(HashMap.java:1471) ~[?:1.8.0_102]
at java.util.HashMap$EntryIterator.next(HashMap.java:1469) ~[?:1.8.0_102]
...
{code}
It's not that easy to understand what is wrong from this stack. JDK does not
provide a message for the original exception. We have to look into the JDK
source codes to find out what's going on. Sometimes it's even more annoying
having to look for the JDK source codes of the exactly same version in order to
match the line numbers.
Turns out the original exception was a {{ConcurrentModificationException}}. I
think it would be much more straightforward if we can have a stack like the
following.
{code}
Caused by: org.apache.flink.util.SerializedThrowable:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) ~[?:1.8.0_102]
at java.util.HashMap$EntryIterator.next(HashMap.java:1471) ~[?:1.8.0_102]
at java.util.HashMap$EntryIterator.next(HashMap.java:1469) ~[?:1.8.0_102]
...
{code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)