You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Nicolas Filotto (Jira)" <ji...@apache.org> on 2023/06/05 13:37:00 UTC

[jira] [Commented] (CAMEL-19415) camel-core: using xtokenize might be NPE on xml default namespace

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

Nicolas Filotto commented on CAMEL-19415:
-----------------------------------------

Hi, thank you for your feedback. Camel 2 is no more supported, have you tried with the most recent versions (3.20.5 or 4.0.0-M3)?

> 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
>            Priority: Major
>         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)