From cfb1f629ca2975be2292b593c049d04f2531d4a1 Mon Sep 17 00:00:00 2001 From: Conor MacNeill Date: Fri, 21 Feb 2003 10:41:53 +0000 Subject: [PATCH] Optimization git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274162 13f79535-47bb-0310-9956-ffa450edef68 --- .../tools/ant/taskdefs/optional/net/FTP.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java index ad1d73413..e7f57c623 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java @@ -642,28 +642,29 @@ public class FTP protected void createParents(FTPClient ftp, String filename) throws IOException, BuildException { - String cwd = ftp.printWorkingDirectory(); + File dir = new File(filename); + if (dirCache.contains(dir)) { + return; + } + Vector parents = new Vector(); - File dir = new File(filename); String dirname; while ((dirname = dir.getParent()) != null) { - dir = new File(dirname); + File checkDir = new File(dirname); + if (dirCache.contains(checkDir)) { + break; + } + dir = checkDir; parents.addElement(dir); } // find first non cached dir int i = parents.size() - 1; - while (i >= 0) { - dir = (File) parents.elementAt(i); - if (!dirCache.contains(dir)) { - break; - } - i--; - } if (i >= 0) { + String cwd = ftp.printWorkingDirectory(); String parent = dir.getParent(); if (parent != null) { if (!ftp.changeWorkingDirectory(parent)) {