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/07/30 08:31:00 UTC

cvs commit: jakarta-slide/src/share/org/apache/slide/webdav/method GetMethod.java

remm        00/07/29 23:30:56

  Modified:    src/share/org/apache/slide/webdav/method GetMethod.java
  Log:
  - The get method no longer uses readers for most operations.
  
  Revision  Changes    Path
  1.2       +16 -17    jakarta-slide/src/share/org/apache/slide/webdav/method/GetMethod.java
  
  Index: GetMethod.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/webdav/method/GetMethod.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- GetMethod.java	2000/05/09 02:47:32	1.1
  +++ GetMethod.java	2000/07/30 06:30:55	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/webdav/method/GetMethod.java,v 1.1 2000/05/09 02:47:32 remm Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/05/09 02:47:32 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/webdav/method/GetMethod.java,v 1.2 2000/07/30 06:30:55 remm Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/07/30 06:30:55 $
    *
    * ====================================================================
    *
  @@ -148,18 +148,19 @@
               NodeRevisionDescriptors revisionDescriptors = 
                   content.retrieve(credToken, resourcePath);
               
  -            Writer writer = resp.getWriter();
               if (revisionDescriptors.hasRevisions()) {
                   // Retrieve latest revision descriptor
                   NodeRevisionDescriptor revisionDescriptor = 
                       content.retrieve(credToken, revisionDescriptors);
                   if (WebdavUtil.isCollection(revisionDescriptor)) {
  +                    Writer writer = resp.getWriter();
                       displayDirectoryBrowsing(object, writer);
  +                    writer.close();
                   } else {
  +                    OutputStream os = resp.getOutputStream();
                       NodeRevisionContent revisionContent = 
                           content.retrieve(credToken, revisionDescriptors, 
                                            revisionDescriptor);
  -                    //char[] content = revision.getContent();
                       resp.setStatus(WebdavStatus.SC_OK);
                       resp.setContentLength
                           ((int) revisionDescriptor.getContentLength());
  @@ -175,29 +176,27 @@
                       resp.setContentType(revisionDescriptor.getContentType());
                       
                       // Writing content to the output stream
  -                    
  -                    Reader reader = revisionContent.readContent();
  -                    char[] buffer = new char[BUFFER_SIZE];
  +                    InputStream is = revisionContent.streamContent();
  +                    byte[] buffer = new byte[BUFFER_SIZE];
                       long contentLength = revisionDescriptor.getContentLength();
                       long position = 0;
                       int nChar = 0;
                       while (position < contentLength) {
  -                        if (contentLength - position > BUFFER_SIZE) {
  -                            nChar = reader.read(buffer, 0, BUFFER_SIZE);
  -                        } else {
  -                            nChar = reader.read
  -                                (buffer, 0, (int) (contentLength - position));
  +                        nChar = is.read(buffer, 0, BUFFER_SIZE);
  +                        if (nChar == -1) {
  +                            break;
                           }
  -                        writer.write(buffer, 0, nChar);
  +                        os.write(buffer, 0, nChar);
                           position = position + nChar;
                       }
  -                    reader.close();
  +                    is.close();
  +                    os.close();
                   }
               } else {
  +                Writer writer = resp.getWriter();
                   displayDirectoryBrowsing(object, writer);
  +                writer.close();
               }
  -            writer.flush();
  -            writer.close();
               
           } catch (RevisionNotFoundException e) {
               // 404 - Not found