From 20960ddb7f8761c63ef83aaf29482886ba77fe4f Mon Sep 17 00:00:00 2001 From: Jan Vansteenkiste Date: Wed, 1 Feb 2017 08:10:15 +0100 Subject: [PATCH 1/2] MODULES-4368: Add a test case for the issue --- spec/unit/facter/java_default_home_spec.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spec/unit/facter/java_default_home_spec.rb b/spec/unit/facter/java_default_home_spec.rb index b7b7bbe..41be89e 100644 --- a/spec/unit/facter/java_default_home_spec.rb +++ b/spec/unit/facter/java_default_home_spec.rb @@ -29,6 +29,14 @@ describe Facter::Util::Fact do end end end + context 'returns nil when readlink is present but java is not' do + it do + java_path_output = "" + Facter::Util::Resolution.expects(:which).with("readlink").returns(true) + Facter::Util::Resolution.expects(:exec).with("readlink -e /usr/bin/java").returns(java_path_output) + expect(Facter.value(:java_default_home)).to be_nil + end + end context 'returns nil when readlink not present' do it do From c0227ce82030d3f40069e9182a527051e4dc3f12 Mon Sep 17 00:00:00 2001 From: Jan Vansteenkiste Date: Wed, 1 Feb 2017 08:10:59 +0100 Subject: [PATCH 2/2] MODULES-4368: return nil if java_bin is not found (readlink result is empty) --- lib/facter/java_default_home.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/facter/java_default_home.rb b/lib/facter/java_default_home.rb index 9a70934..330f037 100644 --- a/lib/facter/java_default_home.rb +++ b/lib/facter/java_default_home.rb @@ -15,7 +15,9 @@ Facter.add(:java_default_home) do setcode do if Facter::Util::Resolution.which('readlink') java_bin = Facter::Util::Resolution.exec('readlink -e /usr/bin/java').strip - if java_bin =~ %r(/jre/) + if java_bin.empty? + nil + elsif java_bin =~ %r(/jre/) java_default_home = File.dirname(File.dirname(File.dirname(java_bin))) else java_default_home = File.dirname(File.dirname(java_bin))