[
https://issues.apache.org/jira/browse/SIS-125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Desruisseaux updated SIS-125:
------------------------------------
Description:
Despite its name, the {{ModifiableMetadata.nonNullCollection(...)}} method may
return {{null}} in the special case of XML marshalling if and only if the
marshalled element is optional. This is a hack for preventing JAXB to create
empty nodes for empty properties. However in current implementation, the
decision to return null or not is set by a thread-local flag, which apply to
the {{ModifiableMetadata}} instances being marshalled in that particular
thread. This approach does not work well when the user provides its own
metadata subclass which create new elements on the collection on the fly.
We may need to make the {{ModifiableMetadata.canReturnNull()}} method more
accurate in order to not only use a thread-local flag, but also check for the
particular metadata instance being marshalled.
was:
Despite its name, the {{ModifiableMetadata.nonNullCollection(...)}} method may
return {{null}} in the special case of XML marshalling if and only if the
marshalled element is optional. This is a hack for preventing JAXB to create
empty nodes for empty properties. However in current implementation, the
decision to return null or not is set by a thread-local flag, which apply
{{ModifiableMetadata}} being marshalled in that particular thread. It does not
work well when the user provides its own metadata implementation which create a
Geotk metadata object on the fly.
We need to make the {{ModifiableMetadata.canReturnNull()}} method more accurate
in order to not only use a thread-local flag, but also check for the particular
metadata instance being marshalled.
> ModifiableMetadata.nonNullCollection(...) should determine more accuratly if
> the metadata object is being marshalled
> --------------------------------------------------------------------------------------------------------------------
>
> Key: SIS-125
> URL: https://issues.apache.org/jira/browse/SIS-125
> Project: Spatial Information Systems
> Issue Type: Improvement
> Components: Metadata
> Affects Versions: 0.3, 0.4, 0.5, 0.6
> Reporter: Martin Desruisseaux
> Priority: Minor
>
> Despite its name, the {{ModifiableMetadata.nonNullCollection(...)}} method
> may return {{null}} in the special case of XML marshalling if and only if the
> marshalled element is optional. This is a hack for preventing JAXB to create
> empty nodes for empty properties. However in current implementation, the
> decision to return null or not is set by a thread-local flag, which apply to
> the {{ModifiableMetadata}} instances being marshalled in that particular
> thread. This approach does not work well when the user provides its own
> metadata subclass which create new elements on the collection on the fly.
> We may need to make the {{ModifiableMetadata.canReturnNull()}} method more
> accurate in order to not only use a thread-local flag, but also check for the
> particular metadata instance being marshalled.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)