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 re...@locus.apache.org on 2000/12/12 00:45:51 UTC

cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/method PutMethod.java

remm        00/12/11 15:45:51

  Modified:    src/webdav/server/org/apache/slide/webdav/method
                        PutMethod.java
  Log:
  - Prevent doing a PUT on an existing collection. I'm not 100% sure
    we want to do this in Slide, though, so perhaps I'll change that behavior in
    the future.
    Bug reported by Jiantao Pan.
  
  Revision  Changes    Path
  1.3       +17 -3     jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PutMethod.java
  
  Index: PutMethod.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PutMethod.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PutMethod.java	2000/11/25 01:36:12	1.2
  +++ PutMethod.java	2000/12/11 23:45:50	1.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PutMethod.java,v 1.2 2000/11/25 01:36:12 remm Exp $
  - * $Revision: 1.2 $
  - * $Date: 2000/11/25 01:36:12 $
  + * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PutMethod.java,v 1.3 2000/12/11 23:45:50 remm Exp $
  + * $Revision: 1.3 $
  + * $Date: 2000/12/11 23:45:50 $
    *
    * ====================================================================
    *
  @@ -150,8 +150,22 @@
                   
                   NodeRevisionDescriptors revisionDescriptors = 
                       content.retrieve(slideToken, resourcePath);
  +                
                   NodeRevisionNumber revisionNumber = 
                       revisionDescriptors.getLatestRevision();
  +                NodeRevisionDescriptor oldRevisionDescriptor = null;
  +                if (revisionNumber != null) {
  +                    try {
  +                        oldRevisionDescriptor = content.retrieve
  +                            (slideToken, revisionDescriptors);
  +                    } catch (RevisionDescriptorNotFoundException e) {
  +                    }
  +                }
  +                if (isCollection(oldRevisionDescriptor)) {
  +                    resp.setStatus(WebdavStatus.SC_CONFLICT);
  +                    return;
  +                }
  +                
                   NodeRevisionDescriptor revisionDescriptor = 
                       new NodeRevisionDescriptor(req.getContentLength());
                   NodeRevisionContent revisionContent =