ICEpush
  1. ICEpush
  2. PUSH-250

NPE caught during start-up of EPS related to JMS messaging set-up

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.2.0.GA
    • Fix Version/s: EE-3.3.0.GA
    • Component/s: Push Server
    • Labels:
      None
    • Environment:
      ICEfaces-EE, ICEpush-EE, EPS(, Tomcat, ActiveMQ)

      Description

      WARNING: Exception caught on com.icesoft.net.messaging.QueueMessagePublisher$2 Runnable.
      com.icesoft.net.messaging.MessageServiceException: Unable to publish object message 'MessagePayload[browserID: 'null', delay: '0', groupName: 'null', notifyBackURI: 'null', pushConfiguration: 'null', pushID: 'null', pushIDList: 'null', pushIDs: 'null', pushIDString: 'null', pushIDStatusMap: '{}', timestamp: '1370019530388', uuid: 'e9222065-77ea-496c-b081-f36143ba6916']' with message type 'Status'.
              at com.icesoft.net.messaging.QueueMessagePublisher$6.run(QueueMessagePublisher.java:148)
              at com.icesoft.net.messaging.QueueMessagePublisher$2.run(QueueMessagePublisher.java:62)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
              at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
              at java.util.concurrent.FutureTask.run(FutureTask.java:138)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
              at java.lang.Thread.run(Thread.java:662)
      Caused by: java.lang.NullPointerException
              at com.icesoft.net.messaging.MessageServiceClient.getDefaultTopicName(MessageServiceClient.java:197)
              at com.icesoft.net.messaging.MessageServiceClient.publish(MessageServiceClient.java:390)
              at com.icesoft.net.messaging.QueueMessagePublisher$6.run(QueueMessagePublisher.java:146)
              ... 9 more

        Activity

        Hide
        Jack Van Ooststroom added a comment -

        Sending src/main/java/com/icesoft/push/StatusManager.java
        Sending src/main/java/com/icesoft/push/servlet/ICEpushServlet.java
        Transmitting file data ..
        Committed revision 34587.

        Show
        Jack Van Ooststroom added a comment - Sending src/main/java/com/icesoft/push/StatusManager.java Sending src/main/java/com/icesoft/push/servlet/ICEpushServlet.java Transmitting file data .. Committed revision 34587.
        Hide
        Jack Van Ooststroom added a comment -

        There seem to have been two issues to this problem. First of all the PushMessageService.setUp() method was being invoked which causes another thread to be used in order for the set-up to be executed. This means that the methods being invoked after this might execute before the JMS connection might have been established. And secondly, the StatusTask of the StatusManager was getting scheduled on the constructor of the StatusManager, possibly before the PushMessageService is set on the StatusManager.

        Now the PushMessageService.setUpNow() is used and the StatusTask is scheduled as soon as the PushMessageService is set on the StatusManager.

        Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - There seem to have been two issues to this problem. First of all the PushMessageService.setUp() method was being invoked which causes another thread to be used in order for the set-up to be executed. This means that the methods being invoked after this might execute before the JMS connection might have been established. And secondly, the StatusTask of the StatusManager was getting scheduled on the constructor of the StatusManager, possibly before the PushMessageService is set on the StatusManager. Now the PushMessageService.setUpNow() is used and the StatusTask is scheduled as soon as the PushMessageService is set on the StatusManager. Marking this one as FIXED.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: