ICEfaces
  1. ICEfaces
  2. ICE-8964

NPE exception in bridge.js with IF. EE 3.2 RC1 release

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.2.0.BETA
    • Fix Version/s: EE-3.2.0.GA
    • Component/s: Bridge
    • Labels:
      None
    • Environment:
      Chrome, Firfox, IE
    • Assignee Priority:
      P1
    • Salesforce Case Reference:

      Description

      The following issue has been reported by one of our customers when they had attempted to upgrade their application to IF EE 3.2 RC1:

      Timestamp: 2/1/2013 3:11:14 AM
      Error: TypeError: dl is null
      Source File: http://wsc-voo-117.wscis.wsc.com:8080/taxgard/javax.faces.resource/bridge.js.iface?ln=ice.core&v=3_2_0_130125
      Line: 1

      Their application is working fine with IF 3.2 Community Edition release.

      After some debugging we'd found that the error is happening in the bridge.js statemenet:

      return dl.type=="blur";
      dl value is null.

      Further analysis has shown that EE bridge.uncompressed.js has javascript method “isBlurEvent()”, but Community Edition does not have one.

      Under some conditions method isBlurEvent() can throw Exception that will be fatal for entire Application.

      Here is a code of original function:
      --------------------------------------------
      function isBlurEvent() {
      var c = arguments.callee.caller;
      while (c) {
      if (c == namespace.fullSubmit) {
      var eventArgument = c.arguments[2]; //unsafe, should be invoked by name
      return eventArgument.type == 'blur'; //unsafe, should be checked for null
      }
      c = c.arguments.callee.caller;
      }
      return false;
      }
      --------------------------------------------

      The customer has proposed the following version of the above code in order to fix the issue:

      --------------------------------------------------------
      function isBlurEvent() {
      var c = arguments.callee.caller;
      while (c) {
      if (c == namespace.fullSubmit) {
      var eventArgument = c.arguments.event;
      if(eventArgument!=null || eventArgument!=undefined)
      return eventArgument.type == 'blur';
      else
      return false;
      }
      c = c.arguments.callee.caller;
      }
      return false;
      }

      ---------------------------------------------------------

      This JIRA is aiming to investigate proposed fix and apply it to our EE release if applicable,

        Activity

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Evgheni Sadovoi
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: