[
https://issues.apache.org/jira/browse/CAY-1277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrus Adamchik closed CAY-1277.
--------------------------------
Resolution: Fixed
> Prefetching may cause a root object to got from COMMITTED to MODIFIED state
> ---------------------------------------------------------------------------
>
> Key: CAY-1277
> URL: https://issues.apache.org/jira/browse/CAY-1277
> Project: Cayenne
> Issue Type: Bug
> Components: Cayenne Core Library
> Affects Versions: 3.0M6
> Reporter: Andrus Adamchik
> Assignee: Andrus Adamchik
> Fix For: 3.0 beta 1
>
>
> This is a subtle bug that I am (almost) sure existed prior to my last batch
> of prefetch-related changes. Per test demonstrating it below, prefetching on
> optional to-one relationships would cause a root object to go to MODIFIED
> state instead of COMMITTED. Since this happened without actual values
> modification, I guess nobody noticed it so far. A side effect though (aside
> from the memory leak it might introduce to a read-only DataContext) is that
> the object never refreshes its values from DB.
> diff --git
> a/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchTest.java
> b/framework/cayenne-jdk1.5-unpublished/sr
> index 0c55a60..a5ba2bf 100644
> ---
> a/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchTest.java
> +++
> b/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchTest.java
> @@ -464,6 +464,9 @@ public class DataContextPrefetchTest extends
> DataContextCase {
> // testing null to-one target
> Painting p4 = (Painting) results.get(3);
>
> assertNull(p4.readPropertyDirectly(Painting.TO_PAINTING_INFO_PROPERTY));
> +
> + // there was a bug marking an object as dirty when clearing the
> relationships
> + assertEquals(PersistenceState.COMMITTED,
> p4.getPersistenceState());
> }
> finally {
> unblockQueries();
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.