You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2004/09/02 11:02:17 UTC

svn commit: rev 37364 - in cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal: layout/impl profile/impl

Author: cziegeler
Date: Thu Sep  2 02:02:16 2004
New Revision: 37364

Modified:
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
Log:
Fix bug in copy

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java	Thu Sep  2 02:02:16 2004
@@ -15,8 +15,6 @@
  */
 package org.apache.cocoon.portal.layout.impl;
 
-import java.util.Map;
-
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
 import org.apache.cocoon.portal.layout.AbstractLayout;
 import org.apache.cocoon.portal.layout.Layout;
@@ -48,7 +46,7 @@
     protected Object clone() throws CloneNotSupportedException {
         CopletLayout clone = (CopletLayout)super.clone();
         
-        this.copletInstanceData = null;
+        clone.copletInstanceData = null;
         
         return clone;
     }
@@ -56,16 +54,13 @@
     /* (non-Javadoc)
      * @see org.apache.cocoon.portal.layout.Layout#copy()
      */
-    public Layout copy(Map copletInstanceDatas) {
+    public Layout copy() {
         CopletLayout clone = (CopletLayout)super.copy();
-        if (copletInstanceDatas == null) {
-            clone.copletInstanceData = this.copletInstanceData;
-        } else {
-            if ( this.copletInstanceData != null ) {
-                clone.copletInstanceData = this.copletInstanceData.copy();
-            }
-            
+
+        if ( this.copletInstanceData != null ) {
+            clone.copletInstanceData = this.copletInstanceData.copy();
         }
+            
         return clone;
     }
 }

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java	Thu Sep  2 02:02:16 2004
@@ -109,6 +109,13 @@
         }
     }
 
+    protected void storeUserProfile(String layoutKey, PortalService service, UserProfile profile) {
+        if ( layoutKey == null ) {
+            layoutKey = this.getDefaultLayoutKey();
+        }
+        service.setAttribute(KEY_PREFIX + layoutKey, profile);
+    }
+    
     /**
      * Prepares the object by using the specified factory.
      */
@@ -369,14 +376,15 @@
         try {
             loader = (ProfileLS)this.manager.lookup( ProfileLS.ROLE );
             final UserProfile profile = new UserProfile();
-        
+            this.storeUserProfile(layoutKey, service, profile);
+            
             // first "load" the global data
             profile.setCopletBaseDatas( this.getGlobalBaseDatas(loader, info, service) );
             profile.setCopletDatas( this.getGlobalDatas(loader, info, service) );
             
             // now load the user/group specific data
             if ( !this.getCopletInstanceDatas(loader, profile, info, service, CATEGORY_USER) ) {
-                if ( !this.getCopletInstanceDatas(loader, profile, info, service, CATEGORY_GROUP)) {
+                if ( info.getGroup() == null || !this.getCopletInstanceDatas(loader, profile, info, service, CATEGORY_GROUP)) {
                     if ( !this.getCopletInstanceDatas(loader, profile, info, service, CATEGORY_GLOBAL) ) {
                         throw new ProcessingException("No profile for copletinstancedatas found.");
                     }
@@ -384,7 +392,7 @@
             }
 
             if ( !this.getLayout(loader, profile, info, service, CATEGORY_USER) ) {
-                if ( !this.getLayout(loader, profile, info, service, CATEGORY_GROUP)) {
+                if ( info.getGroup() == null || !this.getLayout(loader, profile, info, service, CATEGORY_GROUP)) {
                     if ( !this.getLayout(loader, profile, info, service, CATEGORY_GLOBAL) ) {
                         throw new ProcessingException("No profile for layout found.");
                     }