mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-21 18:09:20 +00:00
Merged V3.3-BUG-FIX to HEAD
21043: Merged V3.3 to V3.3-BUG-FIX 21041: Fix for ALF-3832 - regression of encoded AVM path characters not working if present in username ids git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@21044 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -23,6 +23,7 @@ import java.io.InputStream;
|
||||
import java.io.Writer;
|
||||
import java.net.SocketException;
|
||||
import java.util.SortedMap;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import org.alfresco.repo.avm.AVMNodeConverter;
|
||||
import org.alfresco.repo.content.MimetypeMap;
|
||||
@@ -39,6 +40,7 @@ import org.alfresco.service.cmr.repository.ContentWriter;
|
||||
import org.alfresco.service.cmr.search.SearchService;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.extensions.surf.util.URLDecoder;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
import org.springframework.extensions.webscripts.WebScriptException;
|
||||
import org.springframework.extensions.webscripts.WebScriptResponse;
|
||||
@@ -384,12 +386,24 @@ public class AVMRemoteStore extends BaseRemoteStore
|
||||
{
|
||||
final Writer out = res.getWriter();
|
||||
int cropPoint = store.length() + this.rootPath.length() + 1;
|
||||
SortedMap<String, AVMNodeDescriptor> listing = this.avmService.getDirectoryListing(node, pattern);
|
||||
StringBuilder buf = new StringBuilder(pattern.length() + 8);
|
||||
for (StringTokenizer t = new StringTokenizer(pattern, "*"); t.hasMoreTokens(); /**/)
|
||||
{
|
||||
buf.append(encodePath(t.nextToken()));
|
||||
if (t.hasMoreTokens())
|
||||
{
|
||||
buf.append('*');
|
||||
}
|
||||
}
|
||||
String encpattern = buf.toString();
|
||||
boolean encoded = (encpattern.length() != pattern.length());
|
||||
SortedMap<String, AVMNodeDescriptor> listing = this.avmService.getDirectoryListing(node, encpattern);
|
||||
for (AVMNodeDescriptor n : listing.values())
|
||||
{
|
||||
if (n.isFile())
|
||||
{
|
||||
out.write(n.getPath().substring(cropPoint));
|
||||
String p = n.getPath().substring(cropPoint);
|
||||
out.write(encoded ? URLDecoder.decode(p) : p);
|
||||
out.write("\n");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user