Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-1403

Wildcard matching should always respect delimiters

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 2.3.0
    • 2.4.0
    • Broker
    • None

    Description

      Here is what I originally posted on the dev list. There is a bug with wildcard matching that will return that a string is a match to a pattern even though there are extra characters after the last delimiter.

      From my original post:

      I noticed a difference with wildcard matching in Artemis from 5.x and I think the Artemis version is wrong.

      Let's take the following wildcard pattern as an example in Artemis: a.b.c.#

      Pattern Matches?
      a.b.c yes
      a.b.c.d yes
      a.b.cabd yes

      Example in ActiveMQ 5.x: a.b.c.>

      Pattern Matches?
      a.b.c yes
      a.b.c.d yes
      a.b.cabd no

      It does not make sense to me that a.b.cabd would match a.b.c.#. This happens because the matching logic just replaces .# with .* in a regex matching pattern so it matches 0 or many characters. There is a delimiter there so I think the 5.x approach is correct. Also maybe we should allow user's to be able to plug in custom matching logic to override the default? (This is something i can do in a PR)

      Note that this change will not affect matching 0 or more words. So a.b.c should still match a.b.c.#
      It would also still be nice to be able to plug in custom matching logic if a user has custom requirements but that would be done in a different PR.

      Attachments

        Issue Links

          Activity

            People

              cshannon Christopher L. Shannon
              cshannon Christopher L. Shannon
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: