This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/struts-site.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new 7b60f75a8 Updates stage by Jenkins
7b60f75a8 is described below
commit 7b60f75a8e54b939a1af0eceb75d1d1c38aa89f6
Author: jenkins <[email protected]>
AuthorDate: Thu Sep 17 06:50:51 2026 +0000
Updates stage by Jenkins
---
content/core-developers/wildcard-mappings.html | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/content/core-developers/wildcard-mappings.html
b/content/core-developers/wildcard-mappings.html
index 7f48b9caa..8caf6db74 100644
--- a/content/core-developers/wildcard-mappings.html
+++ b/content/core-developers/wildcard-mappings.html
@@ -262,12 +262,16 @@ narrower one it also matches could therefore shadow it,
non-deterministically
<p>Annotated wildcard action names are now sorted most-specific-first before
registration, using these keys in order:</p>
<ol>
+ <li>fewer path-spanning <code class="language-plaintext
highlighter-rouge">**</code> tokens first — <code class="language-plaintext
highlighter-rouge">**</code> crosses <code class="language-plaintext
highlighter-rouge">/</code> while <code class="language-plaintext
highlighter-rouge">*</code> and <code class="language-plaintext
highlighter-rouge">{var}</code> never do, so a pattern that
+relies on it is broader than one that does not (<code
class="language-plaintext highlighter-rouge">a/*/*</code> therefore ranks ahead
of <code class="language-plaintext highlighter-rouge">a/**</code>);</li>
<li>fewer wildcard tokens first (a <code class="language-plaintext
highlighter-rouge">*</code> / <code class="language-plaintext
highlighter-rouge">**</code> run, or a <code class="language-plaintext
highlighter-rouge">{var}</code> group);</li>
<li>more literal characters first;</li>
- <li>fewer path-spanning <code class="language-plaintext
highlighter-rouge">**</code> tokens first;</li>
<li>alphabetical order of the pattern, as a deterministic tie-breaker.</li>
</ol>
+<p>Struts 7.3.0 applied the <code class="language-plaintext
highlighter-rouge">**</code> key third, after the wildcard-token and literal
counts, so <code class="language-plaintext highlighter-rouge">a/**</code> could
shadow
+<code class="language-plaintext highlighter-rouge">a/*/*</code>; 7.4.0 lifts
it to the first key (<a
href="https://issues.apache.org/jira/browse/WW-5743">WW-5743</a>).</p>
+
<p>The comparison recognises both <code class="language-plaintext
highlighter-rouge">*</code> / <code class="language-plaintext
highlighter-rouge">**</code> (the default <code class="language-plaintext
highlighter-rouge">WildcardHelper</code> matcher) and <code
class="language-plaintext highlighter-rouge">{var}</code>
(<code class="language-plaintext
highlighter-rouge">NamedVariablePatternMatcher</code>). XML mappings are
unaffected — they keep their declared order.</p>