commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <skitch...@apache.org>
Subject Re: Logging: SimpleLog not thread-safe
Date Wed, 11 Oct 2006 09:04:30 GMT
Hi Martin,

Thanks very much for letting us know about this. I think you're right
about there being a thread-safety issue. 

SimpleLog is definitely in use, but obviously this bug will only be
triggered under pretty rare conditions, and I expect would usually just
result in a malformed date string which may not be noticed anyway.

But it should be fixed; I'll try to do that this weekend.

Regards,

Simon

On Fri, 2006-10-06 at 17:15 +0100, Martin Wilson wrote:
> Hi,
>  
> I'm not sure if anyone else uses the SimpleLog class - anyway I've
> noticed that SimpleLog.log is not thread-safe. The following code
> (starting on line 282):
>  
>         if(showDateTime) {
>             buf.append(dateFormatter.format(new Date()));
>             buf.append(" ");
>         }
>  
> makes an unsynchronized call to dateFormatter.format. As dateFormatter
> is an instance variable, and DateFormat.format is not thread-safe, this
> will cause problems if more than one thread tried to log at the same
> time.
>  
> Solution: remove the dateFormatter instance variable and instantiate a
> new DateFormat each time in the log method, e.g.
>  
> DateFormat dateFormatter = null;
>             try {
>                         dateFormatter = new
> SimpleDateFormat(dateTimeFormat);
>             }
> catch(IllegalArgumentException e) {
>                         dateFormatter = new
> SimpleDateFormat(DEFAULT_DATE_TIME_FORMAT);
>             }  
>  
> Is anyone available who could make this change?
>  
> Thanks, 
> Martin

> ___________
> 
> Martin Wilson
> martinw@bright-interactive.com
> 
> Bright Interactive: successfully delivering interactive websites and
> business applications
>  <http://www.bright-interactive.com/> http://www.bright-interactive.com
> 0870 240 6520
>  


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message