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

Remko Popma closed LOG4J2-1663.
-------------------------------
    Resolution: Fixed

Instead of serializing the values directly, I had to wrap them in a 
{{MarshalledObject}} and serialize these instead. This is to deal with 
situations where the class of the serialized object is not available during 
deserialization.

If a ClassNotFoundException is encountered while deserializing one of the 
values of the map, even if we catch this exception in the {{readObject}} method 
of SortedArrayStringMap, the ObjectInputStream remembers the error and 
re-throws it after reading all bytes for the map! ObjectInputStream has no 
public API to clear this error. It is possible to use reflection to clear the 
error but this is too fragile to be a realistic option.

Creating a MarshalledObject for each value is slightly inefficient but more 
robust.

> Ensure SortedArrayStringMap can be serialized/deserialized regardless of 
> content
> --------------------------------------------------------------------------------
>
>                 Key: LOG4J2-1663
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1663
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: 2.7
>            Reporter: Remko Popma
>            Assignee: Remko Popma
>             Fix For: 2.8
>
>
> Improve the implementation of SortedArrayStringMap serialization logic to 
> ensure that serializing or deserializing it never results in an error, 
> regardless of the content.
> * Values that are not Serializable should be replaced with {{null}} in the 
> serialized form
> * When the class of a value is not available at the time the 
> SortedArrayStringMap is deserialized, the value should be replaced with 
> {{null}} in the deserialized object.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to