From 68b0112d0aefc10eb55b7fcb269a0c3aff842d17 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Fri, 16 Aug 2019 00:37:06 -0700 Subject: [PATCH 1/4] [SPARK-28756][R] Fix checkJavaVersion to accept JDK8+ --- R/pkg/DESCRIPTION | 2 +- R/pkg/R/client.R | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/R/pkg/DESCRIPTION b/R/pkg/DESCRIPTION index 3d31be809be61..6a83e00dff79f 100644 --- a/R/pkg/DESCRIPTION +++ b/R/pkg/DESCRIPTION @@ -13,7 +13,7 @@ Authors@R: c(person("Shivaram", "Venkataraman", role = c("aut", "cre"), License: Apache License (== 2.0) URL: https://www.apache.org/ https://spark.apache.org/ BugReports: https://spark.apache.org/contributing.html -SystemRequirements: Java (== 8) +SystemRequirements: Java (>= 8) Depends: R (>= 3.1), methods diff --git a/R/pkg/R/client.R b/R/pkg/R/client.R index 660f0864403e0..8b37c3edeeb71 100644 --- a/R/pkg/R/client.R +++ b/R/pkg/R/client.R @@ -91,10 +91,15 @@ checkJavaVersion <- function() { }, javaVersionOut) javaVersionStr <- strsplit(javaVersionFilter[[1]], "[\"]")[[1L]][2] - # javaVersionStr is of the form 1.8.0_92. - # Extract 8 from it to compare to sparkJavaVersion - javaVersionNum <- as.integer(strsplit(javaVersionStr, "[.]")[[1L]][2]) - if (javaVersionNum != sparkJavaVersion) { + # javaVersionStr is of the form 1.8.0_92/9.0.x/11.0.x. + # We are using 8, 9, 10, 11 for sparkJavaVersion. + versions = strsplit(javaVersionStr, "[.]")[[1L]] + if ("1" == versions[1]) { + javaVersionNum <- as.integer(versions[2]) + } else { + javaVersionNum <- as.integer(versions[1]) + } + if (javaVersionNum < sparkJavaVersion) { stop(paste("Java version", sparkJavaVersion, "is required for this package; found version:", javaVersionStr)) } From d15bd85b967ee5a0621467fbd7b901545cc6eb2a Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Fri, 16 Aug 2019 02:58:01 -0700 Subject: [PATCH 2/4] Address comments --- R/pkg/R/client.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/pkg/R/client.R b/R/pkg/R/client.R index 8b37c3edeeb71..7236a183e5d75 100644 --- a/R/pkg/R/client.R +++ b/R/pkg/R/client.R @@ -95,12 +95,12 @@ checkJavaVersion <- function() { # We are using 8, 9, 10, 11 for sparkJavaVersion. versions = strsplit(javaVersionStr, "[.]")[[1L]] if ("1" == versions[1]) { - javaVersionNum <- as.integer(versions[2]) + javaVersionNum <- as.integer(versions[2]) } else { - javaVersionNum <- as.integer(versions[1]) + javaVersionNum <- as.integer(versions[1]) } if (javaVersionNum < sparkJavaVersion) { - stop(paste("Java version", sparkJavaVersion, "is required for this package; found version:", + stop(paste("Java version", sparkJavaVersion, ", or greater, is required for this package; found version:", javaVersionStr)) } return(javaVersionNum) From 22e11b2e5f567947cdf7377fcd556643463fb9f4 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Fri, 16 Aug 2019 03:35:49 -0700 Subject: [PATCH 3/4] fix --- R/pkg/R/client.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/pkg/R/client.R b/R/pkg/R/client.R index 7236a183e5d75..111c4c0f6cfe5 100644 --- a/R/pkg/R/client.R +++ b/R/pkg/R/client.R @@ -100,7 +100,8 @@ checkJavaVersion <- function() { javaVersionNum <- as.integer(versions[1]) } if (javaVersionNum < sparkJavaVersion) { - stop(paste("Java version", sparkJavaVersion, ", or greater, is required for this package; found version:", + stop(paste("Java version", sparkJavaVersion, + ", or greater, is required for this package; found version:", javaVersionStr)) } return(javaVersionNum) From 4531ced5892da7aee890c29027cf66b487375b39 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Fri, 16 Aug 2019 04:09:43 -0700 Subject: [PATCH 4/4] fix --- R/pkg/R/client.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/pkg/R/client.R b/R/pkg/R/client.R index 111c4c0f6cfe5..3299346bce007 100644 --- a/R/pkg/R/client.R +++ b/R/pkg/R/client.R @@ -93,7 +93,7 @@ checkJavaVersion <- function() { javaVersionStr <- strsplit(javaVersionFilter[[1]], "[\"]")[[1L]][2] # javaVersionStr is of the form 1.8.0_92/9.0.x/11.0.x. # We are using 8, 9, 10, 11 for sparkJavaVersion. - versions = strsplit(javaVersionStr, "[.]")[[1L]] + versions <- strsplit(javaVersionStr, "[.]")[[1L]] if ("1" == versions[1]) { javaVersionNum <- as.integer(versions[2]) } else {