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

Reply via email to