You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2004/02/05 18:43:12 UTC

cvs commit: db-ojb/src/test/org/apache/ojb/broker MultithreadedReadTest.java AllTests.java

arminw      2004/02/05 09:43:12

  Modified:    src/test/org/apache/ojb repository_junit_reference.xml
               src/test/org/apache/ojb/broker MultithreadedReadTest.java
                        AllTests.java
  Log:
  - add MultithreadedReadTest to test suite
  - add new read test
  - update metadata
  
  Revision  Changes    Path
  1.7       +8 -4      db-ojb/src/test/org/apache/ojb/repository_junit_reference.xml
  
  Index: repository_junit_reference.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/repository_junit_reference.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- repository_junit_reference.xml	4 Feb 2004 00:25:27 -0000	1.6
  +++ repository_junit_reference.xml	5 Feb 2004 17:43:12 -0000	1.7
  @@ -934,6 +934,7 @@
       <class-descriptor
          class="org.apache.ojb.broker.MultithreadedReadTest$AccountImpl"
          table="READTEST_ACCOUNT"
  +        proxy="dynamic"
       >
          <field-descriptor
             name="id"
  @@ -962,7 +963,7 @@
             auto-retrieve="true"
             auto-update="true"
             auto-delete="false"
  -          proxy="true"
  +          proxy="false"
          >
             <foreignkey field-ref="fk"/>
          </reference-descriptor>
  @@ -972,6 +973,7 @@
       <class-descriptor
          class="org.apache.ojb.broker.MultithreadedReadTest$BuyerImpl"
          table="READTEST_BUYER"
  +        proxy="dynamic"
       >
          <field-descriptor
             name="id"
  @@ -1000,7 +1002,7 @@
             auto-retrieve="true"
             auto-update="true"
             auto-delete="false"
  -          proxy="true"
  +          proxy="false"
          >
             <foreignkey field-ref="fk"/>
          </reference-descriptor>
  @@ -1009,6 +1011,7 @@
       <class-descriptor
          class="org.apache.ojb.broker.MultithreadedReadTest$AddressImpl"
          table="READTEST_ADDRESS"
  +        proxy="dynamic"
       >
          <field-descriptor
             name="id"
  @@ -1037,7 +1040,7 @@
             auto-retrieve="true"
             auto-update="true"
             auto-delete="false"
  -          proxy="true"
  +          proxy="false"
          >
             <foreignkey field-ref="fk"/>
          </reference-descriptor>
  @@ -1046,6 +1049,7 @@
       <class-descriptor
          class="org.apache.ojb.broker.MultithreadedReadTest$AddressTypeImpl"
          table="READTEST_ADDRESS_TYPE"
  +        proxy="dynamic"
       >
          <field-descriptor
             name="id"
  
  
  
  1.2       +51 -9     db-ojb/src/test/org/apache/ojb/broker/MultithreadedReadTest.java
  
  Index: MultithreadedReadTest.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/MultithreadedReadTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MultithreadedReadTest.java	4 Feb 2004 00:25:27 -0000	1.1
  +++ MultithreadedReadTest.java	5 Feb 2004 17:43:12 -0000	1.2
  @@ -1,12 +1,13 @@
   package org.apache.ojb.broker;
   
  -import java.util.Iterator;
  +import java.util.ArrayList;
  +import java.util.Arrays;
   import java.util.Collection;
  +import java.util.Iterator;
   import java.util.List;
  -import java.util.ArrayList;
   
  -import org.apache.ojb.broker.query.QueryByCriteria;
   import org.apache.ojb.broker.query.Criteria;
  +import org.apache.ojb.broker.query.QueryByCriteria;
   
   /**
    * Tests multithreaded read of objects using proxy for nested 1:1 references
  @@ -42,6 +43,42 @@
           super.tearDown();
       }
   
  +    public void testClosedPB() throws Throwable
  +    {
  +        String name = "testClosedPB_"+System.currentTimeMillis();
  +
  +        Integer[] ids = prepareTestRead(name, 5);
  +        Account account = null;
  +        PersistenceBroker broker = null;
  +        try
  +        {
  +            broker = PersistenceBrokerFactory.defaultPersistenceBroker();
  +            Criteria crit = new Criteria();
  +            crit.addIn("id", Arrays.asList(ids));
  +            QueryByCriteria query = new QueryByCriteria(Account.class, crit);
  +            Collection result = broker.getCollectionByQuery(query);
  +            Iterator iter = result.iterator();
  +            //			 iter.next();
  +            account = (Account) iter.next();
  +            while (iter.hasNext())
  +            {
  +                iter.next();
  +            }
  +        }
  +        finally
  +        {
  +            if (broker != null) broker.close();
  +        }
  +
  +        TestCaseRunnable tct [] = new TestCaseRunnable[50];
  +        for (int i = 0; i < concurrentThreads; i++)
  +        {
  +            tct[i] = new TestHandleMaterialize(account, name);
  +        }
  +        // run test classes
  +        runTestCaseRunnables(tct);
  +    }
  +
       /**
        * Read objects using lazy materialization for references from DB. Different threads
        * call the references on the read objects
  @@ -133,19 +170,21 @@
           System.out.println("Multithreaded lazy read of objects - end");
       }
   
  -    private void prepareTestRead(String searchCriteria, int numbers) throws Exception
  +    private Integer[] prepareTestRead(String name, int numbers) throws Exception
       {
  +        Integer[] ids = new Integer[numbers];
           PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();
           try
           {
               broker.beginTransaction();
               for (int i = 0; i < numbers; i++)
               {
  -                AddressType type = new AddressTypeImpl(searchCriteria);
  -                Address address = new AddressImpl(searchCriteria, type);
  -                Buyer buyer = new BuyerImpl(searchCriteria, address);
  -                Account account = new AccountImpl(searchCriteria, buyer);
  +                AddressType type = new AddressTypeImpl(name);
  +                Address address = new AddressImpl(name, type);
  +                Buyer buyer = new BuyerImpl(name, address);
  +                Account account = new AccountImpl(name, buyer);
                   broker.store(account);
  +                ids[i] = account.getId();
               }
               broker.commitTransaction();
               broker.clearCache();
  @@ -154,6 +193,7 @@
           {
               if (broker != null) broker.close();
           }
  +        return ids;
       }
   
       private List prepareTestLazyRead(String searchCriteria, int numbers) throws Exception
  @@ -313,7 +353,9 @@
           {
               assertEquals(name, account.getName());
               assertNotNull("All accounts have a reference to an Buyer", account.getBuyer());
  +            assertEquals(name, account.getBuyer().getName());
               assertNotNull("All buyers have a reference to an Address", account.getBuyer().getAddress());
  +            assertEquals(name, account.getBuyer().getAddress().getName());
               assertNotNull("All addresses have a reference to an AdressType", account.getBuyer().getAddress().getType());
               assertNotNull("All AddressType have a name", account.getBuyer().getAddress().getType().getName());
           }
  
  
  
  1.39      +1 -0      db-ojb/src/test/org/apache/ojb/broker/AllTests.java
  
  Index: AllTests.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/AllTests.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- AllTests.java	27 Jan 2004 19:42:46 -0000	1.38
  +++ AllTests.java	5 Feb 2004 17:43:12 -0000	1.39
  @@ -86,6 +86,7 @@
           suite.addTestSuite(NestedFieldsTest.class);
           suite.addTestSuite(ReadonlyTest.class);
           suite.addTestSuite(ReferenceMapTest.class);
  +        suite.addTestSuite(MultithreadedReadTest.class);
           return suite;
       }
   
  
  
  

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


Re: cvs commit: db-ojb/src/test/org/apache/ojb/broker MultithreadedReadTest.java AllTests.java

Posted by Armin Waibel <ar...@apache.org>.
Hi,

forget to say, will check in a fix in the near future.
So don't be suprised about the test failures in PB-api tests.

regards,
Armin

arminw@apache.org wrote:
> arminw      2004/02/05 09:43:12
> 
>   Modified:    src/test/org/apache/ojb repository_junit_reference.xml
>                src/test/org/apache/ojb/broker MultithreadedReadTest.java
>                         AllTests.java
>   Log:
>   - add MultithreadedReadTest to test suite
>   - add new read test
>   - update metadata
>   
>   Revision  Changes    Path
>   1.7       +8 -4      db-ojb/src/test/org/apache/ojb/repository_junit_reference.xml
>   
>   Index: repository_junit_reference.xml
>   ===================================================================
>   RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/repository_junit_reference.xml,v
>   retrieving revision 1.6
>   retrieving revision 1.7
>   diff -u -r1.6 -r1.7
>   --- repository_junit_reference.xml	4 Feb 2004 00:25:27 -0000	1.6
>   +++ repository_junit_reference.xml	5 Feb 2004 17:43:12 -0000	1.7
>   @@ -934,6 +934,7 @@
>        <class-descriptor
>           class="org.apache.ojb.broker.MultithreadedReadTest$AccountImpl"
>           table="READTEST_ACCOUNT"
>   +        proxy="dynamic"
>        >
>           <field-descriptor
>              name="id"
>   @@ -962,7 +963,7 @@
>              auto-retrieve="true"
>              auto-update="true"
>              auto-delete="false"
>   -          proxy="true"
>   +          proxy="false"
>           >
>              <foreignkey field-ref="fk"/>
>           </reference-descriptor>
>   @@ -972,6 +973,7 @@
>        <class-descriptor
>           class="org.apache.ojb.broker.MultithreadedReadTest$BuyerImpl"
>           table="READTEST_BUYER"
>   +        proxy="dynamic"
>        >
>           <field-descriptor
>              name="id"
>   @@ -1000,7 +1002,7 @@
>              auto-retrieve="true"
>              auto-update="true"
>              auto-delete="false"
>   -          proxy="true"
>   +          proxy="false"
>           >
>              <foreignkey field-ref="fk"/>
>           </reference-descriptor>
>   @@ -1009,6 +1011,7 @@
>        <class-descriptor
>           class="org.apache.ojb.broker.MultithreadedReadTest$AddressImpl"
>           table="READTEST_ADDRESS"
>   +        proxy="dynamic"
>        >
>           <field-descriptor
>              name="id"
>   @@ -1037,7 +1040,7 @@
>              auto-retrieve="true"
>              auto-update="true"
>              auto-delete="false"
>   -          proxy="true"
>   +          proxy="false"
>           >
>              <foreignkey field-ref="fk"/>
>           </reference-descriptor>
>   @@ -1046,6 +1049,7 @@
>        <class-descriptor
>           class="org.apache.ojb.broker.MultithreadedReadTest$AddressTypeImpl"
>           table="READTEST_ADDRESS_TYPE"
>   +        proxy="dynamic"
>        >
>           <field-descriptor
>              name="id"
>   
>   
>   
>   1.2       +51 -9     db-ojb/src/test/org/apache/ojb/broker/MultithreadedReadTest.java
>   
>   Index: MultithreadedReadTest.java
>   ===================================================================
>   RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/MultithreadedReadTest.java,v
>   retrieving revision 1.1
>   retrieving revision 1.2
>   diff -u -r1.1 -r1.2
>   --- MultithreadedReadTest.java	4 Feb 2004 00:25:27 -0000	1.1
>   +++ MultithreadedReadTest.java	5 Feb 2004 17:43:12 -0000	1.2
>   @@ -1,12 +1,13 @@
>    package org.apache.ojb.broker;
>    
>   -import java.util.Iterator;
>   +import java.util.ArrayList;
>   +import java.util.Arrays;
>    import java.util.Collection;
>   +import java.util.Iterator;
>    import java.util.List;
>   -import java.util.ArrayList;
>    
>   -import org.apache.ojb.broker.query.QueryByCriteria;
>    import org.apache.ojb.broker.query.Criteria;
>   +import org.apache.ojb.broker.query.QueryByCriteria;
>    
>    /**
>     * Tests multithreaded read of objects using proxy for nested 1:1 references
>   @@ -42,6 +43,42 @@
>            super.tearDown();
>        }
>    
>   +    public void testClosedPB() throws Throwable
>   +    {
>   +        String name = "testClosedPB_"+System.currentTimeMillis();
>   +
>   +        Integer[] ids = prepareTestRead(name, 5);
>   +        Account account = null;
>   +        PersistenceBroker broker = null;
>   +        try
>   +        {
>   +            broker = PersistenceBrokerFactory.defaultPersistenceBroker();
>   +            Criteria crit = new Criteria();
>   +            crit.addIn("id", Arrays.asList(ids));
>   +            QueryByCriteria query = new QueryByCriteria(Account.class, crit);
>   +            Collection result = broker.getCollectionByQuery(query);
>   +            Iterator iter = result.iterator();
>   +            //			 iter.next();
>   +            account = (Account) iter.next();
>   +            while (iter.hasNext())
>   +            {
>   +                iter.next();
>   +            }
>   +        }
>   +        finally
>   +        {
>   +            if (broker != null) broker.close();
>   +        }
>   +
>   +        TestCaseRunnable tct [] = new TestCaseRunnable[50];
>   +        for (int i = 0; i < concurrentThreads; i++)
>   +        {
>   +            tct[i] = new TestHandleMaterialize(account, name);
>   +        }
>   +        // run test classes
>   +        runTestCaseRunnables(tct);
>   +    }
>   +
>        /**
>         * Read objects using lazy materialization for references from DB. Different threads
>         * call the references on the read objects
>   @@ -133,19 +170,21 @@
>            System.out.println("Multithreaded lazy read of objects - end");
>        }
>    
>   -    private void prepareTestRead(String searchCriteria, int numbers) throws Exception
>   +    private Integer[] prepareTestRead(String name, int numbers) throws Exception
>        {
>   +        Integer[] ids = new Integer[numbers];
>            PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();
>            try
>            {
>                broker.beginTransaction();
>                for (int i = 0; i < numbers; i++)
>                {
>   -                AddressType type = new AddressTypeImpl(searchCriteria);
>   -                Address address = new AddressImpl(searchCriteria, type);
>   -                Buyer buyer = new BuyerImpl(searchCriteria, address);
>   -                Account account = new AccountImpl(searchCriteria, buyer);
>   +                AddressType type = new AddressTypeImpl(name);
>   +                Address address = new AddressImpl(name, type);
>   +                Buyer buyer = new BuyerImpl(name, address);
>   +                Account account = new AccountImpl(name, buyer);
>                    broker.store(account);
>   +                ids[i] = account.getId();
>                }
>                broker.commitTransaction();
>                broker.clearCache();
>   @@ -154,6 +193,7 @@
>            {
>                if (broker != null) broker.close();
>            }
>   +        return ids;
>        }
>    
>        private List prepareTestLazyRead(String searchCriteria, int numbers) throws Exception
>   @@ -313,7 +353,9 @@
>            {
>                assertEquals(name, account.getName());
>                assertNotNull("All accounts have a reference to an Buyer", account.getBuyer());
>   +            assertEquals(name, account.getBuyer().getName());
>                assertNotNull("All buyers have a reference to an Address", account.getBuyer().getAddress());
>   +            assertEquals(name, account.getBuyer().getAddress().getName());
>                assertNotNull("All addresses have a reference to an AdressType", account.getBuyer().getAddress().getType());
>                assertNotNull("All AddressType have a name", account.getBuyer().getAddress().getType().getName());
>            }
>   
>   
>   
>   1.39      +1 -0      db-ojb/src/test/org/apache/ojb/broker/AllTests.java
>   
>   Index: AllTests.java
>   ===================================================================
>   RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/AllTests.java,v
>   retrieving revision 1.38
>   retrieving revision 1.39
>   diff -u -r1.38 -r1.39
>   --- AllTests.java	27 Jan 2004 19:42:46 -0000	1.38
>   +++ AllTests.java	5 Feb 2004 17:43:12 -0000	1.39
>   @@ -86,6 +86,7 @@
>            suite.addTestSuite(NestedFieldsTest.class);
>            suite.addTestSuite(ReadonlyTest.class);
>            suite.addTestSuite(ReferenceMapTest.class);
>   +        suite.addTestSuite(MultithreadedReadTest.class);
>            return suite;
>        }
>    
>   
>   
>   
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-dev-help@db.apache.org
> 
> 
> 

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