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)