Some Gel Scripts working in 15.8.0 fail after upgrade to 15.8.1.
STEPS TO REPRODUCE:
3. connect the step, validate, activate and run the process.
Expected results: Process with the gel script to run successfully as it was in PPM 15.8.0 and older releases.
Actual results: Process fails with gel tag exceptions captured in BPM errors and BG-ca.logs:--
BPM-0704: An error occurred while executing custom script: org.apache.commons.jelly.JellyTagException: null:32:68: <gel:set> Missing or invalid XML at com.niku.union.gel.tags.SetTag.doTag(SetTag.java:137) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:248) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:96) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:187) at com.niku.union.gel.tags.ScriptTag.doTag(ScriptTag.java:20) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:248) at com.niku.union.gel.GELScript.run(GELScript.java:58) at com.niku.union.gel.GELController.invoke(GELController.java:74) at com.niku.bpm.services.ExecuteCustomAction.run(ExecuteCustomAction.java:207) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.commons.jelly.JellyTagException: null:-1:-1: <null> <gel:set> attribute 'select' $Project//Tasks does not refer to an existing node. at com.niku.union.gel.tags.SetTag.doTag(SetTag.java:73) ... 11 more Root cause org.apache.commons.jelly.JellyTagException: null:-1:-1: <null> <gel:set> attribute 'select' $Project//Tasks does not refer to an existing node. at com.niku.union.gel.tags.SetTag.doTag(SetTag.java:73) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:248) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:96) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:187) at com.niku.union.gel.tags.ScriptTag.doTag(ScriptTag.java:20) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:248) at com.niku.union.gel.GELScript.run(GELScript.java:58) at com.niku.union.gel.GELController.invoke(GELController.java:74) at com.niku.bpm.services.ExecuteCustomAction.run(ExecuteCustomAction.java:207) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)
This is due to DE56573 related to Gel tags with invalid namespaces
CLARITY 15.8.1
DE56573, fixed in 15.9 and 15.8.1 patch 2.
Workaround:
Remove gel namespace from gel header.
xmlns="http://www.w3.org/2001/XMLSchema"
In prior Clarity releases even if there was such namespace references the same would not error out but in 15.8.1 this fails
Examples of valid namespace references in gel scripts..
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:core="jelly:core"
xmlns:sql="jelly:sql"
xmlns:util="jelly:util"
Note:
With valid parse tag the system maps namespace to the valid library. The gel parse tag gel parse relaxes the incorrect namespace reference.
For example xmlns:xyz="jelly:com.niku.union.gel.GELTagLibrary"
....
....
<xyz:parse var="xml">
<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_project.xsd">
<Header action="write" externalSource="NIKU" objectType="project" version="${ClarityVersion}"/>
<Projects>