< prev index next >

make/src/classes/build/tools/module/ImageBuilder.java

Print this page
rev 13848 : 8151987: jexec should be executable

@@ -45,10 +45,11 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.function.Consumer;
 import java.util.stream.Collectors;
 import jdk.internal.jimage.ImageFileCreator;
 
 /**
  * A tool for building a runtime image.

@@ -81,10 +82,11 @@
         boolean showUsage;
     }
 
     static class Option {
 
+        @FunctionalInterface
         interface Processing {
 
             void process(ImageBuilder task, String opt, String arg) throws BadArgs;
         }
 

@@ -348,16 +350,19 @@
         ImageFileHelper imageHelper = new ImageFileHelper(modules);
         imageHelper.createModularImage(options.output);
 
         // jspawnhelper, might be in lib or lib/ARCH
         Path jspawnhelper = Paths.get("jspawnhelper");
+        Path jexec = Paths.get("jexec");
         Path lib = options.output.resolve("lib");
-        Optional<Path> helper = Files.walk(lib, 2)
-                                     .filter(f -> f.getFileName().equals(jspawnhelper))
-                                     .findFirst();
-        if (helper.isPresent())
-            helper.get().toFile().setExecutable(true, false);
+        Files.walk(lib, 2).filter(f -> f.getFileName().equals(jspawnhelper) ||
+                                       f.getFileName().equals(jexec))
+                          .forEach(new Consumer<Path> () {
+                                  public void accept(Path p) {
+                                      p.toFile().setExecutable(true, false);
+                                  }
+                              });
     }
 
     private class ImageFileHelper {
         final Collection<String> modules;
         final Set<String> bootModules;
< prev index next >