[
https://issues.apache.org/jira/browse/SIS-125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Desruisseaux updated SIS-125:
------------------------------------
Affects Version/s: 0.8
0.7
Fix Version/s: 1.0
> 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, 0.7, 0.8
> Reporter: Martin Desruisseaux
> Priority: Minor
> Fix For: 1.0
>
>
> 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 in 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 would require storing
> somewhere a reference to the element being marshalled, and cleaning that
> reference after the marshalling of that particular element finished.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)