From: Marcelo V. <va...@us...> - 2010-05-31 03:25:33
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "ProjectViewer jEdit plugin". The branch, master has been updated via 8964ccfa26a615c34c7b6c69a9522fb088dd252b (commit) from 3dc3a9864e8ba9e466bdef992c1f0b22b59f0f82 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8964ccfa26a615c34c7b6c69a9522fb088dd252b Author: Marcelo Vanzin <va...@us...> Date: Sun May 30 20:24:07 2010 -0700 Fix NPE when synchronizing the search dialog. When doing the check for the directory path, need to make sure the trailing separator is stripped so that it matches the internal representation used by PV. Also make the stripping code a separate function since it's used in several places. diff --git a/projectviewer/PVActions.java b/projectviewer/PVActions.java index 7950469..5c14a22 100644 --- a/projectviewer/PVActions.java +++ b/projectviewer/PVActions.java @@ -426,5 +426,23 @@ public final class PVActions { } } + + /** + * Strips the trailing file separator from a path, if it exists. + * + * @param path The path. + * + * @return The path without a trailing file separator. + * + * @since PV 3.2.0 + */ + public static String stripSeparator(String path) + { + if (path.endsWith(File.separator)) { + return path.substring(0, path.length() - File.separator.length()); + } + return path; + } + } diff --git a/projectviewer/action/SearchAction.java b/projectviewer/action/SearchAction.java index 6cfff45..e9b2bf8 100644 --- a/projectviewer/action/SearchAction.java +++ b/projectviewer/action/SearchAction.java @@ -51,6 +51,7 @@ import org.gjt.sp.util.StandardUtilities; import projectviewer.ProjectManager; import projectviewer.ProjectViewer; +import projectviewer.PVActions; import projectviewer.VFSHelper; import projectviewer.config.ProjectViewerConfig; @@ -239,6 +240,7 @@ public class SearchAction extends Action { */ public void setDirectory(String directory) { + directory = PVActions.stripSeparator(directory); if (!directory.equals(node.getNodePath())) { node = findDirectory(VPTNode.findProjectFor(node), directory); } diff --git a/projectviewer/importer/Importer.java b/projectviewer/importer/Importer.java index 8c31526..780b9c9 100644 --- a/projectviewer/importer/Importer.java +++ b/projectviewer/importer/Importer.java @@ -321,9 +321,7 @@ public abstract class Importer implements Runnable { return null; } - if (path.endsWith(File.separator)) { - path = path.substring(0, path.length() - File.separator.length()); - } + path = PVActions.stripSeparator(path); dirs = new Stack<String>(); vfs = VFSManager.getVFSForPath(path); @@ -343,9 +341,7 @@ public abstract class Importer implements Runnable { * BTW, it's interesting that it uses "File.separatorChar" * when all this is supposed to be URL-based. */ - if (path.endsWith(File.separator)) { - path = path.substring(0, path.length() - File.separator.length()); - } + path = PVActions.stripSeparator(path); } while (!dirs.isEmpty()) { @@ -431,11 +427,7 @@ public abstract class Importer implements Runnable { for (String url : children) { if (!flatten) { - String parent = vfs.getParentOfPath(url); - if (parent.endsWith(File.separator)) { - parent = parent.substring(0, parent.length() - File.separator.length()); - } - + String parent = PVActions.stripSeparator(vfs.getParentOfPath(url)); if (!parent.equals(dir)) { dest = constructPath(root, parent); dir = parent; ----------------------------------------------------------------------- Summary of changes: projectviewer/PVActions.java | 18 ++++++++++++++++++ projectviewer/action/SearchAction.java | 2 ++ projectviewer/importer/Importer.java | 14 +++----------- 3 files changed, 23 insertions(+), 11 deletions(-) hooks/post-receive -- ProjectViewer jEdit plugin |