Sergii Angelov created POOL-290:
-----------------------------------

             Summary: TestSoftRefOutOfMemory goes into infinite loop
                 Key: POOL-290
                 URL: https://issues.apache.org/jira/browse/POOL-290
             Project: Commons Pool
          Issue Type: Bug
            Reporter: Sergii Angelov


When running TestSoftOutOfMemory tests, application goes into infinite loop in 
case if OutOfMemoryError happens. It happens for each function that tests 
OutOfMemory case.
For example in this code
{code}
while (pool.getNumIdle() > 0) {
            try {
                long freeMemory = runtime.freeMemory();
                if (freeMemory > Integer.MAX_VALUE) {
                    freeMemory = Integer.MAX_VALUE;
                }
                garbage.add(new byte[Math.min(1024 * 1024, (int)freeMemory/2)]);
            } catch (OutOfMemoryError oome) {
                System.gc();
            }
            System.gc();
        }
{code}

Correct me if I'm wrong, but wouldn't it be more efficient to destroy pool 
immediatelly if error happens and wait till we free that piece of memory (for 
example wait till free memory increased by the size of current pool).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to