sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Desruisseaux (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (SIS-125) ModifiableMetadata.nonNullCollection(...) should determine more accuratly if the metadata object is being marshalled
Date Fri, 09 Oct 2015 21:20:06 GMT

     [ 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 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.


  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 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.



> 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 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.3.4#6332)

Mime
View raw message