[
https://issues.apache.org/jira/browse/SIS-567?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Desruisseaux closed SIS-567.
-----------------------------------
> Resolve serialization compiler warnings
> ---------------------------------------
>
> Key: SIS-567
> URL: https://issues.apache.org/jira/browse/SIS-567
> Project: Spatial Information Systems
> Issue Type: Task
> Components: Metadata, Referencing, Storage, Utilities
> Affects Versions: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 1.0, 1.1, 1.2, 1.3
> Reporter: Martin Desruisseaux
> Assignee: Martin Desruisseaux
> Priority: Minor
> Fix For: 1.4
>
>
> Since Java 18, the compiler emit the following warnings on many fields,
> especially in metadata and referencing modules:
> {quote}
> Non-transient instance field of a serializable class declared with a
> non-serializable type.
> {quote}
> In a lot of cases, the field type is an interface where all implementations
> used in practice are serializable. We resolve those warnings with the
> following annotation:
> {code:java}
> @SuppressWarnings("serial") // Most SIS implementations are
> serializable.
> {code}
> In a few cases the value can be anything (e.g. type of values in a
> collection). We use the following annotation for them.
> {code:java}
> @SuppressWarnings("serial") // Not statically typed as Serializable.
> {code}
> Finally there is a few classes where we could not yet resolve the warning:
> * {{org.apache.sis.internal.util.StandardDateFormat}} has a
> {{java.time.format.DateTimeFormatter}} field, which is not serializable.
> * {{org.apache.sis.internal.referencing.provider.DatumShiftGridFile}} has a
> {{java.nio.file.Path}} field.
> * {{org.apache.sis.gui.dataset.ResourceEvent}} has a {{java.nio.file.Path}}
> field.
> For the later two, maybe {{Path}} could be replaced by {{URI}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)