Author: ate
Date: Wed May 20 11:52:59 2009
New Revision: 776671

URL: http://svn.apache.org/viewvc?rev=776671&view=rev
Log:
Fix for JS2-1020: Incorrect caching of user preferences can cause preference 
values to be returned from another user or stale values on export
See: http://issues.apache.org/jira/browse/JS2-1020

Modified:
    
portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java?rev=776671&r1=776670&r2=776671&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java
 Wed May 20 11:52:59 2009
@@ -748,8 +748,9 @@
         JetspeedPreferencesMap userPreferences = new JetspeedPreferencesMap();
         String appName = portletdefinition.getApplication().getName();
         String portletName = portletdefinition.getPortletName();
-
-        CacheElement cachedDefaults = 
preferenceCache.get(getEntityPreferenceKey(appName, portletName,windowId));
+        
+        String userCacheKey = getUserPreferenceKey(appName, 
portletName,windowId, userName);
+        CacheElement cachedDefaults = preferenceCache.get(userCacheKey);
         if (cachedDefaults != null)
         {
             userPreferences = (JetspeedPreferencesMap) 
cachedDefaults.getContent();
@@ -771,7 +772,7 @@
                 value.setReadOnly(preference.isReadOnly());
                 userPreferences.put(preference.getName(), value);
             }
-            
preferenceCache.put(preferenceCache.createElement(getEntityPreferenceKey(appName,
 portletName,windowId), userPreferences));
+            preferenceCache.put(preferenceCache.createElement(userCacheKey, 
userPreferences));
         }
         return userPreferences;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to