Merge branch '1.5.x'
This commit is contained in:
commit
6cae9257fe
|
@ -48,6 +48,10 @@ public class Handler extends URLStreamHandler {
|
||||||
|
|
||||||
private static final String SEPARATOR = "!/";
|
private static final String SEPARATOR = "!/";
|
||||||
|
|
||||||
|
private static final String CURRENT_DIR = "/./";
|
||||||
|
|
||||||
|
private static final String PARENT_DIR = "/../";
|
||||||
|
|
||||||
private static final String[] FALLBACK_HANDLERS = {
|
private static final String[] FALLBACK_HANDLERS = {
|
||||||
"sun.net.www.protocol.jar.Handler" };
|
"sun.net.www.protocol.jar.Handler" };
|
||||||
|
|
||||||
|
@ -207,6 +211,9 @@ public class Handler extends URLStreamHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
private String normalize(String file) {
|
private String normalize(String file) {
|
||||||
|
if (!file.contains(CURRENT_DIR) && !file.contains(PARENT_DIR)) {
|
||||||
|
return file;
|
||||||
|
}
|
||||||
int afterLastSeparatorIndex = file.lastIndexOf(SEPARATOR) + SEPARATOR.length();
|
int afterLastSeparatorIndex = file.lastIndexOf(SEPARATOR) + SEPARATOR.length();
|
||||||
String afterSeparator = file.substring(afterLastSeparatorIndex);
|
String afterSeparator = file.substring(afterLastSeparatorIndex);
|
||||||
afterSeparator = replaceParentDir(afterSeparator);
|
afterSeparator = replaceParentDir(afterSeparator);
|
||||||
|
@ -216,7 +223,7 @@ public class Handler extends URLStreamHandler {
|
||||||
|
|
||||||
private String replaceParentDir(String file) {
|
private String replaceParentDir(String file) {
|
||||||
int parentDirIndex;
|
int parentDirIndex;
|
||||||
while ((parentDirIndex = file.indexOf("/../")) >= 0) {
|
while ((parentDirIndex = file.indexOf(PARENT_DIR)) >= 0) {
|
||||||
int precedingSlashIndex = file.lastIndexOf('/', parentDirIndex - 1);
|
int precedingSlashIndex = file.lastIndexOf('/', parentDirIndex - 1);
|
||||||
if (precedingSlashIndex >= 0) {
|
if (precedingSlashIndex >= 0) {
|
||||||
file = file.substring(0, precedingSlashIndex)
|
file = file.substring(0, precedingSlashIndex)
|
||||||
|
@ -230,7 +237,7 @@ public class Handler extends URLStreamHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
private String replaceCurrentDir(String file) {
|
private String replaceCurrentDir(String file) {
|
||||||
return file.replace("/./", "/");
|
return file.replace(CURRENT_DIR, "/");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue