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

        Ted Goddard created issue -
        Ted Goddard made changes -
        Field Original Value New Value
        Assignee Jack Van Ooststroom [ jack.van.ooststroom ]
        Ted Goddard made changes -
        Fix Version/s 4.0 [ 11383 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #41300 Thu Jun 05 10:04:16 MDT 2014 jack.van.ooststroom Fixed JIRA PUSH-320 : NullPointerException in org.icepush.LocalPushGroupManager.startExpiryTimeout
        Files Changed
        Commit graph MODIFY /icepush/trunk/icepush/core/src/main/java/org/icepush/LocalPushGroupManager.java
        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.
        Jack Van Ooststroom made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved: