if (start < 0 || end >= count || start > end)
if (start < 0 || end > count || start > end)
  public synchronized int codePointCount(int start, int end)  {    if (start < 0 || end >= count || start > end)      throw new StringIndexOutOfBoundsException();    start += offset;    end += offset;    int count = 0;    while (start < end)      {	char base = value[start];	if (base < Character.MIN_HIGH_SURROGATE	    || base > Character.MAX_HIGH_SURROGATE	    || start == end	    || start == count	    || value[start + 1] < Character.MIN_LOW_SURROGATE	    || value[start + 1] > Character.MAX_LOW_SURROGATE)	  {	    // Nothing.	  }	else	  {	    // Surrogate pair.	    ++start;	  }	++start;	++count;      }    return count;  }