<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>