Martin Desruisseaux created SIS-567:
---------------------------------------

             Summary: 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
            Reporter: Martin Desruisseaux
            Assignee: Martin Desruisseaux
             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)

Reply via email to