From f817aa025f8f59aeedef7d6b035bcd8f10d10f71 Mon Sep 17 00:00:00 2001 From: caalador Date: Thu, 28 Mar 2024 10:42:05 +0200 Subject: [PATCH] fix: path separator in vfs (#19061) Fix decision on file separator character according to string instead of OS. Fix ide test to use same format for file path. Fixes #19046 --- .../vaadin/base/devserver/startup/DevModeInitializer.java | 2 +- .../com/vaadin/base/devserver/OpenInCurrentIdeTest.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/vaadin-dev-server/src/main/java/com/vaadin/base/devserver/startup/DevModeInitializer.java b/vaadin-dev-server/src/main/java/com/vaadin/base/devserver/startup/DevModeInitializer.java index 515db731155..67b2bc729b9 100644 --- a/vaadin-dev-server/src/main/java/com/vaadin/base/devserver/startup/DevModeInitializer.java +++ b/vaadin-dev-server/src/main/java/com/vaadin/base/devserver/startup/DevModeInitializer.java @@ -469,7 +469,7 @@ private static File getPhysicalFileOfJBossVfsJar(URL url) String vfsJarPath = url.toString(); String fileNamePrefix = vfsJarPath.substring( vfsJarPath.lastIndexOf( - FrontendUtils.isWindows() ? '\\' : '/') + 1, + vfsJarPath.contains("\\") ? '\\' : '/') + 1, vfsJarPath.lastIndexOf(".jar")); Path tempJar = Files.createTempFile(fileNamePrefix, ".jar"); diff --git a/vaadin-dev-server/src/test/java/com/vaadin/base/devserver/OpenInCurrentIdeTest.java b/vaadin-dev-server/src/test/java/com/vaadin/base/devserver/OpenInCurrentIdeTest.java index 67212cd1f2b..680b1360795 100644 --- a/vaadin-dev-server/src/test/java/com/vaadin/base/devserver/OpenInCurrentIdeTest.java +++ b/vaadin-dev-server/src/test/java/com/vaadin/base/devserver/OpenInCurrentIdeTest.java @@ -9,9 +9,12 @@ import java.util.Optional; import org.junit.Assert; +import org.junit.Assume; import org.junit.Test; import org.mockito.Mockito; +import com.vaadin.open.OSUtils; + public class OpenInCurrentIdeTest { @Test @@ -46,7 +49,8 @@ public void ideaOnMacDetected() throws IOException { // The binary on Mac is /.../IntelliJ IDEA.app/Contents/MacOS/idea Assert.assertEquals( new File(baseDirectory, "MacOS/idea").getAbsolutePath(), - OpenInCurrentIde.getBinary(ideCommand.get())); + new File(OpenInCurrentIde.getBinary(ideCommand.get())) + .getAbsolutePath()); } @@ -605,6 +609,8 @@ private Info mock(String cmd, String cmdline) { @Test public void runThrowsExceptionOnFailure() throws InterruptedException { + Assume.assumeFalse(OSUtils.isWindows()); + try { OpenInCurrentIde.run("/bin/sh", "-c", "echo 'output1'; echo 'output2'; exit 123");