[ 
https://issues.apache.org/jira/browse/CXF-7185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15801776#comment-15801776
 ] 

ASF GitHub Bot commented on CXF-7185:
-------------------------------------

GitHub user Kevin-Buntrock opened a pull request:

    https://github.com/apache/cxf/pull/219

    [CXF-7185] Correct hacks for CXF-3453 and CXF-1194 for french local

    [CXF-7185] Correct hacks for CXF-3453 and CXF-1194 in order to work with
    a local set in french

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/Kevin-Buntrock/cxf master

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cxf/pull/219.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #219
    
----
commit 07b836cf510d1f32a5ab5253d759acb4e56de98e
Author: Kévin Buntrock <kevin.buntr...@gmail.com>
Date:   2017-01-04T15:10:14Z

    [CXF-7185] Correct hacks for CXF-3453 and CXF-1194 for french local
    
    [CXF-7185] Correct hacks for CXF-3453 and CXF-1194 in order to work with
    a local set in french

----


> Xml validation with Mtom enabled is not working with french locale
> ------------------------------------------------------------------
>
>                 Key: CXF-7185
>                 URL: https://issues.apache.org/jira/browse/CXF-7185
>             Project: CXF
>          Issue Type: Bug
>          Components: JAXB Databinding
>    Affects Versions: 2.7.18, 3.1.9
>            Reporter: Kevin Buntrock
>
> Running cxf on a tomcat launched with the jvm argument "-Duser.language=fr".
> Mtom and schema validation are enabled.
> While sending a soap message, we have this error : "Wrapped by: 
> org.apache.camel.RuntimeCamelException: org.apache.cxf.interceptor.Fault: 
> Marshalling Error: cvc-type.3.1.2 : L'élément 'xxx' est de type simple et ne 
> doit comporter aucun enfant ([children]) de type élément d'information."
> Reason is a lack in the hack allowing validation with mtom enabled in 
> org.apache.cxf.jaxb.io.DataWriterImpl.java.
> {code:java}
> private static class MtomValidationHandler implements ValidationEventHandler {
>       ValidationEventHandler origHandler;
>       JAXBAttachmentMarshaller marshaller;
>       public MtomValidationHandler(ValidationEventHandler v,
>                                    JAXBAttachmentMarshaller m) {
>           origHandler = v;
>           marshaller = m;
>       }
>       public boolean handleEvent(ValidationEvent event) {
>           // CXF-1194 this hack is specific to MTOM, so pretty safe to leave 
> in here before calling the origHandler.
>           String msg = event.getMessage();
>           if (msg.startsWith("cvc-type.3.1.2: ")
>               && 
> msg.contains(marshaller.getLastMTOMElementName().getLocalPart())) {
>               return true;
>           }
>           
>           if (origHandler != null) {
>               return origHandler.handleEvent(event);
>           }
>           return false;
>       }
> }
> {code}
>           
> In french, the colon is always separated with a space from the preceding word 
> : "cvc-type.3.1.2 : "
> I would reckon to just not include the colon anymore in the checking. It 
> seams useless according to this documentation : 
> https://wiki.xmldation.com/Support/Validator
> Looking quickly on the code, some other hacks should not work in french in 
> the sibling class DataReaderImpl.java.
> I will submit a pull request during the week-end to correct this issue.



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

Reply via email to