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