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 2007/03/30 15:25:04 UTC

svn commit: r524077 - in /cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src: main/java/org/apache/cayenne/access/ test/java/org/apache/cayenne/access/

Author: aadamchik
Date: Fri Mar 30 06:25:01 2007
New Revision: 524077

URL: http://svn.apache.org/viewvc?view=rev&rev=524077
Log:
deprecating DataRowStore constructors that instantiate Eventmanager behind the scenes to avoid accidental dispatch thread leak (as EM does not do a good job of thread pooling)

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/access/DataRowStore.java
    cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataRowStoreTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/MockDataRowStore.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/access/DataRowStore.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/access/DataRowStore.java?view=diff&rev=524077&r1=524076&r2=524077
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/access/DataRowStore.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/access/DataRowStore.java Fri Mar 30 06:25:01 2007
@@ -89,6 +89,9 @@
 
     /**
      * Creates new named DataRowStore with default configuration.
+     * 
+     * @deprecated since 3.0 as it instantiates an EventManager internally that can lead
+     *             to dispatch thread leaks.
      */
     public DataRowStore(String name) {
         this(name, Collections.EMPTY_MAP);
@@ -102,6 +105,8 @@
      *            Can't be null.
      * @param properties Properties map used to configure DataRowStore parameters. Can be
      *            null.
+     * @deprecated since 3.0 as it instantiates an EventManager internally that can lead
+     *             to dispatch thread leaks.
      */
     public DataRowStore(String name, Map properties) {
         this(name, properties, new EventManager());

Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricTest.java?view=diff&rev=524077&r1=524076&r2=524077
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricTest.java Fri Mar 30 06:25:01 2007
@@ -17,15 +17,16 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.access;
 
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.art.Artist;
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.DataChannel;
 import org.apache.cayenne.PersistenceState;
+import org.apache.cayenne.event.EventManager;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.unit.CayenneCase;
@@ -46,7 +47,10 @@
 
         deleteTestData();
 
-        DataRowStore cache = new DataRowStore("cacheTest");
+        DataRowStore cache = new DataRowStore(
+                "cacheTest",
+                Collections.EMPTY_MAP,
+                new EventManager());
 
         c1 = new DataContext((DataChannel) getDomain(), new ObjectStore(cache));
         c2 = new DataContext((DataChannel) getDomain(), new ObjectStore(cache));

Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java?view=diff&rev=524077&r1=524076&r2=524077
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java Fri Mar 30 06:25:01 2007
@@ -30,6 +30,7 @@
 import org.apache.cayenne.cache.MockQueryCacheFactory;
 import org.apache.cayenne.cache.QueryCache;
 import org.apache.cayenne.cache.QueryCacheFactory;
+import org.apache.cayenne.event.EventManager;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.unit.CayenneCase;
@@ -339,7 +340,10 @@
 
         final boolean[] cacheShutdown = new boolean[1];
 
-        DataRowStore cache = new DataRowStore("Y") {
+        DataRowStore cache = new DataRowStore(
+                "Y",
+                Collections.EMPTY_MAP,
+                new EventManager()) {
 
             public void shutdown() {
                 cacheShutdown[0] = true;

Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataRowStoreTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataRowStoreTest.java?view=diff&rev=524077&r1=524076&r2=524077
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataRowStoreTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataRowStoreTest.java Fri Mar 30 06:25:01 2007
@@ -26,6 +26,7 @@
 import org.apache.art.Artist;
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.ObjectId;
+import org.apache.cayenne.event.EventManager;
 import org.apache.cayenne.unit.CayenneCase;
 
 /**
@@ -34,7 +35,10 @@
 public class DataRowStoreTest extends CayenneCase {
 
     public void testDefaultConstructor() {
-        DataRowStore cache = new DataRowStore("cacheXYZ");
+        DataRowStore cache = new DataRowStore(
+                "cacheXYZ",
+                Collections.EMPTY_MAP,
+                new EventManager());
         assertEquals("cacheXYZ", cache.getName());
         assertNotNull(cache.getSnapshotEventSubject());
         assertTrue(cache.getSnapshotEventSubject().getSubjectName().indexOf("cacheXYZ") >= 0);
@@ -48,14 +52,17 @@
         props.put(DataRowStore.REMOTE_NOTIFICATION_PROPERTY, String
                 .valueOf(!DataRowStore.REMOTE_NOTIFICATION_DEFAULT));
 
-        DataRowStore cache = new DataRowStore("cacheXYZ", props);
+        DataRowStore cache = new DataRowStore("cacheXYZ", props, new EventManager());
         assertEquals("cacheXYZ", cache.getName());
         assertEquals(!DataRowStore.REMOTE_NOTIFICATION_DEFAULT, cache
                 .isNotifyingRemoteListeners());
     }
 
     public void testNotifyingRemoteListeners() {
-        DataRowStore cache = new DataRowStore("cacheXYZ");
+        DataRowStore cache = new DataRowStore(
+                "cacheXYZ",
+                Collections.EMPTY_MAP,
+                new EventManager());
 
         assertEquals(DataRowStore.REMOTE_NOTIFICATION_DEFAULT, cache
                 .isNotifyingRemoteListeners());
@@ -72,7 +79,7 @@
         Map props = new HashMap();
         props.put(DataRowStore.SNAPSHOT_CACHE_SIZE_PROPERTY, String.valueOf(2));
 
-        DataRowStore cache = new DataRowStore("cacheXYZ", props);
+        DataRowStore cache = new DataRowStore("cacheXYZ", props, new EventManager());
         assertEquals(2, cache.maximumSize());
         assertEquals(0, cache.size());
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/MockDataRowStore.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/MockDataRowStore.java?view=diff&rev=524077&r1=524076&r2=524077
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/MockDataRowStore.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/MockDataRowStore.java Fri Mar 30 06:25:01 2007
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.access;
 
 import java.util.HashMap;
@@ -25,6 +24,7 @@
 
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.ObjectId;
+import org.apache.cayenne.event.EventManager;
 
 /**
  * A "lightweight" DataRowStore.
@@ -41,7 +41,7 @@
     }
 
     public MockDataRowStore() {
-        super("mock DataRowStore", TEST_DEFAULTS);
+        super("mock DataRowStore", TEST_DEFAULTS, new EventManager());
     }
 
     /**