diff --git a/libs/jackrabbit-webdav-2.12.2.jar b/libs/jackrabbit-webdav-2.12.4.jar similarity index 78% rename from libs/jackrabbit-webdav-2.12.2.jar rename to libs/jackrabbit-webdav-2.12.4.jar index 1be8d51a4..95a445337 100644 Binary files a/libs/jackrabbit-webdav-2.12.2.jar and b/libs/jackrabbit-webdav-2.12.4.jar differ diff --git a/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java b/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java index 393d00a26..62afed086 100644 --- a/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java +++ b/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java @@ -47,7 +47,9 @@ public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation { - + + private static final int LAST_CHUNK_TIMEOUT = 900000; //15 mins. + public static final long CHUNK_SIZE = 1024000; private static final String OC_CHUNKED_HEADER = "OC-Chunked"; private static final String OC_CHUNK_SIZE_HEADER = "OC-Chunk-Size"; @@ -114,6 +116,14 @@ protected int uploadFile(OwnCloudClient client) throws IOException { mPutMethod.abort(); // next method will throw an exception } + + if (chunkIndex == chunkCount - 1) { + // Added a high timeout to the last chunk due to when the last chunk + // arrives to the server with the last PUT, all chunks get assembled + // within that PHP request, so last one takes longer. + mPutMethod.getParams().setSoTimeout(LAST_CHUNK_TIMEOUT); + } + status = client.executeMethod(mPutMethod); if (status == 400) {