Jochen Wiedmann wrote:

Not so fast, Alan. An issue, which is not even one day old, is no
sufficient reasons for heavyweight replies like introducing new
dependencies or switching the JDK version.

and from the bug report:

> Right. The problem of cross locking should be addressed by my updated
> version,

Nope, that fails too. I'll get some diagnostics & test scripts attached to the bug in a bit. I haven't bottomed it out yet, but I'm reasonably sure it is an architectural flaw, and no amount of lock-jiggling is going to fix it.

There are a number of other things that probably need looking at - the use of private methods defined in the enclosing ThreadPool class by the Poolable nonstatic member class is the reason for those 'accessor' methods that appear in the stack trace - make them protected and the accessors aren't needed.

Also the use of ThreadPool.startTask is problematic because it means that under heavy transient load the server starts throwing requests away rather than queuing them. The (now deprecated?) ThreadPool.addTask method seems much preferable.

I really think that it would be better and quicker to just rip this out entirely and replace it with something from java.util.concurrent, but I'd be very interested to hear what you think.

--
Alan Burlison
--

Reply via email to