private void izeEndings() {
    int old_k = k;
    
    if (endsIn('i', 'z', 'e')) {
      word.setLength(j + 1); /* try removing -ize entirely */
      k = j;
      if (lookup()) return;
      word.unsafeWrite('i');
      
      if (doubleC(j)) { /* allow for a doubled consonant */
        word.setLength(j);
        k = j - 1;
        if (lookup()) return;
        word.unsafeWrite(word.charAt(j - 1));
      }
      
      word.setLength(j + 1);
      word.unsafeWrite('e'); /* try removing -ize and adding -e */
      k = j + 1;
      if (lookup()) return;
      word.setLength(j + 1);
      word.append("ize");
      k = old_k;
      // nolookup()
    }
    return;
  }
*
YCS: this was the one place where lookup was not followed by return.
So restructure it. if ((j>0)&&(lookup(word.toString())) &&
!((word.charAt(j) == 's') && (word.charAt(j-1) == 's'))) return;
***
linguistics/src/main/java/com/yahoo/language/simple/kstem/KStemmer.java