[
https://issues.apache.org/jira/browse/CSV-248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17018900#comment-17018900
]
Alex Herbert commented on CSV-248:
----------------------------------
This throws a NotSerializableException.
{code:java}
@Test
public void testSerialization() throws IOException {
CSVRecord shortRec;
try (final CSVParser parser = CSVParser.parse("a,b",
CSVFormat.newFormat(','))) {
shortRec = parser.iterator().next();
}
final ByteArrayOutputStream out = new ByteArrayOutputStream();
try (ObjectOutputStream oos = new ObjectOutputStream(out)) {
oos.writeObject(shortRec);
}
}
{code}
> CSVRecord is not Serializable
> -----------------------------
>
> Key: CSV-248
> URL: https://issues.apache.org/jira/browse/CSV-248
> Project: Commons CSV
> Issue Type: Bug
> Affects Versions: 1.7
> Reporter: Alex Herbert
> Priority: Major
>
> CSVRecord is no longer Serializable as it stores the CSVParser and that is
> not serializable.
> The parser contains a list of all the CSVRecords. So to serialize this would
> serialize a lot of extra information. The cascade of serialization eventually
> includes the original BufferedReader used to read the data.
> The parser is required for the header map functionality and the getParser()
> method. The easy fix is to not support any functionality related to the
> parser after deserialization. If the header map functionality is to be
> supported the class can store the header map (easy), or overload the
> serialization methods to record and load the header map (more effort), or
> something else.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)