< prev index next >

test/testlibrary/ctw/src/sun/hotspot/tools/ctw/PathHandler.java

Print this page




  22  */
  23 
  24 package sun.hotspot.tools.ctw;
  25 
  26 import jdk.internal.misc.Unsafe;
  27 
  28 import java.nio.file.Files;
  29 import java.nio.file.Path;
  30 import java.nio.file.Paths;
  31 import java.util.Objects;
  32 import java.util.concurrent.Executor;
  33 import java.util.concurrent.atomic.AtomicLong;
  34 import java.util.regex.Matcher;
  35 import java.util.regex.Pattern;
  36 
  37 /**
  38  * Abstract handler for path.
  39  * Concrete subclasses should implement method {@link #process()}.
  40  */
  41 public abstract class PathHandler {
  42     private static final Unsafe UNSAFE = jdk.test.lib.unsafe.UnsafeHelper.getUnsafe();
  43     private static final AtomicLong CLASS_COUNT = new AtomicLong(0L);
  44     private static volatile boolean CLASSES_LIMIT_REACHED = false;
  45     private static final Pattern JAR_IN_DIR_PATTERN
  46             = Pattern.compile("^(.*[/\\\\])?\\*$");
  47     protected final Path root;
  48     protected final Executor executor;
  49     private ClassLoader loader;
  50 
  51     /**
  52      * @param root     root path to process
  53      * @param executor executor used for process task invocation
  54      * @throws NullPointerException if {@code root} or {@code executor} is
  55      *                              {@code null}
  56      */
  57     protected PathHandler(Path root, Executor executor) {
  58         Objects.requireNonNull(root);
  59         Objects.requireNonNull(executor);
  60         this.root = root.normalize();
  61         this.executor = executor;
  62         this.loader = ClassLoader.getSystemClassLoader();




  22  */
  23 
  24 package sun.hotspot.tools.ctw;
  25 
  26 import jdk.internal.misc.Unsafe;
  27 
  28 import java.nio.file.Files;
  29 import java.nio.file.Path;
  30 import java.nio.file.Paths;
  31 import java.util.Objects;
  32 import java.util.concurrent.Executor;
  33 import java.util.concurrent.atomic.AtomicLong;
  34 import java.util.regex.Matcher;
  35 import java.util.regex.Pattern;
  36 
  37 /**
  38  * Abstract handler for path.
  39  * Concrete subclasses should implement method {@link #process()}.
  40  */
  41 public abstract class PathHandler {
  42     private static final Unsafe UNSAFE = Unsafe.getUnsafe();
  43     private static final AtomicLong CLASS_COUNT = new AtomicLong(0L);
  44     private static volatile boolean CLASSES_LIMIT_REACHED = false;
  45     private static final Pattern JAR_IN_DIR_PATTERN
  46             = Pattern.compile("^(.*[/\\\\])?\\*$");
  47     protected final Path root;
  48     protected final Executor executor;
  49     private ClassLoader loader;
  50 
  51     /**
  52      * @param root     root path to process
  53      * @param executor executor used for process task invocation
  54      * @throws NullPointerException if {@code root} or {@code executor} is
  55      *                              {@code null}
  56      */
  57     protected PathHandler(Path root, Executor executor) {
  58         Objects.requireNonNull(root);
  59         Objects.requireNonNull(executor);
  60         this.root = root.normalize();
  61         this.executor = executor;
  62         this.loader = ClassLoader.getSystemClassLoader();


< prev index next >