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") + } } }