Hey Vitaly, Thanks for clearing the way.
As all things seem to be clarified now, is there someone who is willing to sponsor the patch? Cheers, Christoph ====== PATCH ====== diff --git a/src/java.base/share/classes/java/lang/String.java b/src/java.base/share/classes/java/lang/String.jav --- a/src/java.base/share/classes/java/lang/String.java +++ b/src/java.base/share/classes/java/lang/String.java @@ -2177,11 +2177,13 @@ */ public String replace(CharSequence target, CharSequence replacement) { String tgtStr = target.toString(); - String replStr = replacement.toString(); int j = indexOf(tgtStr); if (j < 0) { + // Explicit nullcheck of replacement to fulfill NPE contract in early out + Objects.requireNonNull(replacement); return this; } + String replStr = replacement.toString(); int tgtLen = tgtStr.length(); int tgtLen1 = Math.max(tgtLen, 1); int thisLen = length();