From 5c5fed3bc928636929998fd6c3bf89db1d111ed6 Mon Sep 17 00:00:00 2001 From: nsingh Date: Mon, 6 Feb 2017 12:57:23 -0800 Subject: [PATCH] Test disabling SNIExtension due to failing concourse tests Some tests are failing in concourse due to handshake alert: unrecognized_name --- .../project/harness/ProjectsHarness.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/vscode-extensions/vscode-boot-properties/src/test/java/org/springframework/ide/vscode/project/harness/ProjectsHarness.java b/vscode-extensions/vscode-boot-properties/src/test/java/org/springframework/ide/vscode/project/harness/ProjectsHarness.java index 7f56c7744..5613847f3 100644 --- a/vscode-extensions/vscode-boot-properties/src/test/java/org/springframework/ide/vscode/project/harness/ProjectsHarness.java +++ b/vscode-extensions/vscode-boot-properties/src/test/java/org/springframework/ide/vscode/project/harness/ProjectsHarness.java @@ -21,6 +21,7 @@ import org.springframework.ide.vscode.commons.maven.MavenBuilder; import org.springframework.ide.vscode.commons.maven.MavenCore; import org.springframework.ide.vscode.commons.maven.java.MavenJavaProject; import org.springframework.ide.vscode.commons.maven.java.classpathfile.JavaProjectWithClasspathFile; +import org.springframework.ide.vscode.commons.util.ExceptionUtil; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; @@ -61,6 +62,11 @@ public class ProjectsHarness { }); } + protected void enableSNIExtension(boolean enable) { + String enableVal = Boolean.toString(enable); + System.setProperty("jsse.enableSNIExtension", enableVal); + } + protected Path getProjectPath(String name) throws URISyntaxException, IOException { // URI sourceLocation = ProjectsHarness.class.getProtectionDomain().getCodeSource().getLocation().toURI(); // // file:/Users/aboyko/git/sts4/vscode-extensions/commons/project-test-harness/target/project-test-harness-0.0.1-SNAPSHOT.jar @@ -152,7 +158,23 @@ public class ProjectsHarness { // } public MavenJavaProject mavenProject(String name) throws Exception { - return (MavenJavaProject) project(ProjectType.MAVEN, name); + try { + return (MavenJavaProject) project(ProjectType.MAVEN, name); + } catch (Exception e) { + // For maven, on concourse builds sometimes a handshake a + // Disable SNI + /// Possible SSL handshake issue when some server return "unrecognised name". + // Workaroud seems to disable SNI Extension before the project actually gets used + String message = ExceptionUtil.getMessage(e); + if (message != null && message.contains("unrecognized_name")) { + boolean enable = false; + enableSNIExtension(enable); + return (MavenJavaProject) project(ProjectType.MAVEN, name); + } + else { + throw e; + } + } } public IJavaProject javaProjectWithClasspathFile(String name) throws Exception {