<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Sean,<div class=""><br class=""></div><div class="">All 3 instances of @exception in DHPrivateKey are now replaced with @throws, added ProviderException similar to other constructor of DHPrivateKey.</div><div class=""><br class=""></div><div class=""><u class="">Updated patch:</u></div><div class=""><br class=""></div><div class=""><div class="">--- old/src/java.base/share/classes/com/sun/crypto/provider/DHPrivateKey.java<span class="Apple-tab-span" style="white-space:pre">   </span>2020-08-14 23:55:40.921599987 +0530</div><div class="">+++ new/src/java.base/share/classes/com/sun/crypto/provider/DHPrivateKey.java<span class="Apple-tab-span" style="white-space:pre">  </span>2020-08-14 23:55:40.417581423 +0530</div><div class="">@@ -80,7 +80,7 @@</div><div class="">      * @param p the prime modulus</div><div class="">      * @param g the base generator</div><div class="">      *</div><div class="">-     * @exception ProviderException if the key cannot be encoded</div><div class="">+     * @throws ProviderException if the key cannot be encoded</div><div class="">      */</div><div class="">     DHPrivateKey(BigInteger x, BigInteger p, BigInteger g)</div><div class="">         throws InvalidKeyException {</div><div class="">@@ -97,7 +97,7 @@</div><div class="">      * @param g the base generator</div><div class="">      * @param l the private-value length</div><div class="">      *</div><div class="">-     * @exception InvalidKeyException if the key cannot be encoded</div><div class="">+     * @throws ProviderException if the key cannot be encoded</div><div class="">      */</div><div class="">     DHPrivateKey(BigInteger x, BigInteger p, BigInteger g, int l) {</div><div class="">         this.x = x;</div><div class="">@@ -118,7 +118,7 @@</div><div class="">      *</div><div class="">      * @param encodedKey the encoded key</div><div class="">      *</div><div class="">-     * @exception InvalidKeyException if the encoded key does not represent</div><div class="">+     * @throws InvalidKeyException if the encoded key does not represent</div><div class="">      * a Diffie-Hellman private key</div><div class="">      */</div><div class="">     DHPrivateKey(byte[] encodedKey) throws InvalidKeyException {</div><div class="">--- old/src/java.base/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java<span class="Apple-tab-span" style="white-space:pre"> </span>2020-08-14 23:55:41.953638446 +0530</div><div class="">+++ new/src/java.base/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java<span class="Apple-tab-span" style="white-space:pre">  </span>2020-08-14 23:55:41.445619497 +0530</div><div class="">@@ -1,5 +1,5 @@</div><div class=""> /*</div><div class="">- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.</div><div class="">+ * Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.</div><div class="">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.</div><div class="">  *</div><div class="">  * This code is free software; you can redistribute it and/or modify it</div><div class="">@@ -208,7 +208,7 @@</div><div class="">      *</div><div class="">      * @return a CallSite, which, when invoked, will return an instance of the</div><div class="">      * functional interface</div><div class="">-     * @throws ReflectiveOperationException</div><div class="">+     * @throws LambdaConversionException</div><div class="">      */</div><div class="">     abstract CallSite buildCallSite()</div><div class="">             throws LambdaConversionException;</div><div class="">--- old/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java<span class="Apple-tab-span" style="white-space:pre">        </span>2020-08-14 23:55:42.977677096 +0530</div><div class="">+++ new/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java<span class="Apple-tab-span" style="white-space:pre">  </span>2020-08-14 23:55:42.473658062 +0530</div><div class="">@@ -200,7 +200,6 @@</div><div class="">      *</div><div class="">      * @return a CallSite, which, when invoked, will return an instance of the</div><div class="">      * functional interface</div><div class="">-     * @throws ReflectiveOperationException</div><div class="">      * @throws LambdaConversionException If properly formed functional interface</div><div class="">      * is not found</div><div class="">      */</div><div class="">--- old/src/java.base/share/classes/java/math/BigDecimal.java<span class="Apple-tab-span" style="white-space:pre">        </span>2020-08-14 23:55:44.409731999 +0530</div><div class="">+++ new/src/java.base/share/classes/java/math/BigDecimal.java<span class="Apple-tab-span" style="white-space:pre">  </span>2020-08-14 23:55:43.889711942 +0530</div><div class="">@@ -5403,7 +5403,7 @@</div><div class="">      *</div><div class="">      * @param n the numerator; must be negative</div><div class="">      * @param d the denominator; must not be unity</div><div class="">-     * @return a two-element {@long} array with the remainder and quotient in</div><div class="">+     * @return a two-element {@code long} array with the remainder and quotient in</div><div class="">      *         the initial and final elements, respectively</div><div class="">      */</div><div class="">     private static long[] divRemNegativeLong(long n, long d) {</div><div class="">--- old/src/java.base/share/classes/java/math/MutableBigInteger.java<span class="Apple-tab-span" style="white-space:pre">    </span>2020-08-14 23:55:45.905790246 +0530</div><div class="">+++ new/src/java.base/share/classes/java/math/MutableBigInteger.java<span class="Apple-tab-span" style="white-space:pre">   </span>2020-08-14 23:55:45.397770378 +0530</div><div class="">@@ -145,7 +145,6 @@</div><div class="">      * Makes this number an {@code n}-int number all of whose bits are ones.</div><div class="">      * Used by Burnikel-Ziegler division.</div><div class="">      * @param n number of ints in the {@code value} array</div><div class="">-     * @return a number equal to {@code ((1<<(32*n)))-1}</div><div class="">      */</div><div class="">     private void ones(int n) {</div><div class="">         if (n > value.length)</div><div class="">--- old/src/java.base/share/classes/java/net/ServerSocket.java<span class="Apple-tab-span" style="white-space:pre">        </span>2020-08-14 23:55:46.961831962 +0530</div><div class="">+++ new/src/java.base/share/classes/java/net/ServerSocket.java<span class="Apple-tab-span" style="white-space:pre"> </span>2020-08-14 23:55:46.449811716 +0530</div><div class="">@@ -1,5 +1,5 @@</div><div class=""> /*</div><div class="">- * Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.</div><div class="">+ * Copyright (c) 1995, 2020, Oracle and/or its affiliates. All rights reserved.</div><div class="">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.</div><div class="">  *</div><div class="">  * This code is free software; you can redistribute it and/or modify it</div><div class="">@@ -315,7 +315,7 @@</div><div class="">     /**</div><div class="">      * Creates the socket implementation.</div><div class="">      *</div><div class="">-     * @throws IOException if creation fails</div><div class="">+     * @throws SocketException if creation fails</div><div class="">      * @since 1.4</div><div class="">      */</div><div class="">     void createImpl() throws SocketException {</div><div class="">--- old/src/java.base/share/classes/java/net/Socket.java<span class="Apple-tab-span" style="white-space:pre">    </span>2020-08-14 23:55:48.001873514 +0530</div><div class="">+++ new/src/java.base/share/classes/java/net/Socket.java<span class="Apple-tab-span" style="white-space:pre">       </span>2020-08-14 23:55:47.493853209 +0530</div><div class="">@@ -533,7 +533,7 @@</div><div class="">      *</div><div class="">      * @param stream a {@code boolean} value : {@code true} for a TCP socket,</div><div class="">      *               {@code false} for UDP.</div><div class="">-     * @throws IOException if creation fails</div><div class="">+     * @throws SocketException if creation fails</div><div class="">      * @since 1.4</div><div class="">      */</div><div class="">      void createImpl(boolean stream) throws SocketException {</div><div class="">--- old/src/java.base/share/classes/sun/reflect/annotation/AnnotationParser.java<span class="Apple-tab-span" style="white-space:pre">  </span>2020-08-14 23:55:49.061916354 +0530</div><div class="">+++ new/src/java.base/share/classes/sun/reflect/annotation/AnnotationParser.java<span class="Apple-tab-span" style="white-space:pre">       </span>2020-08-14 23:55:48.549895649 +0530</div><div class="">@@ -1,5 +1,5 @@</div><div class=""> /*</div><div class="">- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.</div><div class="">+ * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.</div><div class="">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.</div><div class="">  *</div><div class="">  * This code is free software; you can redistribute it and/or modify it</div><div class="">@@ -773,7 +773,7 @@</div><div class="">      * an "annotation structure" OR two bytes into an annotation</div><div class="">      * structure (i.e., after the type index).</div><div class="">      *</div><div class="">-     * @parameter complete true if the byte buffer points to the beginning</div><div class="">+     * @param complete true if the byte buffer points to the beginning</div><div class="">      *     of an annotation structure (rather than two bytes in).</div><div class="">      */</div><div class="">     private static void skipAnnotation(ByteBuffer buf, boolean complete) {</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Regards,</div><div class="">Vipin<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Aug 13, 2020, at 10:55 PM, Sean Mullan <<a href="mailto:sean.mullan@oracle.com" class="">sean.mullan@oracle.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">On 8/13/20 1:21 PM, Jonathan Gibbons wrote:<br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class="">--- old/src/java.base/share/classes/com/sun/crypto/provider/DHPrivateKey.java <br class="">2020-07-25 23:46:21.233726447 +0530<br class="">+++ new/src/java.base/share/classes/com/sun/crypto/provider/DHPrivateKey.java <br class="">2020-07-25 23:46:20.721720857 +0530<br class="">@@ -96,8 +96,6 @@<br class="">       * @param p the prime modulus<br class="">       * @param g the base generator<br class="">       * @param l the private-value length<br class="">-     *<br class="">-     * @exception InvalidKeyException if the key cannot be encoded<br class=""></blockquote></blockquote><br class="">This should actually remain, but it should be ProviderException which is a RuntimeException. See the other DHPrivateKey ctor as that specifies it correctly.<br class=""><br class="">--Sean<br class=""></blockquote>I note the use of `@exception`, as compared to `@throws`, which is more common.<br class="">Stats:<br class="">`@exception` 7322 occurrences<br class="">`@throws` 21173 occurrences<br class="">That's probably too many `@exception` to clean up. :-(<br class=""></blockquote><br class="">Right, that's probably a separate cleanup activity. However, if you want to change the 3 instances of @exception to @throws in DHPrivateKey, I'm fine with that.<br class=""><br class="">--Sean<br class=""></div></div></blockquote></div><br class=""></div></body></html>