[
https://issues.apache.org/jira/browse/FLINK-5336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17744452#comment-17744452
]
Wencong Liu edited comment on FLINK-5336 at 7/20/23 2:32 AM:
-------------------------------------------------------------
Hi all, I have checked all the classes that utilize the *Path* class. I found
that there're still some classes are de/serializing the *Path* through
*IOReadableWritable* interface.
# {*}FileSourceSplitSerializer{*}: It de/serializes the *Path* during the
process of de/serializing FileSourceSplit.
# {*}TestManagedSinkCommittableSerializer{*}: It de/serializes the Path during
the process of de/serializing TestManagedCommittable.
# {*}TestManagedFileSourceSplitSerializer{*}: It de/serializes the Path during
the process of de/serializing TestManagedIterableSourceSplit.
For 1, the Path needs to be serialized to save checkpoint data in source.
For 2/3, the IT case in flink-table-common depends on the Path
de/serialization. [~qingyue]
In summary, I think the Path class should still need to implement the
*IOReadableWritable* interface to support de/serialization. WDYT?
was (Author: JIRAUSER281639):
Hi all, I have checked all the classes that utilize the *Path* class. I found
that there're still some classes are de/serialize the *Path* through
*IOReadableWritable* interface.
# {*}FileSourceSplitSerializer{*}: It de/serializes the *Path* during the
process of de/serializing FileSourceSplit.
# {*}TestManagedSinkCommittableSerializer{*}: It de/serializes the Path during
the process of de/serializing TestManagedCommittable.
# {*}TestManagedFileSourceSplitSerializer{*}: It de/serializes the Path during
the process of de/serializing TestManagedIterableSourceSplit.
For 1, the Path needs to be serialized to save checkpoint data in source.
[~sewen]
For 2/3, the IT case in flink-table-common depends on the Path
de/serialization. [~qingyue]
In summary, I think the Path class should still need to implement the
*IOReadableWritable* interface to support de/serialization. WDYT?
> Make Path immutable
> -------------------
>
> Key: FLINK-5336
> URL: https://issues.apache.org/jira/browse/FLINK-5336
> Project: Flink
> Issue Type: Sub-task
> Components: API / DataSet
> Reporter: Stephan Ewen
> Priority: Major
> Fix For: 2.0.0
>
>
> The {{Path}} class is currently mutable to support the {{IOReadableWritable}}
> serialization. Since that serialization is not used any more, I suggest to
> drop that interface from Path and make the Path's URI final.
> Being immutable, we can store configures paths properly without the chance of
> them being mutated as side effects.
> Many parts of the code make the assumption that the Path is immutable, being
> susceptible to subtle errors.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)