import java.io.IOException;\r
import java.util.ArrayList;\r
import java.util.Iterator;\r
+import java.util.LinkedList;\r
import java.util.List;\r
+import java.util.Queue;\r
import java.util.Vector;\r
\r
import org.apache.jackrabbit.webdav.DavException;\r
\r
Log.d(TAG, "syncing owncloud account " + account.name);\r
\r
- sendStickyBroadcast(true, -1); // starting message to UI\r
+ sendStickyBroadcast(true, -1); // message to signal the start to the UI\r
\r
PropFindMethod query;\r
try {\r
getClient().executeMethod(query);\r
MultiStatus resp = null;\r
resp = query.getResponseBodyAsMultiStatus();\r
- List<String> paths = new ArrayList<String>();\r
- List<Long> fileIds = new ArrayList<Long>(); \r
+ Queue<String> paths = new LinkedList<String>();\r
+ Queue<Long> fileIds = new LinkedList<Long>(); \r
for (int i = 1; i < resp.getResponses().length; ++i) {\r
WebdavEntry we = new WebdavEntry(resp.getResponses()[i], getUri().getPath());\r
OCFile file = fillOCFile(we);\r
sendStickyBroadcast(true, parentId);\r
\r
// recursive fetch\r
- Iterator<String> pathsIt = paths.iterator();\r
- Iterator<Long> fileIdsIt = fileIds.iterator();\r
- while (pathsIt.hasNext()) {\r
- fetchData(getUri().toString() + pathsIt.next(), syncResult, fileIdsIt.next());\r
+ while(!paths.isEmpty()) {\r
+ fetchData(getUri().toString() + paths.remove(), syncResult, fileIds.remove());\r
}\r
+ paths = null;\r
+ fileIds = null;\r
\r
\r
} catch (OperationCanceledException e) {\r