Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-3776

synchronization error in MessageListenerServlet.getAjaxWebClient

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 5.5.0
    • 5.6.0
    • None
    • None

    Description

      Note: I found this problem by reading code, not by an actual behavior problem!

      In the latest revision of MessageListenerServlet.getAjaxWebClient() you can see that the ajaxWebClients map is read outside of a synchronized block and then edited inside the block. This looks like a simple mistake, and the get() should be moved down one line.

      http://svn.apache.org/viewvc/activemq/trunk/activemq-web/src/main/java/org/apache/activemq/web/MessageListenerServlet.java?revision=1177026&view=markup#l438

      Theoretically, the downside of this bug will be that new clients will be unnecessarily created if a single web session connects to the servlet from two or more concurrent connections. In practice, this almost never happens because most ajax users of ActiveMQ should have only one connection in flight at a time.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            tabish Timothy A. Bish
            cdolan Chris Dolan
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment