[Bedework-commit] webdav r136 -
releases/bedework-3.4.1.1/server/src/edu/rpi/cct/webdav/servlet/shared
svnadmin at bedework.org
svnadmin at bedework.org
Fri May 23 11:12:20 EDT 2008
Author: douglm
Date: 2008-05-23 11:12:19 -0400 (Fri, 23 May 2008)
New Revision: 136
Modified:
releases/bedework-3.4.1.1/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsNode.java
Log:
Change WebdavNSnOde so that url handler works for root context. Also tidy it up a bit.
Modified: releases/bedework-3.4.1.1/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsNode.java
===================================================================
--- releases/bedework-3.4.1.1/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsNode.java 2008-05-09 13:56:04 UTC (rev 135)
+++ releases/bedework-3.4.1.1/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsNode.java 2008-05-23 15:12:19 UTC (rev 136)
@@ -218,18 +218,26 @@
this.relative = relative;
try {
+ context = req.getContextPath();
+ if ((context == null) || (context.equals("."))) {
+ /* XXX Not at all sure why I did this.
+ * Context is "" for the root context anyway.
+ */
+ context = "";
+ }
+
urlPrefix = req.getRequestURL().toString();
+ int pos;
- int pos = urlPrefix.indexOf(req.getContextPath());
+ if (context.length() > 0) {
+ pos = urlPrefix.indexOf(context);
+ } else {
+ pos = urlPrefix.indexOf(req.getRequestURI());
+ }
if (pos > 0) {
urlPrefix = urlPrefix.substring(0, pos);
}
-
- context = req.getContextPath();
- if ((context == null) || (context.equals("."))) {
- context = "";
- }
} catch (Throwable t) {
Logger.getLogger(WebdavUtils.class).warn(
"Unable to get url from " + req);
@@ -261,31 +269,11 @@
if (!relative) {
sb.append(getUrlPrefix());
- if (sb.charAt(sb.length() - 1) != '/') {
- sb.append("/");
- }
-
- if (context.startsWith("/")) {
- sb.append(context.substring(1));
- } else {
- sb.append(context);
- }
- } else {
- if (!context.startsWith("/")) {
- sb.append("/");
- }
- sb.append(context);
-
}
- if (!enc.startsWith("/")) {
- if ((sb.length() == 0) || (sb.charAt(sb.length() - 1) != '/')) {
- sb.append("/");
- }
- }
+ append(sb, context);
+ append(sb, enc);
- sb.append(enc);
-
return sb.toString();
} catch (Throwable t) {
throw new WebdavException(t);
@@ -316,6 +304,30 @@
public String getUrlPrefix() {
return urlPrefix;
}
+
+ private boolean endsWithSlash(StringBuilder sb) {
+ if (sb.length() == 0) {
+ return false;
+ }
+
+ return sb.charAt(sb.length() - 1) == '/';
+ }
+
+ private void append(StringBuilder sb, String val) {
+ if (val.startsWith("/")) {
+ if (!endsWithSlash(sb)) {
+ sb.append(val);
+ } else {
+ sb.append(val.substring(1));
+ }
+ } else {
+ if (!endsWithSlash(sb)) {
+ sb.append("/");
+ }
+
+ sb.append(val);
+ }
+ }
}
/** Constructor
More information about the Bedework-commit
mailing list