diff options
author | Matthias Villiger | 2017-10-23 13:36:30 +0000 |
---|---|---|
committer | Matthias Villiger | 2017-10-24 12:15:54 +0000 |
commit | 753d10203eb78f87c05e536c1183b36bf18e261a (patch) | |
tree | f04f50b8fb21ee66adc52136c461bf78cf367fe1 | |
parent | ee15a1bb484c26cadcf9a7a57eb17bf37ccb9076 (diff) | |
download | org.eclipse.scout.sdk-753d10203eb78f87c05e536c1183b36bf18e261a.tar.gz org.eclipse.scout.sdk-753d10203eb78f87c05e536c1183b36bf18e261a.tar.xz org.eclipse.scout.sdk-753d10203eb78f87c05e536c1183b36bf18e261a.zip |
Bug 526363 - NoSuchFileException in JreInfo on Mac
Change-Id: I68c86ce0adfc6d1c560f40115499a9ed17e5f1cc
Reviewed-on: https://git.eclipse.org/r/110554
Tested-by: Hudson CI
Reviewed-by: Matthias Villiger <mvi@bsi-software.com>
-rw-r--r-- | org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/JreInfo.java | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/JreInfo.java b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/JreInfo.java index e1dfde984..c4978aa1c 100644 --- a/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/JreInfo.java +++ b/org.eclipse.scout.sdk.core/src/main/java/org/eclipse/scout/sdk/core/model/spi/internal/JreInfo.java @@ -17,9 +17,9 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Collections; import java.util.List; +import java.util.Optional; import java.util.stream.Stream; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.eclipse.scout.sdk.core.util.SdkException; @@ -87,31 +87,27 @@ public class JreInfo { } private List<Path> resolvePlatformLibrariesLegacy() { + // fall back to try to retrieve them out of the lib directory final Path jreHome = jreHome(); - final Stream<Path> libDirs; - final String osName = System.getProperty("os.name"); - if (StringUtils.isNotEmpty(osName) && osName.toLowerCase().startsWith("mac")) { - libDirs = Stream.of(jreHome.resolve("../Classes").normalize()); - } - else { - // fall back to try to retrieve them out of the lib directory - libDirs = Stream.of(jreHome.resolve("lib"), jreHome.resolve("lib/ext")); - } + final Stream<Path> libDirs = Stream.of(jreHome.resolve("lib"), jreHome.resolve("lib/ext")); final List<Path> result = libDirs .flatMap(JreInfo::listFiles) .filter(JreInfo::isArchive) .collect(toList()); - final Path classesDir = jreHome.resolve("classes"); - if (Files.isReadable(classesDir) && Files.isDirectory(classesDir)) { - result.add(classesDir); - } + Optional.of(jreHome.resolve("classes")) + .filter(Files::isReadable) + .filter(Files::isDirectory) + .ifPresent(result::add); return result; } private static Stream<Path> listFiles(final Path directory) { + if (!Files.isReadable(directory) || !Files.isDirectory(directory)) { + return Stream.empty(); + } try { return Files.list(directory); } |