I'm getting a ClassCastException when using the JXTemplateGenerator and passing bizdata to it:
java.lang.ClassCastException at org.apache.cocoon.components.flow.javascript.ScriptablePropertyHandler .getPropertyNames(ScriptablePropertyHandler.java:77) at org.apache.cocoon.generation.JXTemplateGenerator .fillContext(JXTemplateGenerator.java:2410) at org.apache.cocoon.generation.JXTemplateGenerator .setContexts(JXTemplateGenerator.java:2457) at org.apache.cocoon.generation.JXTemplateGenerator .setup(JXTemplateGenerator.java:2397) It's an older version of Cocoon (2004-06-29): http://cvs.apache.org/viewcvs.cgi/cocoon-2.1/src/java/org/apache/cocoon/ components/flow/javascript/ScriptablePropertyHandler.java?annotate=1.7 http://cvs.apache.org/viewcvs.cgi/cocoon-2.1/src/java/org/apache/cocoon/ generation/JXTemplateGenerator.java?annotate=1.50 In this code some properties are casted to Strings: 69 : Object[] ids; 70 : if (obj instanceof ScriptableObject) { 71 : ids = ((ScriptableObject)obj).getAllIds(); 72 : } else { 73 : ids = ((Scriptable)obj).getIds(); 74 : } 75 : String[] result = new String[ids.length]; 76 : for (int i = 0; i < result.length; i++) { 77 : result[i] = (String)ids[i]; 78 : } But obj is a NativeArray in my case and ids after running through line 71 contains an Integer 0 and a String "length". The flowscript code looks like the following: var legalcasesArray = new Array(); for (var i = 0; i < legalcases.size(); i++) { var lc = legalcases.get(i); var event = lc.getEvent(); legalcasesArray[i] = {"document": event.getDocument(lc), "variant": lc.getDocumentVariant(), "eventId": event.getId()}; } cocoon.sendPage("internal-display-document-bulk", legalcasesArray); Everything works like expected, I only get this exception stacktrace printed on the console as the exception is ignored. Is there an error in using JXTemplate or is it a bug? Joerg