[
https://issues.apache.org/jira/browse/OOZIE-2400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Krüger updated OOZIE-2400:
--------------------------------
Description:
When running a java action and a spark action via an oozie workflow xml, the
xml contains multiple namespaces (e.g. uri:oozie:workflow:0.5 and
uri:oozie:spark-action:0.1).
Thus the elements need to be prefixed by the namespace prefix. But when running
this workflow, the configuration parser throws the exception "*JA009: bad conf
file: top-level element not <configuration>*".
The bug is located in class org.apache.oozie.util.XConfiguration in methods
"parseDocument(Document doc)" and "processNodes(Element root)". The xml tags
here are retrieved via "getTagName()", (which gets the full tag name) and
compared against string constants like "configuration". So this fails in case
the tag contains a namespace prefix and it seems there is no workaround!
Here is an easy fix for this. All calls of "getTagName()" in these 2 methods
can be replaced by "getLocalName()".
was:
When running a java action and a spark action via an oozie workflow xml, the
xml contains multiple namespaces (e.g. uri:oozie:workflow:0.5 and
uri:oozie:spark-action:0.1).
Thus the elements need to be prefixed by the namespace prefix. But when running
this workflow, the configuration parser throws the exception "*JA009: bad conf
file: top-level element not <configuration>*".
The bug is located in class org.apache.oozie.util.XConfiguration in methods
"parseDocument(Document doc)" and "processNodes(Element root)". The xml tags
here are retrieved via "getTagName" and compared against prefix-less strings
(like "configuration"). This fails if the tag contains a namespace prefix and
it seems there is no workaround!
Here is an easy fix for this. All calls of "getTagName()" in these 2 methods
can be replaced by "getLocalName()".
> Workflow xml configuration parser cannot deal with namespace prefix
> -------------------------------------------------------------------
>
> Key: OOZIE-2400
> URL: https://issues.apache.org/jira/browse/OOZIE-2400
> Project: Oozie
> Issue Type: Bug
> Components: core
> Affects Versions: trunk, 4.1.0, 4.2.0, 4.3.0
> Environment: Oracle Linux 6.6, Oozie 4.1.0, Cloudera CDH 5.4.2
> Reporter: Roman Krüger
> Priority: Critical
> Labels: easyfix
> Fix For: trunk, 4.1.0, 4.2.0, 4.3.0
>
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> When running a java action and a spark action via an oozie workflow xml, the
> xml contains multiple namespaces (e.g. uri:oozie:workflow:0.5 and
> uri:oozie:spark-action:0.1).
> Thus the elements need to be prefixed by the namespace prefix. But when
> running this workflow, the configuration parser throws the exception "*JA009:
> bad conf file: top-level element not <configuration>*".
> The bug is located in class org.apache.oozie.util.XConfiguration in methods
> "parseDocument(Document doc)" and "processNodes(Element root)". The xml tags
> here are retrieved via "getTagName()", (which gets the full tag name) and
> compared against string constants like "configuration". So this fails in case
> the tag contains a namespace prefix and it seems there is no workaround!
> Here is an easy fix for this. All calls of "getTagName()" in these 2 methods
> can be replaced by "getLocalName()".
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)