[jboss-cvs] JBossAS SVN: r80108 - projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1549/unit.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Oct 27 10:24:49 EDT 2008
Author: wolfc
Date: 2008-10-27 10:24:49 -0400 (Mon, 27 Oct 2008)
New Revision: 80108
Modified:
projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1549/unit/PassivationDoesNotPreventNewActivityUnitTestCase.java
Log:
EJBTHREE-1549: bean remains in cache
Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1549/unit/PassivationDoesNotPreventNewActivityUnitTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1549/unit/PassivationDoesNotPreventNewActivityUnitTestCase.java 2008-10-27 13:46:54 UTC (rev 80107)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/ejbthree1549/unit/PassivationDoesNotPreventNewActivityUnitTestCase.java 2008-10-27 14:24:49 UTC (rev 80108)
@@ -21,10 +21,18 @@
*/
package org.jboss.ejb3.core.test.ejbthree1549.unit;
+import static org.junit.Assert.assertFalse;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.lang.reflect.Proxy;
+import java.util.Map;
+
import junit.framework.TestCase;
import org.jboss.ejb3.cache.CacheFactoryRegistry;
import org.jboss.ejb3.cache.persistence.PersistenceManagerFactoryRegistry;
+import org.jboss.ejb3.cache.simple.SimpleStatefulCache;
import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
import org.jboss.ejb3.core.test.common.AbstractEJB3TestCase;
import org.jboss.ejb3.core.test.ejbthree1549.BlockingPersistenceManager;
@@ -33,7 +41,9 @@
import org.jboss.ejb3.core.test.ejbthree1549.ForcePassivationCacheFactory;
import org.jboss.ejb3.core.test.ejbthree1549.MyStatefulBean;
import org.jboss.ejb3.core.test.ejbthree1549.MyStatefulLocal;
+import org.jboss.ejb3.proxy.handler.session.stateful.StatefulLocalProxyInvocationHandler;
import org.jboss.ejb3.session.SessionContainer;
+import org.jboss.ejb3.stateful.StatefulContainer;
import org.jboss.logging.Logger;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -58,6 +68,32 @@
private static final Logger log = Logger.getLogger(PassivationDoesNotPreventNewActivityUnitTestCase.class);
+ private static Map getCacheMap(SimpleStatefulCache cache)
+ {
+ try
+ {
+ Field f = SimpleStatefulCache.class.getDeclaredField("cacheMap");
+ f.setAccessible(true);
+ return (Map) f.get(cache);
+ }
+ catch(SecurityException e)
+ {
+ throw new RuntimeException(e);
+ }
+ catch(NoSuchFieldException e)
+ {
+ throw new RuntimeException(e);
+ }
+ catch (IllegalArgumentException e)
+ {
+ throw new RuntimeException(e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
// --------------------------------------------------------------------------------||
// Tests --------------------------------------------------------------------------||
// --------------------------------------------------------------------------------||
@@ -211,6 +247,10 @@
// Wait to allow passivation to actually start
Thread.sleep(2000);
+ StatefulLocalProxyInvocationHandler handler = (StatefulLocalProxyInvocationHandler) Proxy.getInvocationHandler(bean1);
+ Serializable sessionId = handler.getSessionId();
+ assertFalse("bean was not removed from cache", getCacheMap((SimpleStatefulCache) ((StatefulContainer) container).getCache()).containsKey(sessionId));
+
/*
* At this point, we've told the passivation Thread to start, and have
* locked it from completing. So let's try our test in another Thread
More information about the jboss-cvs-commits
mailing list