Author: woonsan
Date: Wed Dec 23 16:36:20 2009
New Revision: 893567

URL: http://svn.apache.org/viewvc?rev=893567&view=rev
Log:
JS2-1057: Invalidation space in session when the portal path changes.

Modified:
    
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
    
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java

Modified: 
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java?rev=893567&r1=893566&r2=893567&view=diff
==============================================================================
--- 
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
 (original)
+++ 
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
 Wed Dec 23 16:36:20 2009
@@ -144,13 +144,32 @@
             spaces = spacesService.listSpaces();
         }              
         request.getPortletSession().setAttribute("spaces", spaces);        
-        Space space = 
(Space)request.getPortletSession().getAttribute("space");               
+        Space space = (Space) 
request.getPortletSession().getAttribute("space");
+        
+        if (space != null)
+        {
+            // check if this space matches the current portal page path.
+            RequestContext rc = (RequestContext) 
request.getAttribute(RequestContext.REQUEST_PORTALENV);
+            String portalPagePath = rc.getPortalURL().getPath();
+            
+            if (portalPagePath == null || "".equals(portalPagePath))
+            {
+                portalPagePath = "/";
+            }
+            
+            if (!portalPagePath.startsWith(space.getPath()))
+            {
+                space = null;
+            }
+        }
+        
         if (space == null)
         {                
             space = spaces.get(0);
+            
             if (newSpace != null)
             {
-                for (Space sp: spaces)
+                for (Space sp : spaces)
                 {
                     if (sp.getName().equals(newSpace))
                     {
@@ -159,6 +178,7 @@
                     }
                 }
             }
+            
             request.getPortletSession().setAttribute("space", space);        
         }                    
         request.setAttribute("space", space);

Modified: 
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java?rev=893567&r1=893566&r2=893567&view=diff
==============================================================================
--- 
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java
 (original)
+++ 
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/SpaceNavigator.java
 Wed Dec 23 16:36:20 2009
@@ -30,6 +30,7 @@
 import org.apache.jetspeed.CommonPortletServices;
 import org.apache.jetspeed.administration.PortalAdministration;
 import org.apache.jetspeed.page.PageManager;
+import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.spaces.Space;
 import org.apache.jetspeed.spaces.Spaces;
 import org.apache.portals.bridges.common.GenericServletPortlet;
@@ -83,9 +84,28 @@
             spaces = spacesService.listSpaces();
             request.setAttribute("spaces", spaces);        
             request.getPortletSession().setAttribute("spaces", spaces);        
-        }              
+        }
+        
         request.setAttribute("spaces", spaces);
-        Space space = 
(Space)request.getPortletSession().getAttribute("space");               
+        Space space = (Space)request.getPortletSession().getAttribute("space");
+        
+        if (space != null)
+        {
+            // check if this space matches the current portal page path.
+            RequestContext rc = (RequestContext) 
request.getAttribute(RequestContext.REQUEST_PORTALENV);
+            String portalPagePath = rc.getPortalURL().getPath();
+            
+            if (portalPagePath == null || "".equals(portalPagePath))
+            {
+                portalPagePath = "/";
+            }
+            
+            if (!portalPagePath.startsWith(space.getPath()))
+            {
+                space = null;
+            }
+        }
+        
         if (space == null && spaceName != null)
         {
             for (Space sp: spaces)
@@ -93,18 +113,22 @@
                 if (sp.getName().equals(spaceName))
                 {
                     space = sp;
+                    request.getPortletSession().setAttribute("space", space);
                     break;
                 }
             }
         }
+        
         if (space== null)
         {
             space = spaces.get(0);
+            request.getPortletSession().setAttribute("space", space);
             spaceName = space.getName();
         }
+        
         request.setAttribute("title", spaceName);        
         request.setAttribute("space", space);
-        request.getPortletSession().setAttribute("space", space);              
  
+        
         try
         {
             super.doView(request, response);



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org
For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org

Reply via email to