You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2012/02/27 15:56:52 UTC

svn commit: r1294173 - /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java

Author: aadamchik
Date: Mon Feb 27 14:56:52 2012
New Revision: 1294173

URL: http://svn.apache.org/viewvc?rev=1294173&view=rev
Log:
CAY-1670 Non-blocking DataRowStore

missed a synchronized block

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java?rev=1294173&r1=1294172&r2=1294173&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java Mon Feb 27 14:56:52 2012
@@ -66,7 +66,7 @@ class DataDomainFlushAction {
     private DataDomainFlattenedBucket flattenedBucket;
 
     private List<Query> queries;
-    
+
     private JdbcEventLogger logger;
 
     DataDomainFlushAction(DataDomain domain) {
@@ -96,11 +96,11 @@ class DataDomainFlushAction {
     Map<ObjectId, DataRow> getResultModifiedSnapshots() {
         return resultModifiedSnapshots;
     }
-    
+
     public void setJdbcEventLogger(JdbcEventLogger logger) {
         this.logger = logger;
     }
-    
+
     public JdbcEventLogger getJdbcEventLogger() {
         return this.logger;
     }
@@ -153,12 +153,8 @@ class DataDomainFlushAction {
 
         runQueries();
 
-        // note that there is no syncing on the object store itself. This is caller's
-        // responsibility.
-        synchronized (context.getObjectStore().getDataRowCache()) {
-            postprocess(context);
-            return resultDiff;
-        }
+        postprocess(context);
+        return resultDiff;
     }
 
     private void preprocess(DataContext context, GraphDiff changes) {
@@ -197,8 +193,8 @@ class DataDomainFlushAction {
     }
 
     private void runQueries() {
-        DataDomainFlushObserver observer = new DataDomainFlushObserver(domain
-                .getJdbcEventLogger());
+        DataDomainFlushObserver observer = new DataDomainFlushObserver(
+                domain.getJdbcEventLogger());
 
         // split query list by spanned nodes and run each single node range individually.
         // Since connections are reused per node within an open transaction, there should
@@ -257,12 +253,15 @@ class DataDomainFlushAction {
                 || !resultModifiedSnapshots.isEmpty()
                 || !resultIndirectlyModifiedIds.isEmpty()) {
 
-            context.getObjectStore().getDataRowCache().processSnapshotChanges(
-                    context.getObjectStore(),
-                    resultModifiedSnapshots,
-                    resultDeletedIds,
-                    Collections.EMPTY_LIST,
-                    resultIndirectlyModifiedIds);
+            context
+                    .getObjectStore()
+                    .getDataRowCache()
+                    .processSnapshotChanges(
+                            context.getObjectStore(),
+                            resultModifiedSnapshots,
+                            resultDeletedIds,
+                            Collections.EMPTY_LIST,
+                            resultIndirectlyModifiedIds);
         }
 
         context.getObjectStore().postprocessAfterCommit(resultDiff);