Return-Path: Delivered-To: apmail-struts-commits-archive@minotaur.apache.org Received: (qmail 41091 invoked from network); 5 May 2010 21:00:13 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 5 May 2010 21:00:13 -0000 Received: (qmail 53688 invoked by uid 500); 5 May 2010 21:00:13 -0000 Delivered-To: apmail-struts-commits-archive@struts.apache.org Received: (qmail 53658 invoked by uid 500); 5 May 2010 21:00:13 -0000 Mailing-List: contact commits-help@struts.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@struts.apache.org Delivered-To: mailing list commits@struts.apache.org Received: (qmail 53651 invoked by uid 99); 5 May 2010 21:00:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 May 2010 21:00:13 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 May 2010 21:00:10 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2309E23889BF; Wed, 5 May 2010 20:59:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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 Date: Wed, 05 May 2010 20:59:20 -0000 To: commits@struts.apache.org From: lukaszlenart@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100505205920.2309E23889BF@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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.*; /** * @@ -192,6 +187,13 @@ public class FileUploadInterceptor exten protected Set allowedTypesSet = Collections.emptySet(); protected Set 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(), 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();