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

Sergey Beryozkin resolved CXF-7087.
-----------------------------------
       Resolution: Fixed
         Assignee: Sergey Beryozkin
    Fix Version/s: 3.0.11
                   3.1.8
                   3.2.0

Thanks for spotting this typo

> Getting the wsdl from a cxf webservice with custom XMLOuputFactory throws an 
> exception
> --------------------------------------------------------------------------------------
>
>                 Key: CXF-7087
>                 URL: https://issues.apache.org/jira/browse/CXF-7087
>             Project: CXF
>          Issue Type: Bug
>            Reporter: Guillaume Pansier
>            Assignee: Sergey Beryozkin
>             Fix For: 3.2.0, 3.1.8, 3.0.11
>
>
> I defined a service endpoint with a custom XmlOutputFactory
> {code:xml}
> <jaxws:endpoint id="myWebService" implementorClass="a.b.c.MyService"
>         implementor="#Mybean" address="/myService">
>         <jaxws:properties>
>             <entry key="javax.xml.XMLOutputFactory">
>                 <ref bean="invalidCharacterReplacingXmlOutputFactory"/>
>             </entry>
>         </jaxws:properties>
> </jaxws:endpoint>
> {code}
> When Using the WSDLGetOutInterceptor, I get the following error;
> Can not output XML declaration, after other output has already been done.
> The StaxOutputInterceptor sets the flag FORCE_START_DOCUMENT to true when 
> using a custom xmlOutputFacory, then writes the prolog. The 
> WSDLGetOutInterceptor writes it again and throws the exception.
> This was supposed to be fixed with commit 
> 25f0eb7f955a84baf6c3b634ff316cb831a2acfa, with version 3.3 if I'm 
> correct(changed class: WSDLGetOutInterceptor, commit message: Write the 
> prolog only if it hasn't already been written). But I think the change is not 
> correct:
> {code}
> -            StaxUtils.writeNode(doc, writer, true);
> +            StaxUtils.writeDocument(doc, writer, true,
> +                                    
> !MessageUtils.getContextualBoolean(message, 
> +                                                                       
> StaxOutInterceptor.FORCE_START_DOCUMENT, 
> +                                                                       
> false));
> {code}
> Knowing that the signature of StaxUtils.writeDocument is:
> {code}
> public static void writeDocument(Document d, XMLStreamWriter writer, boolean 
> writeProlog,  boolean repairing)
> {code}
> That means that the boolean reparing depends on the flag FORCE_START_DOCUMENT 
> from version 3.3, whereas the boolean writeProlog is always true ! To me, it 
> seems like the two parameters have been swapped.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to