> > A silly question: > > why do you use a ThreadLocal to store a constant value for entire > application? why not a static variable or store into web application > context , by example ? > > The string of the date format is constant. However the SimpleDateFormat class is not threadsafe, so you will hit intermittant issues when sharing across threads.
> So, my question is whether or not there is a good way to clean-out the > > ThreadLocals from our webapp? > > It would be much simpler code to read/write/maintain if you just create new ones each time - as Charles says. Then profile the app, and only if the creation of simpleDateFormat objects is slowing the app, then try to optimise. If you do this, and fine that creating these objects is taking more time, then perhaps one method would be to use a weak object reference to the thread local. That way you would get the best of both worlds - no memory leak and reduced creation of SimpleDateFormat. However most people coding probably won't know what a ThreadLocal class is/does, let alone a Weak memory reference. IMO it would be easier just to code the easy way Chris