From 8fc0dbd88b90e356805c327dc25f9b6b81d562d3 Mon Sep 17 00:00:00 2001 From: Jesse Bowes Date: Wed, 14 Jan 2015 21:58:44 -0500 Subject: [PATCH 1/3] [JENKINS-26436] More robust search for RVM rubies. --- .../java/hudson/plugins/rake/RvmUtil.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/hudson/plugins/rake/RvmUtil.java b/src/main/java/hudson/plugins/rake/RvmUtil.java index 5a9ec01..dd64e88 100644 --- a/src/main/java/hudson/plugins/rake/RvmUtil.java +++ b/src/main/java/hudson/plugins/rake/RvmUtil.java @@ -47,13 +47,13 @@ public static RubyInstallation[] getRvmRubies(Rvm rvm) { String newpath = ""; FilePath specifications = getSpecifications(gemCandidate); if (specifications != null) { - Collection specs = specifications.list(rakeFilter); - if (specs == null || specs.size() == 0) { + Collection specs = getRakeSpecifications(specifications); + if (specs.size() == 0) { // We did not find the rake gem in this gemset's bin directory; check in global specifications = getSpecifications(global); if (specifications != null) { - specs = specifications.list(rakeFilter); - if (specs == null || specs.size() == 0) { + specs = getRakeSpecifications(specifications); + if (specs.size() == 0) { // Rake not found in global either; this gemset is unusable continue; } else { @@ -177,5 +177,17 @@ public boolean accept(File pathname) { } } + private static Collection getRakeSpecifications(FilePath specifications) + throws InterruptedException, IOException { + Collection rakeSpecs = new LinkedHashSet(); + rakeSpecs.addAll(specifications.list(rakeFilter)); + + for(FilePath subDirectory: specifications.listDirectories()) { + rakeSpecs.addAll(subDirectory.list(rakeFilter)); + } + return rakeSpecs; + } + + private static FileFilter rakeFilter = new RakeSpecFilter(); } From 712753156dfc0c4190d1bb3a004adfddaf338181 Mon Sep 17 00:00:00 2001 From: Jesse Bowes Date: Thu, 15 Jan 2015 09:18:13 -0500 Subject: [PATCH 2/3] [JENKINS-26436] Fixed possible issue with null --- src/main/java/hudson/plugins/rake/RvmUtil.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/hudson/plugins/rake/RvmUtil.java b/src/main/java/hudson/plugins/rake/RvmUtil.java index dd64e88..4aad038 100644 --- a/src/main/java/hudson/plugins/rake/RvmUtil.java +++ b/src/main/java/hudson/plugins/rake/RvmUtil.java @@ -180,10 +180,18 @@ public boolean accept(File pathname) { private static Collection getRakeSpecifications(FilePath specifications) throws InterruptedException, IOException { Collection rakeSpecs = new LinkedHashSet(); - rakeSpecs.addAll(specifications.list(rakeFilter)); + + FilePath specs = specifications.list(rakeFilter); + if(specs != null) { + rakeSpecs.addAll(specs); + } + for(FilePath subDirectory: specifications.listDirectories()) { - rakeSpecs.addAll(subDirectory.list(rakeFilter)); + specs = subDirectory.list(rakeFilter); + if(specs != null) { + rakeSpecs.addAll(specs); + } } return rakeSpecs; } From ca8d0fac2cf6fd6782b2bf25a56275b8535ac6f5 Mon Sep 17 00:00:00 2001 From: Jesse Bowes Date: Thu, 15 Jan 2015 09:23:15 -0500 Subject: [PATCH 3/3] [JENKINS-26436] Fixed possible issue with null --- src/main/java/hudson/plugins/rake/RvmUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/hudson/plugins/rake/RvmUtil.java b/src/main/java/hudson/plugins/rake/RvmUtil.java index 4aad038..49b7899 100644 --- a/src/main/java/hudson/plugins/rake/RvmUtil.java +++ b/src/main/java/hudson/plugins/rake/RvmUtil.java @@ -180,8 +180,8 @@ public boolean accept(File pathname) { private static Collection getRakeSpecifications(FilePath specifications) throws InterruptedException, IOException { Collection rakeSpecs = new LinkedHashSet(); - - FilePath specs = specifications.list(rakeFilter); + + List specs = specifications.list(rakeFilter); if(specs != null) { rakeSpecs.addAll(specs); }