There are many places in James where we have lengthy sets of comparisons of
an unknown string value to a known string value.  These are many of these of
the form:

        string.equalsIgnoreCase(<literal>)

This use is terribly inefficient.  Each and every call iterates through both
the string and the literal, uppercasing both as it compares them.

Please, as you are working on code (Peter will apply these to POP3Handler
and SMTPHandler), if you see this pattern, please change it to:

        string = string.to[Upper|Lower]Case();  // chose depending upon your
literals

        string.equals(<literal>)

For example, in SMTPHandler and POP3Handler:

      String command = commandRaw.trim();
 becomes
        String command = commandRaw.trim().toUpperCase();

and the test for "USER" (for example) becomes:

        if (command.equals("USER")) ...

Actually, I believe that we should add a command-map model to the handlers,
but that's a seperate issue for a separate thread.  The change proposed in
this e-mail is simple.

        --- Noel

P.S.  Brownie points for whomever recognizes the origin of the subject
header


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to