You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by cm...@apache.org on 2001/08/06 13:30:05 UTC
cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav WebdavException.java WebdavServlet.java
cmlenz 01/08/06 04:30:05
Modified: src/webdav/server/org/apache/slide/webdav
WebdavException.java WebdavServlet.java
Log:
- made initialization of the WebdavServlet more robust
- added getStatusCode() to WevdavException, and changed the WebdavServlet
to send that status code when a WebdavException occurs during request
processing
Revision Changes Path
1.4 +15 -3 jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavException.java
Index: WebdavException.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavException.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WebdavException.java 2001/03/23 05:08:27 1.3
+++ WebdavException.java 2001/08/06 11:30:05 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavException.java,v 1.3 2001/03/23 05:08:27 remm Exp $
- * $Revision: 1.3 $
- * $Date: 2001/03/23 05:08:27 $
+ * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavException.java,v 1.4 2001/08/06 11:30:05 cmlenz Exp $
+ * $Revision: 1.4 $
+ * $Date: 2001/08/06 11:30:05 $
*
* ====================================================================
*
@@ -116,6 +116,16 @@
/**
+ * Returns the HTTP/WebDAV status code associated with the exception.
+ *
+ * @return the status code
+ */
+ public int getStatusCode() {
+ return statusCode;
+ }
+
+
+ /**
* Returns an HTTP formatted error page.
*
* @param resp HTTP servlet response
@@ -127,4 +137,6 @@
}
}
+
}
+
1.20 +32 -20 jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java
Index: WebdavServlet.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- WebdavServlet.java 2001/08/01 16:30:58 1.19
+++ WebdavServlet.java 2001/08/06 11:30:05 1.20
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v 1.19 2001/08/01 16:30:58 cmlenz Exp $
- * $Revision: 1.19 $
- * $Date: 2001/08/01 16:30:58 $
+ * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v 1.20 2001/08/06 11:30:05 cmlenz Exp $
+ * $Revision: 1.20 $
+ * $Date: 2001/08/06 11:30:05 $
*
* ====================================================================
*
@@ -64,10 +64,11 @@
package org.apache.slide.webdav;
import java.io.*;
-import java.util.*;
+import java.net.URL;
import java.security.Principal;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.xml.parsers.SAXParser;
@@ -79,11 +80,7 @@
import org.apache.util.WebdavStatus;
import org.apache.slide.authenticate.SecurityToken;
-import org.apache.slide.common.Domain;
-import org.apache.slide.common.Namespace;
-import org.apache.slide.common.NamespaceAccessToken;
-import org.apache.slide.common.SlideException;
-import org.apache.slide.common.SlideToken;
+import org.apache.slide.common.*;
import org.apache.slide.content.Content;
import org.apache.slide.content.NodeRevisionDescriptor;
import org.apache.slide.content.NodeRevisionDescriptors;
@@ -253,7 +250,7 @@
}
} catch (WebdavException e) {
// There has been an error somewhere ...
- // TODO : Show error page.
+ resp.sendError(e.getStatusCode());
System.out.println(e.getMessage());
e.printStackTrace();
} catch (Throwable e) {
@@ -303,21 +300,21 @@
String value = null;
try {
- value = getServletConfig().getInitParameter("namespace");
+ value = getInitParameter("namespace");
if (value != null)
namespaceName = value;
} catch (Throwable t) {
;
}
try {
- value = getServletConfig().getInitParameter("domain");
+ value = getInitParameter("domain");
if (value != null)
domainConfigFile = value;
} catch (Throwable t) {
;
}
try {
- value = getServletConfig().getInitParameter("directory-browsing");
+ value = getInitParameter("directory-browsing");
if (value != null) {
directoryBrowsing = new Boolean(value).booleanValue();
}
@@ -330,18 +327,33 @@
try {
- Domain.init(getServletContext().getResource(domainConfigFile));
+ URL domainConfigFileURL =
+ getServletContext().getResource(domainConfigFile);
+ if (domainConfigFileURL != null) {
+ Domain.init(domainConfigFileURL);
+ }
+
+ if (namespaceName == null) {
+ namespaceName = Domain.getDefaultNamespace();
+ log("No namespace specified, will use default namespace: " +
+ namespaceName);
+ }
+
+ token = Domain.accessNamespace
+ (new SecurityToken(this), namespaceName);
+ if (token == null) {
+ log("Could not access namespace " + namespaceName + ".");
+ throw new UnavailableException("Namespace " + namespaceName +
+ " not accessible");
+ }
+ } catch (DomainInitializationFailedError e) {
+ throw new UnavailableException(e.getMessage());
} catch (Throwable t) {
t.printStackTrace();
throw new ServletException(t.getMessage());
}
-
- if (namespaceName != null) {
- token = Domain.accessNamespace
- (new SecurityToken(this), namespaceName);
- }
- }
+ }
/**