From b9949fe08d02ca5bb9d5e1ccc6ab9ec1b62d4465 Mon Sep 17 00:00:00 2001 From: Roberto Tyley Date: Tue, 7 Apr 2015 18:22:58 +0100 Subject: [PATCH] Fix Java-version parsing for openjdk --- bfg-benchmark/src/main/scala/JavaVersion.scala | 4 ++-- bfg-benchmark/src/test/scala/JavaVersionSpec.scala | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bfg-benchmark/src/main/scala/JavaVersion.scala b/bfg-benchmark/src/main/scala/JavaVersion.scala index 8469d180..000bb1e4 100644 --- a/bfg-benchmark/src/main/scala/JavaVersion.scala +++ b/bfg-benchmark/src/main/scala/JavaVersion.scala @@ -3,12 +3,12 @@ import scala.sys.process.{ProcessLogger, Process} import ExecutionContext.Implicits.global object JavaVersion { - val VersionRegex = """java version "(.*?)"""".r + val VersionRegex = """(?:java|openjdk) version "(.*?)"""".r def version(javaCmd: String): Future[String] = { val resultPromise = Promise[String]() - future { + Future { val exitCode = Process(s"$javaCmd -version")!ProcessLogger( s => for (v <-versionFrom(s)) resultPromise.success(v) ) diff --git a/bfg-benchmark/src/test/scala/JavaVersionSpec.scala b/bfg-benchmark/src/test/scala/JavaVersionSpec.scala index eff0c66d..fdff3273 100644 --- a/bfg-benchmark/src/test/scala/JavaVersionSpec.scala +++ b/bfg-benchmark/src/test/scala/JavaVersionSpec.scala @@ -7,5 +7,8 @@ object JavaVersionSpec extends Specification { "parse an example line" in { JavaVersion.versionFrom("""java version "1.7.0_51"""") should beSome("1.7.0_51") } + "parse openjdk weirdness" in { + JavaVersion.versionFrom("""openjdk version "1.8.0_40-internal"""") should beSome("1.8.0_40-internal") + } } }