JDK 13 RFR of JDK-8220346: Refactor java.lang.Throwable to use Objects.requireNonNull

Tagir Valeev amaembo at gmail.com
Fri Mar 8 11:56:23 UTC 2019


Hello!

> 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
> + "]");

Won't it produce unnecessary garbage due to string concatenation on
the common case when all frames are non-null?

With best regards,
Tagir Valeev.


More information about the core-libs-dev mailing list