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/01 22:39:24 UTC

[jira] [Updated] (CXF-5254) Unmarshall exception if a sequence is used in a struct.

     [ https://issues.apache.org/jira/browse/CXF-5254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp updated CXF-5254:
-----------------------------

    Attachment: patch.txt

We really need to support both cases.   In a "wsdl first" scenario, the current code is likely needed as the normal setup is for arrays to be in the unwrapped form.   For idl first, the wrappers are likely needed.

I've attached a patch that expands the corba typemapping a bit to record on the sequence element whether it should be wrapped or not.   Can you give that a try and use that as a basis?   The CXF tests pass, but I haven't checked to see if the testcase for this is completely solved with this yet.


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