SOLR-6365 path /update/** should match /update as well

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1650125 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Noble Paul 2015-01-07 17:41:01 +00:00
parent 812e0c6e6f
commit 980c1e42f1
2 changed files with 14 additions and 4 deletions

View File

@ -65,7 +65,8 @@ public class InitParams {
private static boolean matchPath(String path, String name){
List<String> pathSplit = StrUtils.splitSmart(path, '/');
List<String> nameSplit = StrUtils.splitSmart(name, '/');
for (int i = 0; i < nameSplit.size(); i++) {
int i = 0;
for (;i < nameSplit.size(); i++) {
String s = nameSplit.get(i);
String ps = pathSplit.size()>i ? pathSplit.get(i) :null;
if(ps == null) return false;
@ -74,7 +75,8 @@ public class InitParams {
if("**".equals(ps)) return true;
return false;
}
return true;
String ps = pathSplit.size()>i ? pathSplit.get(i) :null;
return "*".equals(ps) || "**".equals(ps);
}

View File

@ -108,10 +108,18 @@ public class TestInitParams extends SolrTestCaseJ4 {
}
/* public void testMatchPath(){
public void testMatchPath(){
InitParams initParams = new InitParams(new PluginInfo(InitParams.TYPE, ZkNodeProps.makeMap("path","/update/json/docs")));
assertFalse(initParams.matchPath("/update"));
assertTrue(initParams.matchPath("/update/json/docs"));
}*/
initParams = new InitParams(new PluginInfo(InitParams.TYPE, ZkNodeProps.makeMap("path","/update/**")));
assertTrue(initParams.matchPath("/update/json/docs"));
assertTrue(initParams.matchPath("/update/json"));
assertTrue(initParams.matchPath("/update"));
initParams = new InitParams(new PluginInfo(InitParams.TYPE, ZkNodeProps.makeMap("path","/update/*")));
assertFalse(initParams.matchPath("/update/json/docs"));
assertTrue(initParams.matchPath("/update/json"));
assertTrue(initParams.matchPath("/update"));
}
}