Jeremy Quinn wrote:
Hi All,

I have some forms that used the JX Macro form generator and AJAX, that worked before the recent update to the 2.2 version of CForms, but fail now.

The form contains some regular text fields, a repeater with a row-add button and a union with associated selection widget.

The repeater works fine.

The union with it's selection widget stopped working when I updated.

I can see in TCPMon, when you change the selector menu, all the right data is submitted.

I get this error when the on-change event occurs for the union  selector :

org.apache.cocoon.forms.FormsRuntimeException: Form is not a repeater
        at fd:form - file:/[blah]/forms/[blah]-model.xml:5:2
at <jx:if> - resource://org/apache/cocoon/forms/generation/ jx-macros.xml:214:54
        at <ft:repeater> - file:/[blah]/forms/[blah]-template.xml:30:35
        . . .

I was seeing this problem (or a very similar one that gives the same error) in my app too, and found a way to reproduce it in the samples.

Open tasktree_template.xml (which is supposedly supposed to be an AJAX sample but has ajax="false" for some reason) and change it to ajax="true". Launch the sample, click "Add Subtask" and then click the "Add Subtask" in the added task. You'll get the error in question.

Here's the relevant portion of the Java stacktrace:

org.apache.cocoon.forms.FormsRuntimeException: Form is not a repeater
at fd:form - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/forms/tasktree.xml:25:57 at <jx:if> - resource://org/apache/cocoon/forms/generation/jx-macros.xml:214:54 at <ft:repeater> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/forms/tasktree_template.xml:93:33 at <jx:eval> - resource://org/apache/cocoon/forms/generation/jx-macros.xml:138:59 at <ft:new> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/forms/tasktree_template.xml:117:36 at <jx:evalBody> - resource://org/apache/cocoon/forms/generation/jx-macros.xml:34:23 at <ft:form-template> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/forms/tasktree_template.xml:68:94 at <map:serialize type="xml"> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/sitemap.xmap:216:32 at <map:transform type="i18n"> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/sitemap.xmap:210:35 at <map:transform> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/sitemap.xmap:209:66 at <map:transform> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/sitemap.xmap:62:88 at <map:transform type="i18n"> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/sitemap.xmap:203:35 at <map:transform type="browser-update"> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/sitemap.xmap:202:46 at <map:generate type="jx"> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/sitemap.xmap:201:79
        at resource://org/apache/cocoon/forms/flow/javascript/Form.js:180:-1
at file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/flow/forms_flow_example.js:0:-1 at <map:call> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/forms/sitemap.xmap:170:38 at <map:mount> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/blocks/sitemap.xmap:66:68 at <map:mount> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/samples/sitemap.xmap:194:65 at <map:mount> - file:/home/jj/workspace/cocoon-2.1.x/build/webapp/sitemap.xmap:728:66 at org.apache.cocoon.forms.generation.JXMacrosHelper.pushRepeater(JXMacrosHelper.java:240)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:268)
        at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:61)
at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:68)
        at 
org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:50)
        at 
org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:86)
at org.apache.cocoon.generation.JXTemplateGenerator.getValue(JXTemplateGenerator.java:799) at org.apache.cocoon.generation.JXTemplateGenerator.execute(JXTemplateGenerator.java:2654) at org.apache.cocoon.generation.JXTemplateGenerator.call(JXTemplateGenerator.java:2537) at org.apache.cocoon.generation.JXTemplateGenerator.execute(JXTemplateGenerator.java:2919) at org.apache.cocoon.generation.JXTemplateGenerator.execute(JXTemplateGenerator.java:3055) at org.apache.cocoon.generation.JXTemplateGenerator.call(JXTemplateGenerator.java:2537) at org.apache.cocoon.generation.JXTemplateGenerator.execute(JXTemplateGenerator.java:2919) at org.apache.cocoon.generation.JXTemplateGenerator.execute(JXTemplateGenerator.java:3064) at org.apache.cocoon.generation.JXTemplateGenerator.call(JXTemplateGenerator.java:2537) at org.apache.cocoon.generation.JXTemplateGenerator.execute(JXTemplateGenerator.java:2919) at org.apache.cocoon.generation.JXTemplateGenerator.performGeneration(JXTemplateGenerator.java:2497) at org.apache.cocoon.generation.JXTemplateGenerator.generate(JXTemplateGenerator.java:2488)

Reply via email to