From d89532435d728c4b8513af8d8e61613188e5c801 Mon Sep 17 00:00:00 2001 From: shuebnersr <32128158+shuebnersr@users.noreply.github.com> Date: Wed, 20 Sep 2017 14:26:04 +0200 Subject: [PATCH] search for matching line with java version do not just try to read java version from first line, but search for the matching line from java output --- lib/facter/java_version.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/facter/java_version.rb b/lib/facter/java_version.rb index 689b427..d7e36e1 100644 --- a/lib/facter/java_version.rb +++ b/lib/facter/java_version.rb @@ -23,7 +23,8 @@ Facter.add(:java_version) do setcode do unless [ 'openbsd', 'darwin' ].include? Facter.value(:operatingsystem).downcase if Facter::Util::Resolution.which('java') - Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.first.split(/"/)[1].strip + Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| return $~[1] if /^java version \"(.+)\"$/ =~ line } + nil end end end @@ -35,7 +36,8 @@ Facter.add(:java_version) do setcode do Facter::Util::Resolution.with_env("PATH" => '/usr/local/jdk-1.7.0/jre/bin:/usr/local/jre-1.7.0/bin') do if Facter::Util::Resolution.which('java') - Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.first.split(/"/)[1].strip + Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.lines.each { |line| return $~[1] if /^java version \"(.+)\"$/ =~ line } + nil end end end @@ -46,7 +48,8 @@ Facter.add(:java_version) do has_weight 100 setcode do unless /Unable to find any JVMs matching version/ =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1') - Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.first.split(/"/)[1].strip + Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.lines.each { |line| return $~[1] if /^java version \"(.+)\"$/ =~ line } + nil end end end