james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Harmeet Bedi" <harm...@kodemuse.com>
Subject Re: [PATCH] POP3Handler.java v.2
Date Mon, 05 Aug 2002 20:23:29 GMT
Feedback 1
==========
instead of doing
out.println(...)
logResponseString(...)

Would it better to override <println> to log ?
At the time of PrintWriter creation in <compose>, log level could be checked
and a Loggable PrintWriter created. This may be cleaner and may avoid
multiple calls to <logResponseString> and check for
if (getLogger().isDebugEnabled())
in <logResponseString>

BTW. final is redundant in <logResponseString>


Feedback 2
==========
command = commandLine.nextToken().toUpperCase();
....
return (command.equals("QUIT") == false);

is slower than

command = commandLine.nextToken();
....
return (command.equalsIgnoreCase("QUIT") == false);

The reason is that latter pattern does not create a new String object
and the former does by calling <String::toUpperCase()>. In one of the
JDK versions(1.3?) <String::equalsIgnoreCase> optimizations were added
to avoid object creation.

Harmeet


----- Original Message -----
From: "Peter M. Goldstein" <peter_m_goldstein@yahoo.com>
To: "'James Developers List'" <james-dev@jakarta.apache.org>
Sent: Sunday, August 04, 2002 10:39 AM
Subject: [PATCH] POP3Handler.java v.2


>
> All,
>
> Attached is a patch to the POP3Handler.java code that rolls in the
> String.equalsIgnoreCase change that Noel suggested.
>
> All other previously made changes were left intact.
>
> Attached is the source and diff.  As always, comments, criticisms, and
> questions are welcome.
>
> --Peter
>
> > -----Original Message-----
> > From: Noel J. Bergman [mailto:noel@devtech.com]
> > Sent: Saturday, August 03, 2002 8:59 PM
> > To: James-Dev Mailing List
> > Subject: String.equalsIgnoreCase Considered Evil :-)
> >
> > 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:james-dev-
> > unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail: <mailto:james-dev-
> > help@jakarta.apache.org>
>


----------------------------------------------------------------------------
----


> --
> To unsubscribe, e-mail:
<mailto:james-dev-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
<mailto:james-dev-help@jakarta.apache.org>


--
To unsubscribe, e-mail:   <mailto:james-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:james-dev-help@jakarta.apache.org>


Mime
View raw message