ICEfaces
  1. ICEfaces
  2. ICE-5135

DefaultMessageService stuck thread keeps Tomcat 6 from shutting down

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8.2
    • Fix Version/s: 1.8.3
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      ICEfaces Core, ICEfaces Push Server
    • Workaround Exists:
      Yes
    • Workaround Description:
      Use the [tomcat-home]/bin/catalina.sh shell script and CTRL+C to startup and shutdown the Tomcat server.

      Description

      When using Tomcat's [tomcat-home]/bin/startup.sh and [tomcat-home]/bin/shutdown.sh shell scripts while having both an ICEfaces application and ICEfaces Push Server deployed, the shutdown.sh shell script is unable to completely get rid of the Tomcat process. This is due to a thread not properly shutdown in the DefaultMessageService.

        Activity

        Hide
        Jack Van Ooststroom added a comment -

        There were two parts to the problem:

        1. The DefaultMessageService was not properly closed upon Servlet destroy. Though cumbersome, the proper closure of the DefaultMessageService at the moment is currently: stop(), tearDownNow() and close().

        2. The internally used QueueMessagePublisher was holding up a Thread from the ScheduledThreadPoolExecutor upon Servlet destroy. Though the DefaultMessageService contained logic to stop the QueueMessagePublisher and replace it with a NoopMessagePublisher, the logic was in an incorrect place. After removing this logic into the close() method the stuck thread issue seems to be resolved.

        Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - There were two parts to the problem: 1. The DefaultMessageService was not properly closed upon Servlet destroy. Though cumbersome, the proper closure of the DefaultMessageService at the moment is currently: stop(), tearDownNow() and close(). 2. The internally used QueueMessagePublisher was holding up a Thread from the ScheduledThreadPoolExecutor upon Servlet destroy. Though the DefaultMessageService contained logic to stop the QueueMessagePublisher and replace it with a NoopMessagePublisher, the logic was in an incorrect place. After removing this logic into the close() method the stuck thread issue seems to be resolved. Marking this one as FIXED.
        Hide
        Jack Van Ooststroom added a comment -

        Changed Fix Version(s) to 1.8.3

        Show
        Jack Van Ooststroom added a comment - Changed Fix Version(s) to 1.8.3

          People

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

            Dates

            • Created:
              Updated:
              Resolved: