nick_darlington

BPM-0704: ... ClassCastException: org.apache.xerces.dom.DeferredCommentImpl for GEL in 14.x

Discussion created by nick_darlington Champion on Jun 18, 2015
Latest reply on Jun 19, 2015 by navzjoshi00

Hi all,

 

We've had a couple of reports of the following so I wanted to share this in the hopes others can avoid it.

 

The nature of the problem is that after installing or upgrading to CA PPM 14.x your GEL scripts in a process may report the following problem when they run:

 

BPM-0704: An error occurred while executing custom script: java.lang.ClassCastException: org.apache.xerces.dom.DeferredCommentImpl cannot be cast to org.w3c.dom.Element at com.niku.union.gel.GELValidator.limitSQLQuery(GELValidator.java:379)

at com.niku.union.gel.GELScript.run(GELScript.java:55)

at com.niku.union.gel.GELController.invoke(GELController.java:74)

at com.niku.bpm.services.ExecuteCustomAction.run(ExecuteCustomAction.java:207)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

 

The cause and solution are straight forward.  There is an expectation that the first entity encountered in a GEL script will be an 'element', specifically <gel:script>, like this:

 

<gel:script
  xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
  xmlns:core="jelly:core">
<!-- I am a comment -->
...
</gel:script>

 

Notice that the comments are inside that element (line 04).

 

If your script is formatted like this instead, then inside processes on version 14.x you will begin to see the error:

 

<!-- I am a comment -->
<gel:script
  xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"
  xmlns:core="jelly:core">
...
</gel:script>

 

If you have any scripts like this, please edit them and move the comments inside the <gel:script> element body like the first example in order to prevent this becoming a problem.  We have reported this to our developers as a potential defect (CLRT-77273), but it may still result in this change to the scripts being necessary in future so addressing it beforehand will cause the least inconvenience.

Outcomes