[ 
https://issues.apache.org/jira/browse/POOL-290?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Phil Steitz updated POOL-290:
-----------------------------
    Fix Version/s: 2.13

> TestSoftRefOutOfMemory goes into infinite loop
> ----------------------------------------------
>
>                 Key: POOL-290
>                 URL: https://issues.apache.org/jira/browse/POOL-290
>             Project: Commons Pool
>          Issue Type: Bug
>            Reporter: Serge Angelov
>            Priority: Major
>             Fix For: 2.13
>
>
> 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
(v8.20.10#820010)

Reply via email to