svnno****@sourc*****
svnno****@sourc*****
2008年 8月 22日 (金) 15:46:16 JST
Revision: 1101 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1101 Author: shinsuke Date: 2008-08-22 15:46:15 +0900 (Fri, 22 Aug 2008) Log Message: ----------- fixed ConcurrentModificationException Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/layout/impl/MovePortletAction.java -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/layout/impl/MovePortletAction.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/layout/impl/MovePortletAction.java 2008-08-22 05:39:53 UTC (rev 1100) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/layout/impl/MovePortletAction.java 2008-08-22 06:46:15 UTC (rev 1101) @@ -336,29 +336,33 @@ { PortletPlacementContext placement = null; Page page = requestContext.getPage(); + synchronized (page.getId()) + { + if (currentLayoutFragment == null) + currentLayoutFragment = getParentFragmentById( + moveFragmentId, page.getRootFragment()); - if (currentLayoutFragment == null) - currentLayoutFragment = getParentFragmentById( - moveFragmentId, page.getRootFragment()); + if (currentLayoutFragment != null) + placement = new PortletPlacementContextImpl(page, + registry, currentLayoutFragment); + else + placement = new PortletPlacementContextImpl(page, + registry); - if (currentLayoutFragment != null) - placement = new PortletPlacementContextImpl(page, registry, - currentLayoutFragment); - else - placement = new PortletPlacementContextImpl(page, registry); + Fragment fragment = placement + .getFragmentById(moveFragmentId); + if (fragment == null) + { + success = false; + resultMap.put(REASON, + "Failed to find fragment for portlet id: " + + moveFragmentId); + return success; + } - Fragment fragment = placement.getFragmentById(moveFragmentId); - if (fragment == null) - { - success = false; - resultMap.put(REASON, - "Failed to find fragment for portlet id: " - + moveFragmentId); - return success; + success = moveInFragment(requestContext, placement, + fragment, null, resultMap, batch); } - - success = moveInFragment(requestContext, placement, fragment, - null, resultMap, batch); } if (success) {