Author: sshyrkov
Date: Fri Oct 5 18:14:21 2007
New Revision: 18771
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18771&repname=
=3Djahia
Log:
Try to detect missing main link object and resolve inconsistency (if possib=
le update the workflow entry with the correct main object key)
Modified:
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/sitemap/SiteM=
apAbstractAction.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/A=
dvancedWorkflowEngine.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
WorkflowService.java
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/sitemap=
/SiteMapAbstractAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/ajax/sitemap/SiteMapAbstractAction.java&rev=
=3D18771&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/sitemap/SiteM=
apAbstractAction.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/sitemap/SiteM=
apAbstractAction.java Fri Oct 5 18:14:21 2007
@@ -137,6 +137,10 @@
final ContentObject main =3D workflowService.getMa=
inLinkObject(contentObject);
// check for cyclic situation
//if ( main !=3D null && !main.getObjectKey().equa=
ls(object.getObjectKey()) ){
+ if (main =3D=3D null) {
+ logger.warn("Main object is null for the conte=
nt object: " + contentObject.getObjectKey());
+ continue;
+ }
if ((main instanceof ContentPage && ((ContentPage)=
main).getParentID(EntryLoadRequest.STAGED) !=3D object.getPageID()) ||
(!(main instanceof ContentPage) && main.ge=
tPageID() !=3D object.getPageID())) {
continue;
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/work=
flow/AdvancedWorkflowEngine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/workflow/AdvancedWorkflowEngine.jav=
a&rev=3D18771&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/A=
dvancedWorkflowEngine.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/A=
dvancedWorkflowEngine.java Fri Oct 5 18:14:21 2007
@@ -761,7 +761,11 @@
if (contentObject.checkWriteAccess(currentUser)) {
if (!(contentObject.getObjectKey().getType().equals(Co=
ntentPageKey.PAGE_TYPE))) {
final ContentObject main =3D service.getMainLinkOb=
ject(contentObject);
- v.add(main);
+ if (main !=3D null) {
+ v.add(main);
+ } else {
+ logger.warn("Main object is null for the conte=
nt object: " + contentObject);
+ }
} else {
v.add(contentObject);
}
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/wor=
kflow/WorkflowService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/workflow/WorkflowService.java&rev=
=3D18771&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
WorkflowService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
WorkflowService.java Fri Oct 5 18:14:21 2007
@@ -657,7 +657,27 @@
=
public ContentObject getMainLinkObject(ContentObject object) throws Ja=
hiaException {
try {
- return (ContentObject) ContentObject.getInstance(getMainLinkOb=
ject((ContentObjectKey)object.getObjectKey()));
+ ContentObjectKey objectKey =3D (ContentObjectKey)object.getObj=
ectKey();
+ ContentObjectKey mainKey =3D getMainLinkObject(objectKey);
+ ContentObject obj =3D (ContentObject) ContentObject.getInstanc=
e(mainKey);
+ if (obj =3D=3D null) {
+ logger.warn("Object is not found for main object key: "
+ + mainKey
+ + ". Perhaps an inconsistency for content object: "
+ + objectKey);
+ int mode =3D getWorkflowMode(objectKey);
+ ContentObjectKey newMainKey =3D getMainLinkObject(objectKe=
y,mode);
+ if (newMainKey !=3D null && !newMainKey.equals(mainKey)) {
+ obj =3D (ContentObject) ContentObject.getInstance(newM=
ainKey);
+ if (obj !=3D null) {
+ logger.warn("Found main object: " + newMainKey
+ + " for content object: " + objectKey
+ + ". Updating workflow entry.");
+ workflowManager.updateWorkflowEntry(objectKey.toSt=
ring(),newMainKey.toString());
+ }
+ }
+ }
+ return obj;
} catch (ClassNotFoundException e) {
}
return null;
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list