private static char assignPrefix()

in mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/ThreadKeyGeneratorImpl.java [76:108]


    private static char assignPrefix(String subject, int length) {
        char prefix;
        if (subject.length() > length) {

            int i = length;
            while (i > -1 && !isLetterOrDigit(subject.charAt(i))) 
                i--;
            if (i > -1) 
                prefix = subject.charAt(i);
            else {
                i = length;
                while (i<subject.length() && !isLetterOrDigit(subject.charAt(i))) 
                    i++;
                if (i<subject.length()) 
                    prefix = subject.charAt(i);
                else 
                    throw new IllegalArgumentException();
            }

        } else {

            int i = subject.length()-1;
            while (i > -1 && !isLetterOrDigit(subject.charAt(i))) 
                i--;
            if (i > -1) 
                prefix = subject.charAt(i);
            else 
                throw new IllegalArgumentException();

        }

        return prefix;
    }