Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-2300

JavaScriptSupport.addInitializerCall is not backwards compatible

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.4
    • Fix Version/s: 5.4
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      In JavaScriptSupport, void addInitializerCall(String functionName, JSONArray parameter) and void addInitializerCall(InitializationPriority priority, String functionName, JSONArray parameter) are not backwards compatible with tapestry 5.3.

      Example:
      javaScriptSupport.addInitializerCall("Test1", new JSONObject("a", "b"));
      results with: Invoking t5/core/init("Test1", ["a","b"]), and it should result with: Invoking t5/core/init("Test1", "a", "b") according to the behavior in tapestry 5.3 also documented in the javadoc http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html#addInitializerCall(org.apache.tapestry5.services.javascript.InitializationPriority, java.lang.String, org.apache.tapestry5.json.JSONArray). Quote "parameter - array of parameters to pass to the client-side function".

      The problem is with the way the code has been rewritten to use requirejs.
      Here's the bug https://github.com/apache/tapestry-5/blob/549b148f9af1bdd65c1e80b81c31274cfa4f8491/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java#L201

      parameter should be expanded when it's of type JSONArray.

      I'm attaching a patch with fixes for 2 failing test methods (after applying the patch) in JavaScriptSupportImplTest which are also wrong according to the behavior in 5.3.

      Please review.

        Attachments

        1. TAP5-2300.patch
          4 kB
          Dragan Sahpaski

          Activity

            People

            • Assignee:
              kaosko Kalle Korhonen
              Reporter:
              dragan.sahpaski Dragan Sahpaski
            • Votes:
              2 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: