[ 
https://issues.apache.org/jira/browse/SIS-125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Desruisseaux updated SIS-125:
------------------------------------
        Fix Version/s:     (was: 1.1)
    Affects Version/s: 1.1
                       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, 1.0, 1.1
>            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 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
(v8.3.4#803005)

Reply via email to