[ https://issues.apache.org/jira/browse/CXF-5254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13791458#comment-13791458 ]
Grzegorz Grzybek commented on CXF-5254: --------------------------------------- Hello - here's a pull request: https://github.com/apache/cxf/pull/7. All test cases pass, as well as Juergen's example. The changes were quite complex wrt correct Corba-xml mapping. Please see if this is right way to do this. The least clean change is related to handling Corba structs derived from such XSD complex types: {code:xml} <xs:complexType> <xs:sequence> <!-- some non-sequence, non-array elements --> <xs:element name="x" type="x" minOccurs="0" maxOccurs="not 1" /> </xs:sequence> </xs:complexType> {code} because runtime representation is usually this: {code:xml} <root> <!-- some elements --> <x>a</x> <x>a</x> ... </root> {code} but may also be this: {code:xml} <root> <!-- some elements --> <!-- no "x" element at all! --> </root> {code} while writing to Corba stream there must be a sign that we're sending 0-size collection. The relevant changes (not so clean) are in {{org.apache.cxf.binding.corba.types.CorbaStructListener.processEndElement(QName)}}. regards Grzegorz Grzybek > Unmarshall exception if a sequence<string> is used in a struct. > --------------------------------------------------------------- > > Key: CXF-5254 > URL: https://issues.apache.org/jira/browse/CXF-5254 > Project: CXF > Issue Type: Bug > Components: CORBA Binding > Affects Versions: 2.7.5, 2.7.6 > Environment: JAVA7 / Windows 7 > Reporter: Juergen Bockhorn > Priority: Blocker > Attachments: CorbaBugRepro.zip, CXF-5254.diff, patch.txt > > > A server function returns a struct. This struct contains another struct which > contains a sequence<string>. Calling this method with a CXF/Corba-Client > leads to an unmarshall exception: > {code} > Warnung: Interceptor for > {http://cxf.apache.org/bindings/corba/idl/repro}repro.ServiceCORBAService#{http://cxf.apache.org/bindings/corba/idl/repro}getFirst > has thrown exception, unwinding now > org.apache.cxf.interceptor.Fault: Unmarshalling Error: unerwartetes Element > (URI:"", lokal:"item"). Erwartete Elemente sind > <{http://cxf.apache.org/bindings/corba/idl/repro}id>,<{http://cxf.apache.org/bindings/corba/idl/repro}s1> > > at > org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:808) > at > org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:629) > at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:157) > at > org.apache.cxf.interceptor.BareInInterceptor.handleMessage(BareInInterceptor.java:138) > ... > {code} > (sorry for german). > Using a pure CORBA-client works. > I will attach a repro project to this issue if I have figured out how it > works :-) -- This message was sent by Atlassian JIRA (v6.1#6144)