vincenttang created CAMEL-19415:
-----------------------------------
Summary: 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
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)