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()".