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

Vyacheslav Koptilin updated IGNITE-14930:
-----------------------------------------
    Description: 
Since there are other languages than Java, we should have a generic way to 
convert exceptions between different representations. Current errors 
serialization design is described here: [IEP-76 Thin Client Protocol for Ignite 
3.0|https://cwiki.apache.org/confluence/display/IGNITE/IEP-76+Thin+Client+Protocol+for+Ignite+3.0]

We should expand the collection of required fields. It should be enough to 
deserialize exception objects in Java client as close to the original object as 
possible. This includes cause exceptions.

Not yet sure about suppressed exceptions. So, we would need a list of errors, 
where the first element is the head and every next element is the cause for the 
previous one. Element contains:

Error code (int)
Error message (String)
[Optional] Stack trace, for head only (String)
Full class name (String)

Open problem:
What should we do with standard Java exceptions, like _TimeoutException_ or 
_IllegalArgumentException_ , or even _NullPointerException_? Right now it's 
better to have a reserved error group for them and assign a specific codes to 
all "known" types.

https://cwiki.apache.org/confluence/display/IGNITE/IEP-84%3A+Error+handling

> Exceptions serialization
> ------------------------
>
>                 Key: IGNITE-14930
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14930
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Vyacheslav Koptilin
>            Priority: Major
>              Labels: ignite-3
>
> Since there are other languages than Java, we should have a generic way to 
> convert exceptions between different representations. Current errors 
> serialization design is described here: [IEP-76 Thin Client Protocol for 
> Ignite 
> 3.0|https://cwiki.apache.org/confluence/display/IGNITE/IEP-76+Thin+Client+Protocol+for+Ignite+3.0]
> We should expand the collection of required fields. It should be enough to 
> deserialize exception objects in Java client as close to the original object 
> as possible. This includes cause exceptions.
> Not yet sure about suppressed exceptions. So, we would need a list of errors, 
> where the first element is the head and every next element is the cause for 
> the previous one. Element contains:
> Error code (int)
> Error message (String)
> [Optional] Stack trace, for head only (String)
> Full class name (String)
> Open problem:
> What should we do with standard Java exceptions, like _TimeoutException_ or 
> _IllegalArgumentException_ , or even _NullPointerException_? Right now it's 
> better to have a reserved error group for them and assign a specific codes to 
> all "known" types.
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-84%3A+Error+handling



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

Reply via email to