You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2006/01/24 08:06:47 UTC
svn commit: r371849 - in
/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page:
impl/ psml/
Author: rwatler
Date: Mon Jan 23 23:06:44 2006
New Revision: 371849
URL: http://svn.apache.org/viewcvs?rev=371849&view=rev
Log:
ensure Fragment fragments lists always immutable: see JS2-473
Added:
portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FilteredFragmentList.java
- copied unchanged from r371848, portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FilteredFragmentList.java
portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/psml/FilteredFragmentList.java
- copied unchanged from r371848, portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/psml/FilteredFragmentList.java
Modified:
portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java
portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java
portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/psml/FragmentImpl.java
Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java?rev=371849&r1=371848&r2=371849&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java Mon Jan 23 23:06:44 2006
@@ -556,16 +556,13 @@
*/
public List getFragments()
{
- // mutable fragments collection must be defined... note
- // that this collection is only mutable if user has full
- // access rights to all fragments; otherwise, a copy of
- // the list will be returned and any modifications to the
- // set of fragments in the collection will not be preserved
+ // create and return mutable fragments collection
+ // filtered by view access
if (fragmentsList == null)
{
fragmentsList = new FragmentList(this);
}
- return filterFragmentsByAccess(fragmentsList);
+ return filterFragmentsByAccess(fragmentsList, true);
}
/* (non-Javadoc)
@@ -726,10 +723,11 @@
* Filter fragments list for view access.
*
* @param nodes list containing fragments to check
+ * @param mutable make returned list mutable
* @return original list if all elements viewable, a filtered
* partial list, or null if all filtered for view access
*/
- static List filterFragmentsByAccess(List fragments)
+ List filterFragmentsByAccess(List fragments, boolean mutable)
{
if ((fragments != null) && !fragments.isEmpty())
{
@@ -781,7 +779,14 @@
{
if (!filteredFragments.isEmpty())
{
- return filteredFragments;
+ if (mutable)
+ {
+ return new FilteredFragmentList(this, filteredFragments);
+ }
+ else
+ {
+ return filteredFragments;
+ }
}
else
{
Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java?rev=371849&r1=371848&r2=371849&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java Mon Jan 23 23:06:44 2006
@@ -306,7 +306,8 @@
FragmentImpl rootFragment = (FragmentImpl)getRootFragment();
if (rootFragment != null)
{
- return FragmentImpl.filterFragmentsByAccess(rootFragment.getFragmentsByName(name));
+ // return immutable filtered fragment list
+ return rootFragment.filterFragmentsByAccess(rootFragment.getFragmentsByName(name), false);
}
return null;
}
Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/psml/FragmentImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/psml/FragmentImpl.java?rev=371849&r1=371848&r2=371849&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/psml/FragmentImpl.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/psml/FragmentImpl.java Mon Jan 23 23:06:44 2006
@@ -119,7 +119,8 @@
public List getFragments()
{
- // return mutable fragments list if possible
+ // create and return mutable fragments collection
+ // filtered by view access
if (fragmentsList == null)
{
fragmentsList = new FragmentList(this);
@@ -501,7 +502,7 @@
* @return original list if all elements viewable, a filtered
* partial list, or null if all filtered for view access
*/
- static List filterFragmentsByAccess(List fragments)
+ List filterFragmentsByAccess(List fragments)
{
if ((fragments != null) && !fragments.isEmpty())
{
@@ -553,7 +554,7 @@
{
if (!filteredFragments.isEmpty())
{
- return filteredFragments;
+ return new FilteredFragmentList(this, filteredFragments);
}
else
{
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org