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

Duplicate listeners added for events in browser every time @EventListener is fired.

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.1.1
    • Fix Version/s: 4.1.1
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      JBoss 4.0.4.GA, Firefox 1.5.0.6, Windows XP

      Description

      The response from an @EventListener method seems to reregister for that event on the browser. The effect of this is the first time you trigger the event one ajax call is made, the second time two calls are made, the third time eight calls are made, etc.

      The testcase I submitted for TAPESTRY-1054 shows this. Every time I change the first select, the number of ajax calls doubles.

      Each response includes something like

      <response id="initializationscript" type="script"><script>
      //<![CDATA[
      tapestry.form.clearProfiles('loginRole'); tapestry.form.registerProfile('loginRole',{});

      dojo.event.connect(dojo.byId("role"), "onchange", function(e){
      var content=

      {beventname:"onchange"}

      ;
      tapestry.event.buildEventProperties(e, content);
      if (!content["beventtarget.id"]) content["beventtarget.id"]="role";

      var validateState=tapestry.form.forms["loginRole"].validateForm;
      var validateForm=false;
      tapestry.form.setFormValidating("loginRole", validateForm);

      tapestry.form.submitAsync("loginRole", content);

      tapestry.form.setFormValidating("loginRole", validateState);

      });
      //]]>
      </script></response>

      I assume the "dojo.event.connect" call is the culprit, but I haven't had a chance to dig into the code to work out why or where it is being added to the response.

        Attachments

          Activity

            People

            • Assignee:
              jkuhnert Jesse Kuhnert
              Reporter:
              bpsommerville Ben Sommerville
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: