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 2011/02/09 15:29:21 UTC

svn commit: r1068902 - /cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java

Author: aadamchik
Date: Wed Feb  9 14:29:21 2011
New Revision: 1068902

URL: http://svn.apache.org/viewvc?rev=1068902&view=rev
Log:
CAY-1534 cayenne-lifecycle: implement AuditableFilter

* exposing sync cleanup method to subclasses to simplify per-commit state management

Modified:
    cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java

Modified: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java?rev=1068902&r1=1068901&r2=1068902&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java Wed Feb  9 14:29:21 2011
@@ -73,12 +73,22 @@ public class AuditableFilter implements 
             }
         }
         finally {
-            threadAggregator.set(null);
+            cleanupPostSync();
         }
 
         return response;
     }
 
+    /**
+     * A method called at the end of every
+     * {@link #onSync(ObjectContext, GraphDiff, int, DataChannelFilterChain)} invocation.
+     * This implementation uses it for cleaning up thread-local state of the filter.
+     * Subclasses may override it to do their own cleanup, and are expected to call super.
+     */
+    protected void cleanupPostSync() {
+        threadAggregator.set(null);
+    }
+
     void postSync() {
         AuditableAggregator aggregator = threadAggregator.get();
         if (aggregator != null) {