You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2013/10/08 21:10:43 UTC
[jira] [Resolved] (CXF-5322) misleading warning for @XmlType
without 'propOrder' element
[ https://issues.apache.org/jira/browse/CXF-5322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-5322.
------------------------------
Resolution: Fixed
Fix Version/s: 2.6.11
2.7.8
Assignee: Daniel Kulp
> misleading warning for @XmlType without 'propOrder' element
> -----------------------------------------------------------
>
> Key: CXF-5322
> URL: https://issues.apache.org/jira/browse/CXF-5322
> Project: CXF
> Issue Type: Improvement
> Components: JAXB Databinding
> Affects Versions: 2.7.6
> Environment: JBoss EAP 6.1.1
> JDK 6u45
> Reporter: lars geidel
> Assignee: Daniel Kulp
> Priority: Minor
> Labels: patch
> Fix For: 2.7.8, 2.6.11
>
>
> When the @XmlType annotation is used without specifying the propOrder element the following warning is logged:
> WARNING [org.apache.cxf.jaxb.JAXBSchemaInitializer] propOrder in @XmlType doesn't define all schema elements :[]
> This warning is misleading and should not appear in that case.
> Relevant code of org.apache.cxf.jaxb.JAXBSchemaInitializer:
> {code:java}
> XmlType xmlTypeAnno = cls.getAnnotation(XmlType.class);
> String[] propertyOrder = null;
> [...]
> if (xmlTypeAnno != null && xmlTypeAnno.propOrder().length > 0) {
> propertyOrder = xmlTypeAnno.propOrder();
> }
> [...]
> if (propertyOrder != null && propertyOrder.length == seq.getItems().size()) {
> sortItems(seq, propertyOrder);
> } else if (propertyOrder != null && propertyOrder.length != seq.getItems().size()) {
> LOG.log(Level.WARNING, "propOrder in @XmlType doesn't define all schema elements :"
> + Arrays.toString(propertyOrder));
> }
> {code}
> If no propOrder element is defined then xmlTypeAnno.propOrder() defaults to {""} (see http://docs.oracle.com/javaee/7/api/javax/xml/bind/annotation/XmlType.html#propOrder()), so xmlTypeAnno.propOrder().length is 1. Since this is not necessarily equals seq.getItems().size() the mentioned warning is logged.
> Possible patch: the if-elseif-block could be replaced by
> {code:java}
> if (propertyOrder != null) {
> if (propertyOrder.length == seq.getItems().size())
> {
> sortItems(seq, propertyOrder);
> } else if (propertyOrder.length > 1 || !propertyOrder[0].isEmpty()) {
> LOG.log(Level.WARNING, "propOrder in @XmlType doesn't define all schema elements :"
> + Arrays.toString(propertyOrder));
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.1#6144)