e0 = s0.next(); if (e0 == CollationElementIterator.NULLORDER) {
do { e0 = s0.next(); } while (e0 == 0); if (e0 == -1) {
    private final static boolean collationContains(CollationElementIterator s0,            CollationElementIterator s1, int[] offsets, boolean endsWith) {        int e1 = s1.next();        if (e1 == CollationElementIterator.NULLORDER) {            return true;        }        int e0 = CollationElementIterator.NULLORDER;        while (true) {            // scan the first string to find a matching character            while (e0 != e1) {                e0 = s0.next();                if (e0 == CollationElementIterator.NULLORDER) {                    // hit the end, no match                    return false;                }            }            // matched first character, note the position of the possible match            int start = s0.getOffset();            if (collationStartsWith(s0, s1)) {                if (!endsWith) {                    if (offsets != null) {                        offsets[0] = start - 1;                        offsets[1] = s0.getOffset();                    }                    return true;                } else {                    // operation == ENDSWITH                    if (s0.next() == CollationElementIterator.NULLORDER) {                        // the match is at the end                        return true;                    }                    // else ignore this match and keep looking                }            }            // reset the position and try again            s0.setOffset(start);            // workaround for a difference between JDK 1.4.0 and JDK 1.4.1            if (s0.getOffset() != start) {                // JDK 1.4.0 takes this path                s0.next();            }            s1.reset();            e0 = CollationElementIterator.NULLORDER;            e1 = s1.next();            // loop round to try again        }    }