JDK 13 RFR of JDK-8220346: Refactor java.lang.Throwable to use Objects.requireNonNull
Mandy Chung
mandy.chung at oracle.com
Fri Mar 8 20:17:39 UTC 2019
Looks good to me.
Mandy
On 3/8/19 3:08 AM, Joe Darcy wrote:
> Hello,
>
> The code in java.lang.Throwable has various explicit null checks that
> could be rewritten to use Objects.requireNonNull.
>
> Please review the patch below which implements this refactoring.
>
> Thanks,
>
> -Joe
>
> diff -r 274361bd6915 src/java.base/share/classes/java/lang/Throwable.java
> --- a/src/java.base/share/classes/java/lang/Throwable.java Thu Mar 07
> 10:22:19 2019 +0100
> +++ b/src/java.base/share/classes/java/lang/Throwable.java Fri Mar 08
> 02:06:42 2019 -0800
> @@ -874,8 +874,7 @@
> // Validate argument
> StackTraceElement[] defensiveCopy = stackTrace.clone();
> for (int i = 0; i < defensiveCopy.length; i++) {
> - if (defensiveCopy[i] == null)
> - throw new NullPointerException("stackTrace[" + i + "]");
> + Objects.requireNonNull(defensiveCopy[i], "stackTrace[" + i
> + "]");
> }
>
> synchronized (this) {
> @@ -914,8 +913,7 @@
> for (Throwable t : suppressedExceptions) {
> // Enforce constraints on suppressed exceptions in
> // case of corrupt or malicious stream.
> - if (t == null)
> - throw new
> NullPointerException(NULL_CAUSE_MESSAGE);
> + Objects.requireNonNull(t, NULL_CAUSE_MESSAGE);
> if (t == this)
> throw new
> IllegalArgumentException(SELF_SUPPRESSION_MESSAGE);
> suppressed.add(t);
> @@ -942,8 +940,7 @@
> stackTrace = null;
> } else { // Verify stack trace elements are non-null.
> for(StackTraceElement ste : stackTrace) {
> - if (ste == null)
> - throw new NullPointerException("null
> StackTraceElement in serial stream. ");
> + Objects.requireNonNull(ste, "null StackTraceElement
> in serial stream. ");
> }
> }
> } else {
> @@ -1034,8 +1031,7 @@
> if (exception == this)
> throw new
> IllegalArgumentException(SELF_SUPPRESSION_MESSAGE, exception);
>
> - if (exception == null)
> - throw new NullPointerException(NULL_CAUSE_MESSAGE);
> + Objects.requireNonNull(exception, NULL_CAUSE_MESSAGE);
>
> if (suppressedExceptions == null) // Suppressed exceptions not
> recorded
> return;
>
More information about the core-libs-dev
mailing list