X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/65f403bf994bd84d64eea16072b7bec479c0d525..d9f42d500cf959420d2379dceb085dc3848f3e9e:/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java diff --git a/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java b/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java index 3f453968..21f82d9f 100644 --- a/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java +++ b/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java @@ -120,11 +120,15 @@ public class ChunkFromFileChannelRequestEntity implements RequestEntity, Progres mChannel.position(mOffset); long size = mFile.length(); if (size == 0) size = -1; - while (mChannel.position() < mOffset + mChunkSize && mChannel.position() < mChannel.size()) { + long maxCount = Math.min(mOffset + mChunkSize, mChannel.size()); + while (mChannel.position() < maxCount) { readCount = mChannel.read(mBuffer); out.write(mBuffer.array(), 0, readCount); mBuffer.clear(); - mTransferred += readCount; + if (mTransferred < maxCount) { // condition to avoid accumulate progress for repeated chunks + Log_OC.d(TAG, "aƱadiendo a mTransfered " + mTransferred + " readCount " + readCount + " hasta " + (mTransferred + readCount)); + mTransferred += readCount; + } synchronized (mDataTransferListeners) { it = mDataTransferListeners.iterator(); while (it.hasNext()) {