You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Benedikt Ritter <br...@apache.org> on 2015/02/23 11:35:08 UTC

Re: svn commit: r1661559 - /commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java

Hello Phil,

2015-02-22 21:43 GMT+01:00 <ps...@apache.org>:

> Author: psteitz
> Date: Sun Feb 22 20:43:30 2015
> New Revision: 1661559
>
> URL: http://svn.apache.org/r1661559
> Log:
> Added (disabled) tests for JIRA: DBCP-283 and DBCP-284.
>
> Modified:
>
> commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
>
> Modified:
> commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
> URL:
> http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java?rev=1661559&r1=1661558&r2=1661559&view=diff
>
> ==============================================================================
> ---
> commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
> (original)
> +++
> commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
> Sun Feb 22 20:43:30 2015
> @@ -26,6 +26,7 @@ import static org.junit.Assert.fail;
>
>  import java.lang.management.ManagementFactory;
>  import java.util.ArrayList;
> +import java.util.HashSet;
>  import java.util.List;
>  import java.util.NoSuchElementException;
>  import java.util.Random;
> @@ -2398,6 +2399,44 @@ public class TestGenericObjectPool exten
>
>          Assert.assertEquals(1, factory.validateCounter);
>      }
> +
> +    /**
> +     * Verifies that when a factory's makeObject produces instances that
> are not
> +     * discernible by equals, the pool can handle them.
> +     *
> +     * JIRA: POOL-283
> +     */
> +    //@Test
>

IMHO it's better to use the @Ignore annotation, because this way ignored
tests will at least show up in reports generated by maven. You can even add
a description why a test is ignored like this:

@Ignore("See POOL-283 in JIRA")


> +    public void testEqualsIndiscernible() throws Exception {
> +        final HashSetFactory factory = new HashSetFactory();
> +        final GenericObjectPool<HashSet<String>> pool = new
> GenericObjectPool<HashSet<String>>(
> +                factory, new GenericObjectPoolConfig());
> +        final HashSet<String> s1 = pool.borrowObject();
> +        final HashSet<String> s2 = pool.borrowObject();
> +        pool.returnObject(s1);
> +        pool.returnObject(s2);
> +        pool.close();
> +    }
> +
> +    /**
> +     * Verifies that when a borrowed object is mutated in a way that does
> not
> +     * preserve equality and hashcode, the pool can recognized it on
> return.
> +     *
> +     * JIRA: POOL-284
> +     */
> +    //@Test
> +    public void testMutable() throws Exception {
> +        final HashSetFactory factory = new HashSetFactory();
> +        final GenericObjectPool<HashSet<String>> pool = new
> GenericObjectPool<HashSet<String>>(
> +                factory, new GenericObjectPoolConfig());
> +        final HashSet<String> s1 = pool.borrowObject();
> +        final HashSet<String> s2 = pool.borrowObject();
> +        s1.add("One");
> +        s2.add("One");
> +        pool.returnObject(s1);
> +        pool.returnObject(s2);
> +        pool.close();
> +    }
>
>      private static final class DummyFactory
>              extends BasePooledObjectFactory<Object> {
> @@ -2410,7 +2449,23 @@ public class TestGenericObjectPool exten
>              return new DefaultPooledObject<Object>(value);
>          }
>      }
> -
> +
> +    /**
> +     * Factory that creates HashSets.  Note that this means
> +     *  0) All instances are initially equal (not discernible by equals)
> +     *  1) Instances are mutable and mutation can cause change in
> identity / hashcode.
> +     */
> +    private static final class HashSetFactory
> +            extends BasePooledObjectFactory<HashSet<String>> {
> +        @Override
> +        public HashSet<String> create() throws Exception {
> +            return new HashSet<String>();
> +        }
> +        @Override
> +        public PooledObject<HashSet<String>> wrap(HashSet<String> value) {
> +            return new DefaultPooledObject<HashSet<String>>(value);
> +        }
> +    }
>
>      private static class InvalidFactory
>              extends BasePooledObjectFactory<Object> {
>
>
>


-- 
http://people.apache.org/~britter/
http://www.systemoutprintln.de/
http://twitter.com/BenediktRitter
http://github.com/britter

Re: svn commit: r1661559 - /commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java

Posted by sebb <se...@gmail.com>.
On 23 February 2015 at 10:35, Benedikt Ritter <br...@apache.org> wrote:
> Hello Phil,
>
> 2015-02-22 21:43 GMT+01:00 <ps...@apache.org>:
>
>> Author: psteitz
>> Date: Sun Feb 22 20:43:30 2015
>> New Revision: 1661559
>>
>> URL: http://svn.apache.org/r1661559
>> Log:
>> Added (disabled) tests for JIRA: DBCP-283 and DBCP-284.
>>
>> Modified:
>>
>> commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
>>
>> Modified:
>> commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java?rev=1661559&r1=1661558&r2=1661559&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
>> (original)
>> +++
>> commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
>> Sun Feb 22 20:43:30 2015
>> @@ -26,6 +26,7 @@ import static org.junit.Assert.fail;
>>
>>  import java.lang.management.ManagementFactory;
>>  import java.util.ArrayList;
>> +import java.util.HashSet;
>>  import java.util.List;
>>  import java.util.NoSuchElementException;
>>  import java.util.Random;
>> @@ -2398,6 +2399,44 @@ public class TestGenericObjectPool exten
>>
>>          Assert.assertEquals(1, factory.validateCounter);
>>      }
>> +
>> +    /**
>> +     * Verifies that when a factory's makeObject produces instances that
>> are not
>> +     * discernible by equals, the pool can handle them.
>> +     *
>> +     * JIRA: POOL-283
>> +     */
>> +    //@Test
>>
>
> IMHO it's better to use the @Ignore annotation, because this way ignored
> tests will at least show up in reports generated by maven. You can even add
> a description why a test is ignored like this:
>
> @Ignore("See POOL-283 in JIRA")
>

+1

>> +    public void testEqualsIndiscernible() throws Exception {
>> +        final HashSetFactory factory = new HashSetFactory();
>> +        final GenericObjectPool<HashSet<String>> pool = new
>> GenericObjectPool<HashSet<String>>(
>> +                factory, new GenericObjectPoolConfig());
>> +        final HashSet<String> s1 = pool.borrowObject();
>> +        final HashSet<String> s2 = pool.borrowObject();
>> +        pool.returnObject(s1);
>> +        pool.returnObject(s2);
>> +        pool.close();
>> +    }
>> +
>> +    /**
>> +     * Verifies that when a borrowed object is mutated in a way that does
>> not
>> +     * preserve equality and hashcode, the pool can recognized it on
>> return.
>> +     *
>> +     * JIRA: POOL-284
>> +     */
>> +    //@Test
>> +    public void testMutable() throws Exception {
>> +        final HashSetFactory factory = new HashSetFactory();
>> +        final GenericObjectPool<HashSet<String>> pool = new
>> GenericObjectPool<HashSet<String>>(
>> +                factory, new GenericObjectPoolConfig());
>> +        final HashSet<String> s1 = pool.borrowObject();
>> +        final HashSet<String> s2 = pool.borrowObject();
>> +        s1.add("One");
>> +        s2.add("One");
>> +        pool.returnObject(s1);
>> +        pool.returnObject(s2);
>> +        pool.close();
>> +    }
>>
>>      private static final class DummyFactory
>>              extends BasePooledObjectFactory<Object> {
>> @@ -2410,7 +2449,23 @@ public class TestGenericObjectPool exten
>>              return new DefaultPooledObject<Object>(value);
>>          }
>>      }
>> -
>> +
>> +    /**
>> +     * Factory that creates HashSets.  Note that this means
>> +     *  0) All instances are initially equal (not discernible by equals)
>> +     *  1) Instances are mutable and mutation can cause change in
>> identity / hashcode.
>> +     */
>> +    private static final class HashSetFactory
>> +            extends BasePooledObjectFactory<HashSet<String>> {
>> +        @Override
>> +        public HashSet<String> create() throws Exception {
>> +            return new HashSet<String>();
>> +        }
>> +        @Override
>> +        public PooledObject<HashSet<String>> wrap(HashSet<String> value) {
>> +            return new DefaultPooledObject<HashSet<String>>(value);
>> +        }
>> +    }
>>
>>      private static class InvalidFactory
>>              extends BasePooledObjectFactory<Object> {
>>
>>
>>
>
>
> --
> http://people.apache.org/~britter/
> http://www.systemoutprintln.de/
> http://twitter.com/BenediktRitter
> http://github.com/britter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org