)]}'
{
  "commit": "cd6fbb315f9d92e0ec6ee942e0858bc659a486bd",
  "tree": "512e07050da36979cba544f956ee806f5ed093b5",
  "parents": [
    "39620ca2a28198f4b55cf148138c4e81408c2644"
  ],
  "author": {
    "name": "Lukasz Lenart",
    "email": "lukaszlenart@apache.org",
    "time": "Thu Sep 17 09:06:07 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Sep 17 09:06:07 2026 +0200"
  },
  "message": "WW-5743 fix(convention): rank path-spanning ** patterns after single-segment ones (#1962)\n\nActionNameSpecificityComparator compared the raw wildcard-token count before\nthe ** count, so `a/**` (one token) sorted ahead of `a/*/*` (two tokens) and\nshadowed it for `a/x/y`, although `**` crosses `/` and `*` does not. The **\ncount is now the first key, then the token count, then the literal count.\n\nBoth `*` (WildcardHelper MATCH_FILE) and `{var}` (`([^/]+)` in\nNamedVariablePatternMatcher) are single-segment, so the same rule covers\nboth matchers; the tests pin one pair for each.\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a0455dcedcff96801a2fdb6cdaad063489f03ddb",
      "old_mode": 33188,
      "old_path": "plugins/convention/src/main/java/org/apache/struts2/convention/ActionNameSpecificityComparator.java",
      "new_id": "f3d771ab9fd9c4f8b39c7a869b6c4cace6c30c8d",
      "new_mode": 33188,
      "new_path": "plugins/convention/src/main/java/org/apache/struts2/convention/ActionNameSpecificityComparator.java"
    },
    {
      "type": "modify",
      "old_id": "f97a1d1d4c3c4f8c9fe4d7cf1b60a728c16f62d4",
      "old_mode": 33188,
      "old_path": "plugins/convention/src/test/java/org/apache/struts2/convention/ActionNameSpecificityComparatorTest.java",
      "new_id": "38ac386628419df19f0c26e5bfdf9d9c3207a9d2",
      "new_mode": 33188,
      "new_path": "plugins/convention/src/test/java/org/apache/struts2/convention/ActionNameSpecificityComparatorTest.java"
    }
  ]
}
