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);
  -        }
  -    }
  +     }
       
       
       /**