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

correction:
If used paired with *.isBMP.* it should be replaced by Surrogate.is() / Character.isValidCodePoint().

Reply via email to