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

Claus Ibsen resolved CAMEL-19415.
---------------------------------
    Fix Version/s: 3.14.9
                   3.18.8
                   3.20.6
                   3.21.0
                   4.0-RC1
                   4.0
         Assignee: Claus Ibsen
       Resolution: Fixed

Thanks for reporting. We have added a NPE check

> camel-core: using xtokenize might be NPE on xml default namespace
> -----------------------------------------------------------------
>
>                 Key: CAMEL-19415
>                 URL: https://issues.apache.org/jira/browse/CAMEL-19415
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.25.4
>         Environment: java 8
> camel-core 2.25.4
> woodstox-core-asl 4
> woodstox-core 5/6
>            Reporter: vincenttang
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 3.14.9, 3.18.8, 3.20.6, 3.21.0, 4.0-RC1, 4.0
>
>         Attachments: error_3_hide.PNG
>
>
> Background:
> camel-core use Woodstox to xtokenize the xml.
> Woodstox has a property on 
> WstxInputProperties.P_RETURN_NULL_FOR_DEFAULT_NAMESPACE
> which has different value in different woodstox-core version.
> ---
> Issue:
> When using camel core to xtokenize xml, it will get the XML namespace prefix 
> through javax.xml.stream.XMLStreamReader#getNamespacePrefix, which will use 
> woodstox-core lib.
> In 
> org.apache.camel.support.XMLTokenExpressionIterator.XMLTokenIterator#createContextualToken
>  with i mode,
> It will then construct a namespace map and loop it .
> In org.apache.camel.support.XMLTokenExpressionIterator line 404
> sb.append(e.getKey().length() == 0 ? " xmlns" : " xmlns:")
> As the e.getKey() has no null check, it might be null and resulting in NPE 
> because of null.length()
> ---
> Suggested Solution:
> Add a null check at org.apache.camel.support.XMLTokenExpressionIterator line 
> 404 e.getKey() to avoid NPE
> i.e. sb.append((e.getKey() == null || e.getKey().length() == 0) ? " xmlns" : 
> " xmlns:")



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to