db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Armin Waibel (JIRA)" <j...@apache.org>
Subject [jira] Closed: (OJB-29) Infinite loop in case of refresh=true and cycles in references
Date Thu, 07 Jul 2005 17:15:12 GMT
     [ http://issues.apache.org/jira/browse/OJB-29?page=all ]
     
Armin Waibel closed OJB-29:
---------------------------

    Fix Version: 1.0.4
     Resolution: Fixed

Add test case to OJB test suite BidirectionalAssociationTest#testAutoRefreshTrue() this test
fails before the fix and now the test pass.
OJB now lookup for locally cached objects and does not refresh the references when the object
is already locally cached.

> Infinite loop in case of refresh=true and cycles in references
> --------------------------------------------------------------
>
>          Key: OJB-29
>          URL: http://issues.apache.org/jira/browse/OJB-29
>      Project: OJB
>         Type: Bug
>   Components: PB-API
>     Versions: 1.0.3
>     Reporter: Martin Taal
>     Assignee: Armin Waibel
>      Fix For: 1.0.4
>  Attachments: testcasesimple.zip
>
> Hi Armin,
> I have attached the objects I try to persist, the sql to generate the database and the
repository xml in the zip file which I will attach shortly. I execute the code below to get
a loop (and a stack overflow). 
> Let me know if my setup is wrong.
> Good luck!
> gr. Martin
> 	    PersistenceBroker broker = null;
> 	    try
> 	    {
> 	    	broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
> 	    	{
> 		        final A myA = new A();
> 		        final B myB = new B();
> 		        myA.setName("I am a");
> 		        myA.setMyB(myB);
> 		        myB.setName("I am b");
> 		        myB.setMyA(myA);
> 		        broker.beginTransaction();
> 		        broker.store(myA);
> 		        broker.store(myB);
> 		        broker.commitTransaction();
> 	    	}
> 	    	
> 	    	// now read again
> 	    	{
> 		        broker.clearCache();
> 		        Criteria criteria = new Criteria();
> 		        criteria.addEqualTo("Name", "I am a");
> 		        
> 		        QueryByCriteria query = QueryFactory.newQuery(A.class, criteria);
> 		        A myA =  (A)broker.getObjectByQuery(query);
>                         // Here it loops (and stops with a stack overflow)
> 		        assertTrue(myA.getMyB().getName().compareTo("I am b") == 0);
> 	    	}
> 	    }
> 	    finally
> 	    {
> 	        if (broker != null) broker.close();
> 	    }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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


Mime
View raw message