public boolean incrementToken() throws IOException { if (!morphQueue.isEmpty()) { restoreState(currentState); setAttributesFromQueue(false); return true; } while (input.incrementToken()) { final String type = typeAtt.type(); if (KOREAN_TYPE.equals(type)) { try { analysisKorean(termAtt.toString()); } catch (MorphException e) { throw new RuntimeException(e); } } else { return true; // pass anything else thru } if (!morphQueue.isEmpty()) { setAttributesFromQueue(true); return true; } } return false; }