[jboss-cvs] JBossAS SVN: r111475 - branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/tomcat/service/sso.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri May 27 17:06:42 EDT 2011
Author: dereed
Date: 2011-05-27 17:06:42 -0400 (Fri, 27 May 2011)
New Revision: 111475
Modified:
branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/tomcat/service/sso/TreeCacheSSOClusterManager.java
Log:
[JBPAPP-5920] Fix UpgradeException when multiple requests with the same SSO ID create a session simultaneously
Modified: branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/tomcat/service/sso/TreeCacheSSOClusterManager.java
===================================================================
--- branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/tomcat/service/sso/TreeCacheSSOClusterManager.java 2011-05-27 19:31:46 UTC (rev 111474)
+++ branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/tomcat/service/sso/TreeCacheSSOClusterManager.java 2011-05-27 21:06:42 UTC (rev 111475)
@@ -373,6 +373,9 @@
if(doTx)
tm.begin();
+ // JBAS-8866 - force write lock to avoid UpgradeException for concurrent callers
+ putInTreeCache ( fqn, "LOCK", null, true );
+
Set sessions = getSessionSet(fqn, true, false);
sessions.add(new SessionAddress(getSessionAddressId(session), localAddress));
@@ -585,6 +588,9 @@
if(doTx)
tm.begin();
+ // JBAS-8866 - force write lock to avoid UpgradeException for concurrent callers
+ putInTreeCache ( fqn, "LOCK", null, true );
+
Set sessions = getSessionSet(fqn, false, false);
if (sessions != null)
{
@@ -1152,7 +1158,12 @@
private void putInTreeCache(Fqn fqn, Object data, boolean localOnly) throws Exception
{
- Object[] args = new Object[]{fqn, KEY, data, localOnly ? LOCAL_OPTION : GRAVITATE_OPTION};
+ putInTreeCache ( fqn, KEY, data, localOnly );
+ }
+
+ private void putInTreeCache(Fqn fqn, Object key, Object data, boolean localOnly) throws Exception
+ {
+ Object[] args = new Object[]{fqn, key, data, localOnly ? LOCAL_OPTION : GRAVITATE_OPTION};
server.invoke(getCacheObjectName(), "put", args, PUT_SIGNATURE);
}
More information about the jboss-cvs-commits
mailing list