Alan Burlison said (on or about) 04/28/2009 11:10:
I've been diagnosing the cause of
https://issues.apache.org/jira/browse/XMLRPC-168, and I'm rapidly
coming to the conclusion that the XML-RPC thread pool class
(org.apache.xmlrpc.util.ThreadPool) is fundamentally flawed.
ThreadPool uses a nonstatic member class (Poolable) that calls
synchronized methods on the enclosing class, and the enclosing class
in turn calls synchronized methods on the enclosed class. That's a
recipe for deadlocks.
I'm tempted so suggest we should just rip it out entirely and replace
it with one of the thread pools from java.util.concurrent. However
those classes didn't appear until JDK 1.5, so we'd lose JDK 1.4
compatibility. On the other hand, JDK 1.4 went EOSL in 2008 [1], so
that *shouldn't* be a problem.
Is anyone still using JDK 1.4?
[1] http://java.sun.com/products/archive/eol.policy.html
I have a few applications that are still running in 1.4 but they only
use the client functions
dga