<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi,<br>
      <br>
      While testing for the attached regex changes, a fatal vm init
      error was triggered for test<br>
      case with -Djava.security.debug=xyz turned on, as showed in
      following stacktrace.<br>
      <br>
      It appears sun.security.util.Debug is being initialized even
      before the lambda is ready<br>
      for use, and unfortunately it uses j.u.regex (for its args
      parsing), which is being migrated<br>
      to use lambda function in the proposed regex change.<br>
      <br>
      Since Debug is the only class now triggers j.u.regex -> lambda
      during initialization, it<br>
      is suggested to update/rewrite the related method in Debug to NOT
      use j.u.regex to<br>
      solve/workaround this specific initialization issue.<br>
      <br>
      The webrev below has been updated to include such a change.<br>
      <br>
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/webrev/">http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/webrev/</a>
      <br>
      <br>
      The sun.security.util.Debug related change is at<br>
      <br>
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/webrev/src/java.base/share/classes/sun/security/util/Debug.java.sdiff.html">http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/webrev/src/java.base/share/classes/sun/security/util/Debug.java.sdiff.html</a><br>
      <br>
      Can security-dev guys help take a look if this is an
      acceptable/reasonable approach.<br>
      <br>
      Thanks,<br>
      Sherman<br>
      <br>
-----------------------------------------------------------------------------<br>
      <span class="Apple-style-span" style="border-collapse: separate;
        color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style:
        normal; font-variant: normal; font-weight: normal;
        letter-spacing: normal; line-height: normal; orphans: 2;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; font-size: medium;">
        <pre style="word-wrap: break-word; white-space: pre-wrap;">Caused by: java.lang.ExceptionInInitializerError</pre>
      </span><br>
      <span class="Apple-style-span" style="border-collapse: separate;
        color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style:
        normal; font-variant: normal; font-weight: normal;
        letter-spacing: normal; line-height: normal; orphans: 2;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; font-size: medium;"></span><span
        class="Apple-style-span" style="border-collapse: separate;
        color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style:
        normal; font-variant: normal; font-weight: normal;
        letter-spacing: normal; line-height: normal; orphans: 2;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; font-size: medium;">
        <pre style="word-wrap: break-word; white-space: pre-wrap;">     at jdk.internal.loader.BootLoader.loadClassOrNull(java.base/BootLoader.java:110)
        at java.lang.invoke.BoundMethodHandle$Factory$1.apply(java.base/BoundMethodHandle.java:497)
        at java.lang.invoke.BoundMethodHandle$Factory$1.apply(java.base/BoundMethodHandle.java:492)
...
        at java.lang.invoke.MethodHandleNatives.linkCallSite(java.base/MethodHandleNatives.java:240)
        at java.util.regex.Pattern.<clinit>(java.base/Pattern.java:5682)
        at sun.security.util.Debug.marshal(java.base/Debug.java:247)
        at sun.security.util.Debug.<clinit>(java.base/Debug.java:59)
        at java.security.ProtectionDomain.<clinit>(java.base/ProtectionDomain.java:142)
        at jdk.internal.misc.InnocuousThread.<clinit>(java.base/InnocuousThread.java:129)
        at jdk.internal.ref.CleanerFactory$1$1.run(java.base/CleanerFactory.java:48)
        at jdk.internal.ref.CleanerFactory$1$1.run(java.base/CleanerFactory.java:45)
        at java.security.AccessController.doPrivileged(java.base/Native Method)
        at jdk.internal.ref.CleanerFactory$1.newThread(java.base/CleanerFactory.java:45)
        at jdk.internal.ref.CleanerImpl.start(java.base/CleanerImpl.java:116)
        at java.lang.ref.Cleaner.create(java.base/Cleaner.java:203)
        at jdk.internal.ref.CleanerFactory.<clinit>(java.base/CleanerFactory.java:42)
        at sun.nio.fs.NativeBuffer.<init>(java.base/NativeBuffer.java:60)
        at sun.nio.fs.NativeBuffers.allocNativeBuffer(java.base/NativeBuffers.java:49)
        at sun.nio.fs.UnixNativeDispatcher.copyToNativeBuffer(java.base/UnixNativeDispatcher.java:44)
        at sun.nio.fs.UnixNativeDispatcher.stat(java.base/UnixNativeDispatcher.java:306)
        at sun.nio.fs.UnixFileSystemProvider.isRegularFile(java.base/UnixFileSystemProvider.java:514)
        at java.nio.file.Files.isRegularFile(java.base/Files.java:2244)
        at java.lang.module.ModuleFinder.ofSystem(java.base/ModuleFinder.java:165)
        at jdk.internal.module.ModuleBootstrap.boot(java.base/ModuleBootstrap.java:105)
        at java.lang.System.initPhase2(java.base/System.java:1924)</pre>
      </span>---------------------------------------------------------------------------------<br>
      <br>
      <br>
      On 3/18/16 1:05 PM, Xueming Shen wrote:<br>
    </div>
    <blockquote cite="mid:56EC5F76.4080106@oracle.com" type="cite">Hi,
      <br>
      <br>
      There are couple regex related changes waiting for review. I have
      pull them
      <br>
      together here (with the notes) to make it easy to review.
      <br>
      <br>
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/webrev/">http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/webrev/</a>
      <br>
      <br>
      (1) Exponential backtracking
      <br>
      <br>
      Note:
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/backtracking">http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/backtracking</a><br>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-6328855">https://bugs.openjdk.java.net/browse/JDK-6328855</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-6192895">https://bugs.openjdk.java.net/browse/JDK-6192895</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-6345469">https://bugs.openjdk.java.net/browse/JDK-6345469</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-6988218">https://bugs.openjdk.java.net/browse/JDK-6988218</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-6693451">https://bugs.openjdk.java.net/browse/JDK-6693451</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-7006761">https://bugs.openjdk.java.net/browse/JDK-7006761</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8140212">https://bugs.openjdk.java.net/browse/JDK-8140212</a>
      <br>
      <br>
      (2) Anonymous class to lambda function cleanup
      <br>
      <br>
      Note:
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/lambdafunction">http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/lambdafunction</a><br>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8151481">https://bugs.openjdk.java.net/browse/JDK-8151481</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-6609854">https://bugs.openjdk.java.net/browse/JDK-6609854</a>
      <br>
      <br>
      (3) Canonical Equivalents
      <br>
      <br>
      Note:
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/canonEQ">http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/canonEQ</a><br>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-4916384">https://bugs.openjdk.java.net/browse/JDK-4916384</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-4867170">https://bugs.openjdk.java.net/browse/JDK-4867170</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-6995635">https://bugs.openjdk.java.net/browse/JDK-6995635</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-6728861">https://bugs.openjdk.java.net/browse/JDK-6728861</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-6736245">https://bugs.openjdk.java.net/browse/JDK-6736245</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-7080302">https://bugs.openjdk.java.net/browse/JDK-7080302</a>
      <br>
      <br>
      Thanks
      <br>
      Sherman
      <br>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>