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