diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index 0472997b28..2dd8cf9884 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -53,6 +53,7 @@ import static hudson.FilePath.TarCompression.GZIP; import hudson.org.apache.tools.tar.TarInputStream; import hudson.util.io.Archiver; import hudson.util.io.ArchiverFactory; +import jenkins.util.VirtualFile; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.types.FileSet; @@ -1041,6 +1042,13 @@ public final class FilePath implements Serializable { }); } + /** + * Gets the {@link VirtualFile} representation of this {@link FilePath} + */ + public VirtualFile toVirtualFile() { + return VirtualFile.forFilePath(this); + } + /** * Creates this directory. */ diff --git a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java index 207c037348..8b1c9c26e3 100644 --- a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java +++ b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java @@ -93,7 +93,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { * False to serve "index.html" */ public DirectoryBrowserSupport(ModelObject owner, FilePath base, String title, String icon, boolean serveDirIndex) { - this(owner, VirtualFile.forFilePath(base), title, icon, serveDirIndex); + this(owner, base.toVirtualFile(), title, icon, serveDirIndex); } /** @@ -148,7 +148,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { * from the {@code doXYZ} method and let Stapler generate a response for you. */ public void serveFile(StaplerRequest req, StaplerResponse rsp, FilePath root, String icon, boolean serveDirIndex) throws IOException, ServletException, InterruptedException { - serveFile(req, rsp, VirtualFile.forFilePath(root), icon, serveDirIndex); + serveFile(req, rsp, root.toVirtualFile(), icon, serveDirIndex); } private void serveFile(StaplerRequest req, StaplerResponse rsp, VirtualFile root, String icon, boolean serveDirIndex) throws IOException, ServletException, InterruptedException { diff --git a/core/src/main/java/jenkins/util/VirtualFile.java b/core/src/main/java/jenkins/util/VirtualFile.java index 4a3062224b..58dcafd1a5 100644 --- a/core/src/main/java/jenkins/util/VirtualFile.java +++ b/core/src/main/java/jenkins/util/VirtualFile.java @@ -247,7 +247,7 @@ public abstract class VirtualFile implements Comparable { } } @Override public VirtualFile getParent() { - return forFilePath(f.getParent()); + return f.getParent().toVirtualFile(); } @Override public boolean isDirectory() throws IOException { try {