[
https://issues.apache.org/jira/browse/CSV-302?focusedWorklogId=818575&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-818575
]
ASF GitHub Bot logged work on CSV-302:
--------------------------------------
Author: ASF GitHub Bot
Created on: 19/Oct/22 18:51
Start Date: 19/Oct/22 18:51
Worklog Time Spent: 10m
Work Description: sman-81 commented on code in PR #276:
URL: https://github.com/apache/commons-csv/pull/276#discussion_r999826904
##########
src/main/java/org/apache/commons/csv/CSVFormat.java:
##########
@@ -2280,6 +2279,27 @@ private void validate() throws IllegalArgumentException {
}
}
+ private Object readResolve() throws ObjectStreamException {
+ // check whether field duplicateHeaderMode (as of 1.10.0) was found in
serialized form
+ // if not, set from boolean allowDuplicateHeaderNames
+ if (duplicateHeaderMode == null) {
+ setFieldValue("duplicateHeaderMode",
+ allowDuplicateHeaderNames ? DuplicateHeaderMode.ALLOW_ALL
: DuplicateHeaderMode.DISALLOW);
+ }
+ return this;
+ }
+
+ private void setFieldValue(String fieldName, Object value) {
Review Comment:
In Java private methods are non-virtual.
I will put `final` on methods parameters.
Issue Time Tracking
-------------------
Worklog Id: (was: 818575)
Time Spent: 20m (was: 10m)
> CSVFormat.duplicateHeaderMode requires default for backward compatibility
> -------------------------------------------------------------------------
>
> Key: CSV-302
> URL: https://issues.apache.org/jira/browse/CSV-302
> Project: Commons CSV
> Issue Type: Bug
> Components: Parser
> Affects Versions: 1.10.0
> Reporter: Markus Spann
> Priority: Minor
> Time Spent: 20m
> Remaining Estimate: 0h
>
> The member in class {{CSVFormat}}
> {code:java}
> boolean allowDuplicateHeaderNames{code}
> was recently replaced by
> {code:java}
> DuplicateHeaderMode duplicateHeaderMode{code}
> The boolean defaults to {{{}false{}}}, while the member of type
> {{DuplicateHeaderMode}} defaults to {{{}null{}}}.
> {{duplicateHeaderMode}} must be initialized with {{DISALLOW}} for backward
> compatibility.
> The change is also problematic with regards to serialization. The class is
> serializable and {{serialVersionUID}} is unchanged between versions. The
> boolean setting {{allowDuplicateHeaderNames}} in an object serialized in
> version 1.9.0 or earlier would always be de-serialized to
> {{duplicateHeaderMode = null}} in the current head.
> To handle the code changes correctly, customized de-serialization would need
> to be implemented.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)