Hi All,
Hope all is well.
After playing around with the Excalibur code in jswat I was able
to validate what was going on inside the pooling code when a
pool reaches it's maximum capacity.
With the current code, pools shrink everytime they are full (ie.
everytime they reach capacity, but not exceed it). I'm not sure
if this was intended ? (please correct me if I'm wrong) but IMO I think
this is different than expected by a developer.
Attached is a patch to fix DefaultPool so that pools are reduced
in size only when they exceed capacity, not when they reach it. Hope
it's ok.
I've also attached the test program I wrote to validate the fix
just in case someone else would like to check it.
Cheers,
Marcus
--
.....
,,$$$$$$$$$, Marcus Crafter
;$' '$$$$: Computer Systems Engineer
$: $$$$: Open Software Associates GmbH
$ o_)$$$: 82-84 Mainzer Landstrasse
;$, _/\ &&:' 60327 Frankfurt Germany
' /( &&&
\_&&&&' Email : [EMAIL PROTECTED]
&&&&. Business Hours : +49 69 9757 200
&&&&&&&:
test.tar.gz
Description: Binary data
Index: src/java/org/apache/avalon/excalibur/pool/DefaultPool.java
===================================================================
RCS file:
/home/cvspublic/jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/pool/DefaultPool.java,v
retrieving revision 1.6
diff -u -r1.6 DefaultPool.java
--- src/java/org/apache/avalon/excalibur/pool/DefaultPool.java 2001/11/19
12:08:48 1.6
+++ src/java/org/apache/avalon/excalibur/pool/DefaultPool.java 2001/12/08
16:24:35
@@ -183,7 +183,7 @@
{
m_ready.add(obj);
- if( (this.size() >= m_max) && (this instanceof Resizable) )
+ if( (this.size() > m_max) && (this instanceof Resizable) )
{
this.internalShrink( m_controller.shrink() );
}
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
