You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by ju...@apache.org on 2001/03/08 16:20:26 UTC

cvs commit: jakarta-slide/src/share/org/apache/slide/content ContentImpl.java

juergen     01/03/08 07:20:25

  Modified:    src/share/org/apache/slide/content ContentImpl.java
  Log:
  if the content child store did add some properties these added properties were not stored to the revisionDescriptor child store.
  
  Revision  Changes    Path
  1.22      +37 -37    jakarta-slide/src/share/org/apache/slide/content/ContentImpl.java
  
  Index: ContentImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/content/ContentImpl.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ContentImpl.java	2001/02/26 00:57:43	1.21
  +++ ContentImpl.java	2001/03/08 15:20:22	1.22
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/content/ContentImpl.java,v 1.21 2001/02/26 00:57:43 remm Exp $
  - * $Revision: 1.21 $
  - * $Date: 2001/02/26 00:57:43 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/content/ContentImpl.java,v 1.22 2001/03/08 15:20:22 juergen Exp $
  + * $Revision: 1.22 $
  + * $Date: 2001/03/08 15:20:22 $
    *
    * ====================================================================
    *
  @@ -77,7 +77,7 @@
    * Implementation of the content interface.
    *
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.21 $
  + * @version $Revision: 1.22 $
    */
   public final class ContentImpl implements Content {
       
  @@ -251,7 +251,7 @@
           
           Uri objectUri = namespace.getUri(revisionDescriptors.getUri());
           
  -        NodeRevisionDescriptor revisionDescriptor = 
  +        NodeRevisionDescriptor revisionDescriptor =
               objectUri.getStore().retrieveRevisionDescriptor
               (objectUri, revisionNumber);
           
  @@ -329,12 +329,12 @@
                                namespaceConfig.getReadRevisionContentAction());
           
           Uri objectUri = namespace.getUri(strUri);
  -        NodeRevisionContent revisionContent = 
  +        NodeRevisionContent revisionContent =
               objectUri.getStore().retrieveRevisionContent(objectUri,
                                                            revisionDescriptor);
           
           // Invoke interceptors
  -        invokeInterceptors(token, null, revisionDescriptor, 
  +        invokeInterceptors(token, null, revisionDescriptor,
                              revisionContent, POST_RETRIEVE);
           
           return revisionContent;
  @@ -492,7 +492,7 @@
               if (!revisionDescriptors.hasRevisions()) {
                   
                   // Invoke interceptors
  -                invokeInterceptors(token, revisionDescriptors, 
  +                invokeInterceptors(token, revisionDescriptors,
                                      revisionDescriptor,
                                      revisionContent, PRE_STORE);
                   
  @@ -509,23 +509,25 @@
               } else {
                   
                   try {
  +                        { // merge the new received properties into the revisionDescriptor
  +                            // We update the descriptor's properties
  +                            NodeRevisionDescriptor oldRevisionDescriptor =
  +                                objectUri.getStore()
  +                                   .retrieveRevisionDescriptor(objectUri, newRevisionNumber);
  +                            Enumeration newPropertiesList =
  +                                revisionDescriptor.enumerateProperties();
  +                            while (newPropertiesList.hasMoreElements()) {
  +                                oldRevisionDescriptor
  +                                    .setProperty( (NodeProperty) newPropertiesList.nextElement() );
  +                            }
  +                            
  +                            // now use the merged revision descriptor
  +                            revisionDescriptor = oldRevisionDescriptor;
  +                        } // end of merge
                       
  -                    // We update the descriptor's properties
  -                    NodeRevisionDescriptor oldRevisionDescriptor =
  -                        objectUri.getStore()
  -                        .retrieveRevisionDescriptor(objectUri,
  -                                                    newRevisionNumber);
  -                    Enumeration newPropertiesList =
  -                        revisionDescriptor.enumerateProperties();
  -                    while (newPropertiesList.hasMoreElements()) {
  -                        oldRevisionDescriptor
  -                            .setProperty( (NodeProperty) newPropertiesList
  -                                         .nextElement() );
  -                    }
  -                    
                       // Invoke interceptors
  -                    invokeInterceptors(token, revisionDescriptors, 
  -                                       oldRevisionDescriptor,
  +                    invokeInterceptors(token, revisionDescriptors,
  +                                       revisionDescriptor,
                                          revisionContent, PRE_STORE);
                       
                       if (revisionContent != null) {
  @@ -544,9 +546,7 @@
                       }
                       
                       objectUri.getStore()
  -                        .storeRevisionDescriptor(objectUri,
  -                                                 oldRevisionDescriptor);
  -                    revisionDescriptor = oldRevisionDescriptor;
  +                        .storeRevisionDescriptor(objectUri, revisionDescriptor);
                       
                   } catch (RevisionDescriptorNotFoundException e) {
                       // Should NEVER happen.
  @@ -555,7 +555,7 @@
                       // HAS revisions.
                       
                       // Invoke interceptors
  -                    invokeInterceptors(token, revisionDescriptors, 
  +                    invokeInterceptors(token, revisionDescriptors,
                                          revisionDescriptor,
                                          revisionContent, PRE_STORE);
                       
  @@ -699,7 +699,7 @@
               basedOnRevisionContent =
                   objectUri.getStore().retrieveRevisionContent
                   (objectUri,
  -				 basedOnRevisionDescriptor);
  +                 basedOnRevisionDescriptor);
           } catch (RevisionNotFoundException e) {
           }
           
  @@ -717,7 +717,7 @@
               (basedOnRevisionNumber, branchedRevisionNumber);
           
           // Invoke interceptors
  -        invokeInterceptors(token, revisionDescriptors, 
  +        invokeInterceptors(token, revisionDescriptors,
                              basedOnRevisionDescriptor,
                              basedOnRevisionContent, PRE_STORE);
           
  @@ -732,7 +732,7 @@
               (objectUri, revisionDescriptors);
           
           // Invoke interceptors
  -        invokeInterceptors(token, revisionDescriptors, 
  +        invokeInterceptors(token, revisionDescriptors,
                              basedOnRevisionDescriptor,
                              basedOnRevisionContent, POST_STORE);
           
  @@ -1014,7 +1014,7 @@
           
           Uri objectUri = namespace.getUri(strUri);
           
  -        NodeRevisionDescriptor revisionDescriptor = 
  +        NodeRevisionDescriptor revisionDescriptor =
               objectUri.getStore().retrieveRevisionDescriptor
               (objectUri, revisionNumber);
           
  @@ -1148,13 +1148,13 @@
        * Set default properties for a revision descriptors.
        */
       protected void setDefaultProperties
  -        (ObjectNode associatedObject, 
  +        (ObjectNode associatedObject,
            NodeRevisionDescriptor revisionDescriptor) {
           // Retrieving the roles of the associated object
           Enumeration roles = securityHelper.getRoles(associatedObject);
           while (roles.hasMoreElements()) {
               String role = (String) roles.nextElement();
  -            Enumeration defaultProperties = 
  +            Enumeration defaultProperties =
                   namespaceConfig.getDefaultProperties(role);
               revisionDescriptor.setDefaultProperties(defaultProperties);
           }
  @@ -1168,23 +1168,23 @@
           (SlideToken token, NodeRevisionDescriptors revisionDescriptors,
            NodeRevisionDescriptor revisionDescriptor,
            NodeRevisionContent revisionContent, int type) {
  -        ContentInterceptor[] contentInterceptors = 
  +        ContentInterceptor[] contentInterceptors =
               namespace.getContentInterceptors();
           for (int i = 0; i < contentInterceptors.length; i++) {
               switch (type) {
               case PRE_STORE:
                   contentInterceptors[i].preStoreContent
  -                    (token, revisionDescriptors, 
  +                    (token, revisionDescriptors,
                        revisionDescriptor, revisionContent);
                   break;
               case POST_STORE:
                   contentInterceptors[i].postStoreContent
  -                    (token, revisionDescriptors, 
  +                    (token, revisionDescriptors,
                        revisionDescriptor, revisionContent);
                   break;
               case POST_RETRIEVE:
                   contentInterceptors[i].postRetrieveContent
  -                    (token, revisionDescriptors, 
  +                    (token, revisionDescriptors,
                        revisionDescriptor, revisionContent);
                   break;
               }