ICEpush
  1. ICEpush
  2. PUSH-320

NullPointerException in org.icepush.LocalPushGroupManager.startExpiryTimeout

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.0.BETA
    • Fix Version/s: 4.0
    • Component/s: Push Server
    • Labels:
      None
    • Environment:
      ICEpush, Push Service

      Description

      The following Exception is returned for a request to

      http://dev.bridgeit.io/push/add-group-member.icepush

      java.lang.RuntimeException: wrapped Exception: java.lang.NullPointerException
      com.icesoft.push.servlet.ICEpushServlet.service(ICEpushServlet.java:134)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      com.icesoft.notify.server.CustomHeaderFilter.doFilter(CustomHeaderFilter.java:64)
      </pre></p><p><b>root cause</b> <pre>java.lang.RuntimeException: wrapped Exception: java.lang.NullPointerException
      org.icepush.servlet.MainServlet.service(MainServlet.java:178)
      com.icesoft.push.servlet.ICEpushServlet.service(ICEpushServlet.java:128)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      com.icesoft.notify.server.CustomHeaderFilter.doFilter(CustomHeaderFilter.java:64)
      </pre></p><p><b>root cause</b> <pre>java.lang.NullPointerException
      org.icepush.LocalPushGroupManager.startExpiryTimeout(LocalPushGroupManager.java:431)
      com.icesoft.push.LocalPushGroupManager.startExpiryTimeout(LocalPushGroupManager.java:220)
      org.icepush.LocalPushGroupManager.startExpiryTimeout(LocalPushGroupManager.java:422)
      org.icepush.PushID.startExpiryTimeout(PushID.java:117)
      com.icesoft.notify.push.LocalPushGroupManager.newPushID(LocalPushGroupManager.java:456)
      org.icepush.LocalPushGroupManager.addMember(LocalPushGroupManager.java:498)
      org.icepush.LocalPushGroupManager.addMember(LocalPushGroupManager.java:121)
      com.icesoft.notify.push.LocalPushGroupManager.addMember(LocalPushGroupManager.java:295)
      org.icepush.PushContext.addGroupMember(PushContext.java:131)
      org.icepush.servlet.BrowserBoundServlet$AddGroupMember.addGroupMember(BrowserBoundServlet.java:160)
      com.icesoft.notify.push.servlet.BrowserBoundServlet$AddGroupMember.addGroupMember(BrowserBoundServlet.java:147)
      org.icepush.servlet.BrowserBoundServlet$AddGroupMember.service(BrowserBoundServlet.java:154)
      com.icesoft.notify.push.servlet.BrowserBoundServlet$AddGroupMember.service(BrowserBoundServlet.java:136)
      com.icesoft.notify.push.servlet.RealmAccessTokenPermissionsCheck.service(RealmAccessTokenPermissionsCheck.java:49)
      org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:38)
      org.icepush.servlet.BrowserBoundServlet.service(BrowserBoundServlet.java:75)
      org.icepush.servlet.BrowserDispatcher$BrowserEntry.service(BrowserDispatcher.java:101)
      com.icesoft.notify.push.servlet.BrowserDispatcher.service(BrowserDispatcher.java:34)
      org.icepush.CheckBrowserIDServlet.service(CheckBrowserIDServlet.java:38)
      com.icesoft.notify.push.servlet.OriginHeaderCheck.service(OriginHeaderCheck.java:58)
      com.icesoft.notify.push.servlet.RefererHeaderCheck.service(RefererHeaderCheck.java:60)
      com.icesoft.notify.push.servlet.APIKeyCheck.service(APIKeyCheck.java:59)
      com.icesoft.notify.push.servlet.StatisticsKeeper.service(StatisticsKeeper.java:30)
      com.icesoft.notify.push.servlet.RealmAccessTokenPermissionsCheck.service(RealmAccessTokenPermissionsCheck.java:49)
      org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:38)
      org.icepush.servlet.MainServlet.service(MainServlet.java:162)
      com.icesoft.push.servlet.ICEpushServlet.service(ICEpushServlet.java:128)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      com.icesoft.notify.server.CustomHeaderFilter.doFilter(CustomHeaderFilter.java:64)

        Activity

        Hide
        Jack Van Ooststroom added a comment -

        Sending core/src/main/java/org/icepush/LocalPushGroupManager.java
        Transmitting file data .
        Committed revision 41300.

        Sending eps/src/main/java/com/icesoft/push/LocalPushGroupManager.java
        Transmitting file data .
        Committed revision 38539.

        Sending src/main/java/com/icesoft/notify/push/LocalPushGroupManager.java
        Transmitting file data .
        Committed revision 38540.

        Show
        Jack Van Ooststroom added a comment - Sending core/src/main/java/org/icepush/LocalPushGroupManager.java Transmitting file data . Committed revision 41300. Sending eps/src/main/java/com/icesoft/push/LocalPushGroupManager.java Transmitting file data . Committed revision 38539. Sending src/main/java/com/icesoft/notify/push/LocalPushGroupManager.java Transmitting file data . Committed revision 38540.
        Hide
        Jack Van Ooststroom added a comment -

        This NPE only occurred when Level.FINE on LocalPushGroupManager was enabled and only when addMember(...) was invoked. However, it did expose a minor flaw in the current logic. The PushID was created causing startExpiryTimeout() to get invoked through the newPushID(...) (overloaded) methods, but before the resulting PushID object was added to the map. This logic is now switched ensuring adding to the pushIDMap happens before startExpirtyTimeout() is invoked on a newly created PushID object. Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - This NPE only occurred when Level.FINE on LocalPushGroupManager was enabled and only when addMember(...) was invoked. However, it did expose a minor flaw in the current logic. The PushID was created causing startExpiryTimeout() to get invoked through the newPushID(...) (overloaded) methods, but before the resulting PushID object was added to the map. This logic is now switched ensuring adding to the pushIDMap happens before startExpirtyTimeout() is invoked on a newly created PushID object. Marking this one as FIXED.

          People

          • Assignee:
            Jack Van Ooststroom
            Reporter:
            Ted Goddard
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: