DO NOT REPLY [Bug 15296] New: - ThreadPool limits are incorrectly handled

[email protected]
Newsgroups gmane.comp.jakarta.avalon.apps.devel
Message-ID <[email protected]>
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15296>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15296

ThreadPool limits are incorrectly handled

           Summary: ThreadPool limits are incorrectly handled
           Product: Avalon
           Version: unspecified
          Platform: All
               URL:
                    http://nagoya.apache.org/eyebrowse/ReadMsg?listName=aval
                    [email protected]&msgNo=16341
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Cornerstone
        AssignedTo: [email protected]
        ReportedBy: [email protected]


The explanation of the problem, and one way to fix, is archived in:

  http://nagoya.apache.org/eyebrowse/ReadMsg?listName=avalon-
[email protected]&msgNo=16341

I don't have the source for the Avalon modules checked out to provide you with 
a formal patch, but it should not take more than a few minutes for an Avalon 
developer to apply the two changes, if these are the way you want to fix the 
defect (doesn't change processing; it just preserves the proper min and max 
values).

In org.apache.avalon.excalibur.thread.impl.DefaultThreadPool add:

    public DefaultThreadPool( final String name,
                              final int min, final int max,
                              final ThreadContext context )
        throws Exception
    {
        super( name );
        m_underlyingPool = new SoftResourceLimitingPool( this, min, max );
        m_pool = new BasicThreadPool( this, name, m_underlyingPool, context );
    }

Then in org.apache.avalon.cornerstone.blocks.threads.DefaultThreadManager, 
change the configureThreadPool method from using:

  DefaultThreadPool threadPool = new DefaultThreadPool(name,
                                                       maxThreads,
                                                       threadContext);

 to using:

  DefaultThreadPool threadPool = new DefaultThreadPool(name,
                                                       minThreads,
                                                       maxThreads,
                                                       threadContext);

That will require Cornerstone and Excalibur to be in-synch, since Cornerstone 
will require the new constructor.

Peter Donald replied to the archived message with his approval for this as the 
change.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.