cmailleux    2005/12/06 11:57:08 CET

  Modified files:
    core/src/java/org/jahia/hibernate/manager 
                                              JahiaContainerListManager.java 
                                              JahiaContainerManager.java 
                                              JahiaFieldsDataManager.java 
                                              JahiaPagesManager.java 
    core/src/java/org/jahia/services/importexport 
                                                  ImportExportBaseService.java 
    core/src/java/org/jahia/services/workflow WorkflowService.java 
  Log:
  Use two different cache for linkedObjects and hardLinkedObjects trying to 
avoid strange classcast exception

  

  Do not always put removed object in export
  
  Revision  Changes    Path
  1.14      +6 -0      
jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager.java.diff?r1=1.13&r2=1.14&f=h
  1.21      +6 -0      
jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerManager.java.diff?r1=1.20&r2=1.21&f=h
  1.22      +13 -6     
jahia/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDataManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDataManager.java.diff?r1=1.21&r2=1.22&f=h
  1.16      +6 -0      
jahia/core/src/java/org/jahia/hibernate/manager/JahiaPagesManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaPagesManager.java.diff?r1=1.15&r2=1.16&f=h
  1.56      +2 -1      
jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java.diff?r1=1.55&r2=1.56&f=h
  1.38      +6 -2      
jahia/core/src/java/org/jahia/services/workflow/WorkflowService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/workflow/WorkflowService.java.diff?r1=1.37&r2=1.38&f=h
  
  
  
  Index: JahiaContainerListManager.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- JahiaContainerListManager.java    5 Dec 2005 12:39:40 -0000       1.13
  +++ JahiaContainerListManager.java    6 Dec 2005 10:57:07 -0000       1.14
  @@ -628,6 +628,12 @@
           else {
               cache.flush(true);
           }
  +        cache = 
cacheService.getCache(WorkflowService.WORKFLOWHARDLINKEDOBJECTS_CACHENAME);
  +        if (cache != null && siteID > 0)
  +            cache.flushGroup(WorkflowService.WORKFLOWSERVICESITE_KEYPREFIX + 
siteID);
  +        else {
  +            cache.flush(true);
  +        }
           cache = 
cacheService.getCache(WorkflowService.WORKFLOWMODE_CACHENAME);
           if (cache != null && siteID > 0)
               cache.flushGroup(WorkflowService.WORKFLOWSERVICESITE_KEYPREFIX + 
siteID);
  
  
  
  Index: JahiaContainerManager.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerManager.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- JahiaContainerManager.java        2 Dec 2005 11:23:33 -0000       1.20
  +++ JahiaContainerManager.java        6 Dec 2005 10:57:07 -0000       1.21
  @@ -649,6 +649,12 @@
           else {
               cache.flush(true);
           }
  +        cache = 
cacheService.getCache(WorkflowService.WORKFLOWHARDLINKEDOBJECTS_CACHENAME);
  +        if (cache != null && siteID > 0)
  +            cache.flushGroup(WorkflowService.WORKFLOWSERVICESITE_KEYPREFIX + 
siteID);
  +        else {
  +            cache.flush(true);
  +        }
           cache = 
cacheService.getCache(WorkflowService.WORKFLOWMODE_CACHENAME);
           if (cache != null && siteID >= 0)
               cache.flushGroup(WorkflowService.WORKFLOWSERVICESITE_KEYPREFIX + 
siteID);
  
  
  
  Index: JahiaFieldsDataManager.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDataManager.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- JahiaFieldsDataManager.java       3 Nov 2005 13:22:25 -0000       1.21
  +++ JahiaFieldsDataManager.java       6 Dec 2005 10:57:07 -0000       1.22
  @@ -5,9 +5,12 @@
   
   import org.apache.commons.collections.FastArrayList;
   import org.apache.commons.collections.FastHashMap;
  -import org.apache.commons.logging.Log;
  -import org.apache.commons.logging.LogFactory;
   import org.apache.log4j.Logger;
  +import org.hibernate.ObjectDeletedException;
  +import org.jahia.content.ContentFieldKey;
  +import org.jahia.content.ContentObject;
  +import org.jahia.content.CrossReferenceManager;
  +import org.jahia.content.ObjectKey;
   import org.jahia.data.fields.FieldTypes;
   import org.jahia.data.fields.JahiaField;
   import org.jahia.exceptions.JahiaException;
  @@ -16,6 +19,7 @@
   import org.jahia.hibernate.model.JahiaFieldsDataPK;
   import org.jahia.hibernate.model.JahiaFieldsDef;
   import org.jahia.hibernate.model.JahiaObjectPK;
  +import org.jahia.params.ProcessingContext;
   import org.jahia.registries.ServicesRegistry;
   import org.jahia.services.cache.Cache;
   import org.jahia.services.cache.CacheService;
  @@ -26,12 +30,9 @@
   import org.jahia.services.version.EntryLoadRequest;
   import org.jahia.services.version.EntryStateable;
   import org.jahia.services.version.JahiaSaveVersion;
  -import org.jahia.services.workflow.WorkflowService;
   import org.jahia.services.webdav.UsageEntry;
  -import org.jahia.content.*;
  -import org.jahia.params.ProcessingContext;
  +import org.jahia.services.workflow.WorkflowService;
   import org.springframework.orm.ObjectRetrievalFailureException;
  -import org.hibernate.ObjectDeletedException;
   
   import java.util.ArrayList;
   import java.util.List;
  @@ -124,6 +125,12 @@
           else {
               cache.flush(true);
           }
  +        cache = 
cacheService.getCache(WorkflowService.WORKFLOWHARDLINKEDOBJECTS_CACHENAME);
  +        if (cache != null && siteID > 0)
  +            cache.flushGroup(WorkflowService.WORKFLOWSERVICESITE_KEYPREFIX + 
siteID);
  +        else {
  +            cache.flush(true);
  +        }
           cache = 
cacheService.getCache(WorkflowService.WORKFLOWMODE_CACHENAME);
           if (cache != null && siteID >= 0)
               cache.flushGroup(WorkflowService.WORKFLOWSERVICESITE_KEYPREFIX + 
siteID);
  
  
  
  Index: JahiaPagesManager.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaPagesManager.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- JahiaPagesManager.java    22 Nov 2005 18:01:43 -0000      1.15
  +++ JahiaPagesManager.java    6 Dec 2005 10:57:07 -0000       1.16
  @@ -127,6 +127,12 @@
           else {
               cache.flush(true);
           }
  +        cache = 
cacheService.getCache(WorkflowService.WORKFLOWHARDLINKEDOBJECTS_CACHENAME);
  +        if (cache != null && siteID > 0)
  +            cache.flushGroup(WorkflowService.WORKFLOWSERVICESITE_KEYPREFIX + 
siteID);
  +        else {
  +            cache.flush(true);
  +        }
           cache = 
cacheService.getCache(WorkflowService.WORKFLOWMODE_CACHENAME);
           if (cache != null && siteID > 0)
               cache.flushGroup(WorkflowService.WORKFLOWSERVICESITE_KEYPREFIX + 
siteID);
  
  
  
  Index: ImportExportBaseService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java,v
  retrieving revision 1.55
  retrieving revision 1.56
  diff -u -r1.55 -r1.56
  --- ImportExportBaseService.java      5 Dec 2005 14:59:47 -0000       1.55
  +++ ImportExportBaseService.java      6 Dec 2005 10:57:08 -0000       1.56
  @@ -606,7 +606,8 @@
           if (toEntryState != null) {
               if (toEntryState.getVersionID ()
                       == 
ContentObjectEntryState.WORKFLOW_STATE_VERSIONING_DELETED) {
  -                status = VersioningDifferenceStatus.TO_BE_REMOVED;
  +                if(fromEntryState!=null && 
!fromEntryState.equals(toEntryState))
  +                    status = VersioningDifferenceStatus.TO_BE_REMOVED;
               } else {
                   if (fromEntryState == null) {
                       status = VersioningDifferenceStatus.ADDED;
  
  
  
  Index: WorkflowService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/workflow/WorkflowService.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- WorkflowService.java      5 Dec 2005 15:40:12 -0000       1.37
  +++ WorkflowService.java      6 Dec 2005 10:57:08 -0000       1.38
  @@ -63,6 +63,7 @@
       public static final String WORKFLOWLANGUAGESSTATES_CACHENAME = 
"WorkflowServiceCache";
       public static final String WORKFLOWMODE_CACHENAME = "WorkflowModeCache";
       public static final String WORKFLOWLINKEDOBJECTS_CACHENAME = 
"WorkflowLinkedObjectsCache";
  +    public static final String WORKFLOWHARDLINKEDOBJECTS_CACHENAME = 
"WorkflowHardLinkedObjectsCache";
       public static final String WORKFLOWSERVICE_KEYPREFIX = 
"WorkflowLanguageStates_";
       public static final String WORKFLOWMODE_KEYPREFIX = "WorkflowMode_";
       public static final String WORKFLOWSERVICESITE_KEYPREFIX = 
"WorkflowServiceSite_";
  @@ -72,6 +73,8 @@
       private Cache cache;
       private Cache modeCache;
       private Cache linkedObjectsCache;
  +    private Cache hardLinkedObjectsCache;
  +
       public void setWorkflowManager(JahiaWorkflowManager workflowManager) {
           this.workflowManager = workflowManager;
       }
  @@ -103,6 +106,7 @@
           cache = 
cacheService.createCacheInstance(WORKFLOWLANGUAGESSTATES_CACHENAME);
           modeCache = cacheService.createCacheInstance(WORKFLOWMODE_CACHENAME);
           linkedObjectsCache = 
cacheService.createCacheInstance(WORKFLOWLINKEDOBJECTS_CACHENAME);
  +        hardLinkedObjectsCache = 
cacheService.createCacheInstance(WORKFLOWHARDLINKEDOBJECTS_CACHENAME);
           try {
               loadConfiguration (settingsBean.getJahiaEtcDiskPath () + 
WorkflowService.CONFIG_PATH +
                       File.separator + WorkflowService.CONFIG_FILE_NAME);
  @@ -427,7 +431,7 @@
           final GroupCacheKey entryKey = CacheAdvice.toGroupCacheKey(new 
Object[]{WORKFLOWHARDLINKEDOBJECT_KEYPREFIX +
                                                                                
   object.getObjectKey().toString(),
                   WORKFLOWSERVICESITE_KEYPREFIX + object.getSiteID()});
  -        workflowMainObject = (ContentObject) 
linkedObjectsCache.get(entryKey);
  +        workflowMainObject = (ContentObject) 
hardLinkedObjectsCache.get(entryKey);
           if(workflowMainObject ==null) {
               workflowMainObject = object;
               if (workflowMainObject instanceof ContentContainer) {
  @@ -445,7 +449,7 @@
                       workflowMainObject = page;
                   }
               }
  -            linkedObjectsCache.put(entryKey,workflowMainObject);
  +            hardLinkedObjectsCache.put(entryKey,workflowMainObject);
           }
           return workflowMainObject;
       }
  

Reply via email to