Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-2436

New FormInjectorDemo using AjaxFormLoop fails if a row is added and then removed without a form submission in between

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.0.12
    • 5.0.13
    • Core Components
    • None

    Description

      I've been trying out the new FormInjectorDemo (org.apache.tapestry5.integration.app1.pages) which uses AjaxFormLoop trying to get a handle on how to use this component. Unfortunately I found a bug serious enough for me to put using this component on hold.

      To reproduce, follow these steps:

      1) Click the link to add a row.
      2) When the new row appears, click the remove link.
      3) The row isn't removed and if you click the sum button, it breaks.

      The start state isn't important - basically removing an added row before form submission seems to fail and causes problems when the form is submitted.

      An unexpected application exception has occurred.

      • org.apache.tapestry5.runtime.ComponentEventException
        Unable to convert serialized id '1212682948794' back into an object.

      context
      eventType
      action
      location
      classpath:com/proquest/core/pages/FormInjectorDemo.tml, line 10, column 13
      5 </head>
      6 <body>
      7
      8 <h1>FormInjector Demo (now including AjaxFormLoop)</h1>
      9
      10 <t:form>
      11
      12 <ul>
      13 <li t:id="loop" t:type="AjaxFormLoop" source="doubleItems" value="item" encoder="encoder">
      14 <t:submitnotifier>
      15 <t:textfield t:id="value" value="item.value"/>

      • org.apache.tapestry5.ioc.internal.util.TapestryException
        Unable to convert serialized id '1212682948794' back into an object.

      location
      classpath:com/proquest/core/pages/FormInjectorDemo.tml, line 13, column 103
      8 <h1>FormInjector Demo (now including AjaxFormLoop)</h1>
      9
      10 <t:form>
      11
      12 <ul>
      13 <li t:id="loop" t:type="AjaxFormLoop" source="doubleItems" value="item" encoder="encoder">
      14 <t:submitnotifier>
      15 <t:textfield t:id="value" value="item.value"/>
      16 <t:removerowlink>remove</t:removerowlink>
      17 </t:submitnotifier>
      18 <t:parameter name="addRow">

      • java.lang.RuntimeException
        Unable to convert serialized id '1212682948794' back into an object.

      Stack trace
      o org.apache.tapestry5.corelib.components.AjaxFormLoop._$advised$syncValue(AjaxFormLoop.java:266)
      o org.apache.tapestry5.corelib.components.AjaxFormLoop$syncValue$invocation_11a5989508e.invokeAdvisedMethod(AjaxFormLoop$syncValue$invocation_11a5989508e.java)
      o org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:71)
      o org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37)
      o org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.java:54)
      o org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:80)
      o org.apache.tapestry5.corelib.components.AjaxFormLoop.syncValue(AjaxFormLoop.java)
      o org.apache.tapestry5.corelib.components.AjaxFormLoop.access$700(AjaxFormLoop.java:38)
      o org.apache.tapestry5.corelib.components.AjaxFormLoop$SyncValue.execute(AjaxFormLoop.java:184)
      o org.apache.tapestry5.corelib.components.AjaxFormLoop$SyncValue.execute(AjaxFormLoop.java:173)
      o org.apache.tapestry5.corelib.components.Form.executeStoredActions(Form.java:396)
      o org.apache.tapestry5.corelib.components.Form._$advised$onAction(Form.java:315)
      o org.apache.tapestry5.corelib.components.Form$onAction$invocation_11a5989508b.invokeAdvisedMethod(Form$onAction$invocation_11a5989508b.java)
      o org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:71)
      o org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37)
      o org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.java:54)
      o org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:80)
      o org.apache.tapestry5.corelib.components.Form.onAction(Form.java)
      o org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java)
      o org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:872)
      o org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1025)
      o org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67)
      o org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
      o org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
      o org.apache.tapestry5.services.TapestryModule$37.handle(TapestryModule.java:1987)
      o org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:135)
      o org.apache.tapestry5.services.TapestryModule$12.service(TapestryModule.java:938)

      Attachments

        Activity

          People

            hlship Howard Lewis Ship
            andyb Andy Blower
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: