Updated Branches:
  refs/heads/master e42913ae8 -> 999c548e6

Fix FileTransfer running out of memory over HTTPS (CB-312).

Setting the Transfer-Encoding header fixes running out of memory when
using HTTPS.
This CL also adds a bit of logging so that upload progress is logged.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/commit/999c548e
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/999c548e
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/999c548e

Branch: refs/heads/master
Commit: 999c548e6e29c9253403dbfc9f340c1c52c89871
Parents: e42913a
Author: Andrew Grieve <agri...@chromium.org>
Authored: Thu Aug 16 10:25:54 2012 -0400
Committer: Andrew Grieve <agri...@chromium.org>
Committed: Thu Aug 16 10:30:04 2012 -0400

----------------------------------------------------------------------
 framework/src/org/apache/cordova/FileTransfer.java |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/999c548e/framework/src/org/apache/cordova/FileTransfer.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/FileTransfer.java 
b/framework/src/org/apache/cordova/FileTransfer.java
index 61fa284..b64bc50 100644
--- a/framework/src/org/apache/cordova/FileTransfer.java
+++ b/framework/src/org/apache/cordova/FileTransfer.java
@@ -251,6 +251,7 @@ public class FileTransfer extends Plugin {
             } else {
                 conn.setFixedLengthStreamingMode(fixedLength);
             }
+            conn.setRequestProperty("Transfer-Encoding", "chunked");
 
             dos = new DataOutputStream( conn.getOutputStream() );
             //We don't want to change encoding, we just want this to write for 
all Unicode.
@@ -267,10 +268,15 @@ public class FileTransfer extends Plugin {
             bytesRead = fileInputStream.read(buffer, 0, bufferSize);
             totalBytes = 0;
 
+            long prevBytesRead = 0;
             while (bytesRead > 0) {
                 totalBytes += bytesRead;
                 result.setBytesSent(totalBytes);
                 dos.write(buffer, 0, bufferSize);
+                if (totalBytes > prevBytesRead + 102400) {
+                       prevBytesRead = totalBytes;
+                       Log.d(LOG_TAG, "Uploaded " + totalBytes + " of " + 
fixedLength + " bytes");
+                }
                 bytesAvailable = fileInputStream.available();
                 bufferSize = Math.min(bytesAvailable, maxBufferSize);
                 bytesRead = fileInputStream.read(buffer, 0, bufferSize);

Reply via email to