--- old/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/ListElementProperty.java 2013-04-04 15:27:26.852613073 +0200 +++ new/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/ListElementProperty.java 2013-04-04 15:27:26.796613072 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,9 @@ import com.sun.xml.internal.bind.v2.runtime.reflect.TransducedAccessor; import com.sun.xml.internal.bind.v2.runtime.reflect.Accessor; import com.sun.xml.internal.bind.v2.runtime.unmarshaller.ChildLoader; +import com.sun.xml.internal.bind.v2.runtime.unmarshaller.DefaultValueLoaderDecorator; import com.sun.xml.internal.bind.v2.runtime.unmarshaller.LeafPropertyLoader; +import com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader; import org.xml.sax.SAXException; @@ -56,6 +58,8 @@ final class ListElementProperty extends ArrayProperty { private final Name tagName; + private final String defaultValue; + /** * Converts all the values to a list and back. */ @@ -69,6 +73,7 @@ RuntimeTypeRef ref = prop.getTypes().get(0); tagName = grammar.nameBuilder.createElementName(ref.getTagName()); + defaultValue = ref.getDefaultValue(); // transducer for each item Transducer xducer = ref.getTransducer(); @@ -81,7 +86,9 @@ } public void buildChildElementUnmarshallers(UnmarshallerChain chain, QNameMap handlers) { - handlers.put(tagName, new ChildLoader(new LeafPropertyLoader(xacc),null)); + Loader l = new LeafPropertyLoader(xacc); + l = new DefaultValueLoaderDecorator(l, defaultValue); + handlers.put(tagName, new ChildLoader(l,null)); } @Override