You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ia...@apache.org on 2014/04/23 20:57:05 UTC
[02/11] git commit: Upleveled from android port with following
commits: 3c1ff16 Andrew Grieve - CB-5762 android: Fix lengthComputable set
wrong for gzip downloads 8374b3d Colin Mahoney - CB-5631 Removed
SimpleTrackingInputStream.read(byte[] buffer) 6f91a
Upleveled from android port with following commits:
3c1ff16 Andrew Grieve - CB-5762 android: Fix lengthComputable set wrong for gzip downloads
8374b3d Colin Mahoney - CB-5631 Removed SimpleTrackingInputStream.read(byte[] buffer)
6f91ac3 Bas Bosman - CB-4907 Close stream when we're finished with it
651460f Christoph Neumann - CB-6000 Nginx rejects Content-Type without a space before "boundary".
35f80e4 Ian Clelland - CB-6050: Use instance method on actual file plugin object to get FileEntry to return on download
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/commit/c35ca1a5
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/tree/c35ca1a5
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/diff/c35ca1a5
Branch: refs/heads/master
Commit: c35ca1a5c22298542f84e372a3f9ff6da914a05b
Parents: f115394
Author: Archana Naik <na...@lab126.com>
Authored: Mon Mar 10 23:02:28 2014 -0700
Committer: Archana Naik <na...@lab126.com>
Committed: Mon Mar 10 23:02:28 2014 -0700
----------------------------------------------------------------------
src/amazon/FileTransfer.java | 53 +++++++++++++++++++++++++--------------
1 file changed, 34 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/blob/c35ca1a5/src/amazon/FileTransfer.java
----------------------------------------------------------------------
diff --git a/src/amazon/FileTransfer.java b/src/amazon/FileTransfer.java
index 2e0c31c..513400e 100644
--- a/src/amazon/FileTransfer.java
+++ b/src/amazon/FileTransfer.java
@@ -158,11 +158,8 @@ public class FileTransfer extends CordovaPlugin {
return updateBytesRead(super.read());
}
- @Override
- public int read(byte[] buffer) throws IOException {
- return updateBytesRead(super.read(buffer));
- }
-
+ // Note: FilterInputStream delegates read(byte[] bytes) to the below method,
+ // so we don't override it or else double count (CB-5631).
@Override
public int read(byte[] bytes, int offset, int count) throws IOException {
return updateBytesRead(super.read(bytes, offset, count));
@@ -318,7 +315,7 @@ public class FileTransfer extends CordovaPlugin {
// Use a post method.
conn.setRequestMethod(httpMethod);
- conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + BOUNDARY);
+ conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY);
// Set the cookies on the response
String cookie = AmazonCookieManager.getInstance().getCookie(target);
@@ -585,15 +582,19 @@ public class FileTransfer extends CordovaPlugin {
if(err != null)
{
BufferedReader reader = new BufferedReader(new InputStreamReader(err, "UTF-8"));
- String line = reader.readLine();
- while(line != null)
- {
- bodyBuilder.append(line);
- line = reader.readLine();
- if(line != null)
- bodyBuilder.append('\n');
+ try {
+ String line = reader.readLine();
+ while(line != null) {
+ bodyBuilder.append(line);
+ line = reader.readLine();
+ if(line != null) {
+ bodyBuilder.append('\n');
+ }
+ }
+ body = bodyBuilder.toString();
+ } finally {
+ reader.close();
}
- body = bodyBuilder.toString();
}
}
// IOException can leave connection object in a bad state, so catch all exceptions.
@@ -760,8 +761,10 @@ public class FileTransfer extends CordovaPlugin {
if (connection.getContentEncoding() == null || connection.getContentEncoding().equalsIgnoreCase("gzip")) {
// Only trust content-length header if we understand
// the encoding -- identity or gzip
- progress.setLengthComputable(true);
- progress.setTotal(connection.getContentLength());
+ if (connection.getContentLength() != -1) {
+ progress.setLengthComputable(true);
+ progress.setTotal(connection.getContentLength());
+ }
}
inputStream = getInputStream(connection);
}
@@ -794,9 +797,21 @@ public class FileTransfer extends CordovaPlugin {
Log.d(LOG_TAG, "Saved file: " + target);
// create FileEntry object
- JSONObject fileEntry = FileUtils.getEntry(file);
-
- result = new PluginResult(PluginResult.Status.OK, fileEntry);
+ FileUtils filePlugin = (FileUtils)webView.pluginManager.getPlugin("File");
+ if (filePlugin != null) {
+ JSONObject fileEntry = filePlugin.getEntryForFile(file);
+ if (fileEntry != null) {
+ result = new PluginResult(PluginResult.Status.OK, fileEntry);
+ } else {
+ JSONObject error = createFileTransferError(CONNECTION_ERR, source, target, connection);
+ Log.e(LOG_TAG, "File plugin cannot represent download path");
+ result = new PluginResult(PluginResult.Status.IO_EXCEPTION, error);
+ }
+ } else {
+ Log.e(LOG_TAG, "File plugin not found; cannot save downloaded file");
+ result = new PluginResult(PluginResult.Status.ERROR, "File plugin not found; cannot save downloaded file");
+ }
+
} catch (FileNotFoundException e) {
JSONObject error = createFileTransferError(FILE_NOT_FOUND_ERR, source, target, connection);
Log.e(LOG_TAG, error.toString(), e);