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;
}