diff --git a/core/src/test/java/org/apache/struts2/config/ConfigurationTest.java b/core/src/test/java/org/apache/struts2/config/ConfigurationTest.java
index 4b949fe39b..c5f530a9b7 100644
--- a/core/src/test/java/org/apache/struts2/config/ConfigurationTest.java
+++ b/core/src/test/java/org/apache/struts2/config/ConfigurationTest.java
@@ -115,6 +115,24 @@ public void testWildcardNamespace() {
assertEquals("Wrong parameter, " + p.get("1"), "dog", p.get("1"));
}
+ public void testFirstMatchingWildcardWinsWhenCatchAllIsFirst() {
+ RuntimeConfiguration configuration = configurationManager.getConfiguration().getRuntimeConfiguration();
+
+ ActionConfig config = configuration.getActionConfig("/wildcard-order-catch-all-first", "ProjectStatus");
+
+ assertNotNull(config);
+ assertEquals("execute", config.getMethodName());
+ }
+
+ public void testFirstMatchingWildcardWinsWhenCatchAllIsLast() {
+ RuntimeConfiguration configuration = configurationManager.getConfiguration().getRuntimeConfiguration();
+
+ ActionConfig config = configuration.getActionConfig("/wildcard-order-catch-all-last", "ProjectStatus");
+
+ assertNotNull(config);
+ assertEquals("input", config.getMethodName());
+ }
+
public void testGlobalResults() {
try {
ActionProxy proxy = actionProxyFactory.createActionProxy("", "Foo", null, null);
diff --git a/core/src/test/resources/xwork-sample.xml b/core/src/test/resources/xwork-sample.xml
index 7a513fc738..a49a8c24d8 100644
--- a/core/src/test/resources/xwork-sample.xml
+++ b/core/src/test/resources/xwork-sample.xml
@@ -362,5 +362,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+