Phil Steitz wrote:
> I added (but have not yet committed) the following test case to validate
> the WHEN_EXHAUSTED_GROW contract.
>
> public void testWhenExhaustedGrow() throws Exception {
> pool.setMaxActive(1);
> pool.setMaxTotal(1);
> pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_GROW);
> for (int i = 0; i < 10; i++) {
> pool.borrowObject("a");
> }
> }
>
> This test causes an NPE in borrowObject. I suspect the problem is here:
>
> if (null == latch.getPair()) {
> try {
> Object obj = _factory.makeObject(key);
> latch.setPair(new ObjectTimestampPair(obj));
> newlyCreated = true;
>
> In this case, the latch may not at this point have a pool associated
> with it, so when later on we do
>
> latch.getPool().decrementInternalProcessingCount();
>
> we get NPE On the pool. Do we even want to do the decrement in this
> case? Do we need to force an allocate() somewhere? Should the
> Latch(key) constructor find or create the pool and assign it?
I see the same NPE. Looking into it now...
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]