Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.apache.commons.httpclient.HttpStatus;
import org.apache.jackrabbit.webdav.DavConstants;
import org.apache.jackrabbit.webdav.MultiStatus;
import org.apache.jackrabbit.webdav.MultiStatusResponse;
import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
import org.apache.jackrabbit.webdav.property.DavPropertyNameSet;

Expand Down Expand Up @@ -112,16 +113,17 @@ protected RemoteOperationResult<ArrayList<FileVersion>> run(OwnCloudClient clien
* @param client Client instance to the remote server where the data were retrieved.
*/
private void readData(MultiStatus remoteData, OwnCloudClient client) {
versions = new ArrayList<>();
MultiStatusResponse[] responses = remoteData.getResponses();
versions = new ArrayList<>(responses.length);

// parse data from remote folder
String splitElement = client.getDavUri().getPath();

// loop to update every child
for (int i = 1; i < remoteData.getResponses().length; ++i) {
for (int i = 1; i < responses.length; ++i) {
versions.add(new FileVersion(
localId,
new WebdavEntry(remoteData.getResponses()[i], splitElement))
new WebdavEntry(responses[i], splitElement))
);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.apache.commons.httpclient.HttpStatus;
import org.apache.jackrabbit.webdav.DavConstants;
import org.apache.jackrabbit.webdav.MultiStatus;
import org.apache.jackrabbit.webdav.MultiStatusResponse;
import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;

import java.util.ArrayList;
Expand Down Expand Up @@ -80,6 +81,10 @@ protected RemoteOperationResult run(OwnCloudClient client) {
client.exhaustResponse(query.getResponseBodyAsStream());
result = new RemoteOperationResult(false, query);
}
} catch (OutOfMemoryError e) {
mFolderAndFiles = null;
result = new RemoteOperationResult(
new Exception("Not enough memory to read the contents of " + mRemotePath, e));
Comment on lines +84 to +87
} catch (Exception e) {
result = new RemoteOperationResult(e);
} finally {
Expand Down Expand Up @@ -120,17 +125,20 @@ public boolean isMultiStatus(int status) {
* @return
*/
private void readData(MultiStatus remoteData, OwnCloudClient client) {
mFolderAndFiles = new ArrayList<>();
MultiStatusResponse[] responses = remoteData.getResponses();
String davUriPath = client.getFilesDavUri().getEncodedPath();

// parse data from remote folder
WebdavEntry we = new WebdavEntry(remoteData.getResponses()[0], client.getFilesDavUri().getEncodedPath());
mFolderAndFiles = new ArrayList<>(responses.length);

// parse data from remote folder
WebdavEntry we = new WebdavEntry(responses[0], davUriPath);
mFolderAndFiles.add(new RemoteFile(we));

// loop to update every child
RemoteFile remoteFile;
for (int i = 1; i < remoteData.getResponses().length; ++i) {
for (int i = 1; i < responses.length; ++i) {
/// new OCFile instance with the data from the server
we = new WebdavEntry(remoteData.getResponses()[i], client.getFilesDavUri().getEncodedPath());
we = new WebdavEntry(responses[i], davUriPath);
remoteFile = new RemoteFile(we);
mFolderAndFiles.add(remoteFile);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.apache.commons.httpclient.HttpStatus;
import org.apache.jackrabbit.webdav.DavConstants;
import org.apache.jackrabbit.webdav.MultiStatus;
import org.apache.jackrabbit.webdav.MultiStatusResponse;
import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
import org.apache.jackrabbit.webdav.property.DavPropertyNameSet;

Expand Down Expand Up @@ -113,15 +114,16 @@ public RemoteOperationResult<List<TrashbinFile>> run(OwnCloudClient client) {
* @param client Client instance to the remote server where the data were retrieved.
*/
private void readData(MultiStatus remoteData, OwnCloudClient client) {
folderAndFiles = new ArrayList<>();
MultiStatusResponse[] responses = remoteData.getResponses();
folderAndFiles = new ArrayList<>(responses.length);

// parse data from remote folder
WebdavEntry we;
String splitElement = client.getDavUri().getPath();

// loop to update every child
for (int i = 1; i < remoteData.getResponses().length; ++i) {
we = new WebdavEntry(remoteData.getResponses()[i], splitElement);
for (int i = 1; i < responses.length; ++i) {
we = new WebdavEntry(responses[i], splitElement);
folderAndFiles.add(new TrashbinFile(we, client.getUserId()));
}
}
Expand Down
Loading