You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2010/05/05 22:59:20 UTC

svn commit: r941483 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java

Author: lukaszlenart
Date: Wed May  5 20:59:19 2010
New Revision: 941483

URL: http://svn.apache.org/viewvc?rev=941483&view=rev
Log:
Switched to PatternMatcher bean

Modified:
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
    struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java?rev=941483&r1=941482&r2=941483&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java Wed May  5 20:59:19 2010
@@ -25,8 +25,10 @@ import com.opensymphony.xwork2.ActionCon
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.ActionProxy;
 import com.opensymphony.xwork2.ValidationAware;
+import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
+import com.opensymphony.xwork2.util.PatternMatcher;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
@@ -35,14 +37,7 @@ import org.apache.struts2.dispatcher.mul
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 /**
  * <!-- START SNIPPET: description -->
@@ -192,6 +187,13 @@ public class FileUploadInterceptor exten
     protected Set<String> allowedTypesSet = Collections.emptySet();
     protected Set<String> allowedExtensionsSet = Collections.emptySet();
 
+    private PatternMatcher matcher;
+
+    @Inject
+    public void setMatcher(PatternMatcher matcher) {
+        this.matcher = matcher;
+    }
+
     public void setUseActionMessageBundle(String value) {
         this.useActionMessageBundle = Boolean.valueOf(value);
     }
@@ -417,36 +419,8 @@ public class FileUploadInterceptor exten
     }
 
     private boolean matchesWildcard(String pattern, String text) {
-        text += '\0';
-        pattern += '\0';
-
-        int N = pattern.length();
-
-        boolean[] states = new boolean[N + 1];
-        boolean[] old = new boolean[N + 1];
-        old[0] = true;
-
-        for (int i = 0; i < text.length(); i++) {
-            char c = text.charAt(i);
-            states = new boolean[N + 1];
-            for (int j = 0; j < N; j++) {
-                char p = pattern.charAt(j);
-
-                if (old[j] && (p == '*'))
-                    old[j + 1] = true;
-
-                if (old[j] && (p == c))
-                    states[j + 1] = true;
-                if (old[j] && (p == '?'))
-                    states[j + 1] = true;
-                if (old[j] && (p == '*'))
-                    states[j] = true;
-                if (old[j] && (p == '*'))
-                    states[j + 1] = true;
-            }
-            old = states;
-        }
-        return states[N];
+        Object o = matcher.compilePattern(pattern);
+        return matcher.match(new HashMap<String, String>(), text, o);
     }
 
     private boolean isNonEmpty(Object[] objArray) {

Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java?rev=941483&r1=941482&r2=941483&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java Wed May  5 20:59:19 2010
@@ -362,6 +362,7 @@ public class FileUploadInterceptorTest e
     protected void setUp() throws Exception {
         super.setUp();
         interceptor = new FileUploadInterceptor();
+        container.inject(interceptor);
         tempDir = File.createTempFile("struts", "fileupload");
         tempDir.delete();
         tempDir.mkdirs();