diff --git a/src/share/classes/sun/nio/cs/Surrogate.java b/src/share/classes/sun/nio/cs/Surrogate.java --- a/src/share/classes/sun/nio/cs/Surrogate.java +++ b/src/share/classes/sun/nio/cs/Surrogate.java @@ -294,7 +294,7 @@ dst.put((char)uc); error = null; return 1; - } else if (Character.isSupplementaryCodePoint(uc)) { + } else if (Character.isValidCodePoint(uc)) { if (dst.remaining()< 2) { error = CoderResult.OVERFLOW; return -1; @@ -338,7 +338,7 @@ da[dp] = (char)uc; error = null; return 1; - } else if (Character.isSupplementaryCodePoint(uc)) { + } else if (Character.isValidCodePoint(uc)) { if (dl - dp< 2) { error = CoderResult.OVERFLOW; return -1;
Have you searched for usages of Surrogate.isNeededFor() and Character.isSupplementaryCodePoint() in sun.nio.cs.**.* and elsewhere? If used paired with *.isBMP.* it should be replaced by Surrogate.isBMP() / Character.isBMPCodePoint().
-Ulf