Author: bpapez
Date: Fri Nov 23 17:12:21 2007
New Revision: 19276

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19276&repname=
=3Djahia
Log:
http://www.jahia.net/jira/browse/VOD-54  Publishing is blocked by workflow =
operation due to integrity between database and viewing
* Fix retrieving the parent of an object if it is in a transient state

Modified:
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/dao/JahiaContainerDAO.java
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/dao/JahiaFieldsDataDAO.java
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaContainerManager.java
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaFieldsDataManager.java
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaPagesManager.java
    branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/service=
s/workflow/WorkflowService.java

Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/h=
ibernate/dao/JahiaContainerDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/hibernate/dao/JahiaContainerDA=
O.java&rev=3D19276&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/dao/JahiaContainerDAO.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/dao/JahiaContainerDAO.java Fri Nov 23 17:12:21 2007
@@ -1010,6 +1010,18 @@
         }
         return null;
     }
+    =

+    public Integer getDeletedParentContainerListId(Integer ctnId) {
+        String hql =3D "select distinct c.listid from JahiaContainer c whe=
re c.comp_id.id=3D? and c.comp_id.workflowState=3D-1";
+        final HibernateTemplate template =3D getHibernateTemplate();
+        template.setCacheQueries(true);
+        template.setFlushMode(HibernateTemplate.FLUSH_NEVER);
+        List list =3D template.find(hql, new Object[]{ctnId});
+        if (!list.isEmpty()) {
+            return (Integer) list.iterator().next();
+        }
+        return null;
+    }    =

 =

     public List findContainerIdByPropertyNameAndValue(String name, String =
value) {
         final HibernateTemplate template =3D getHibernateTemplate();

Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/h=
ibernate/dao/JahiaFieldsDataDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataD=
AO.java&rev=3D19276&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/dao/JahiaFieldsDataDAO.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/dao/JahiaFieldsDataDAO.java Fri Nov 23 17:12:21 2007
@@ -668,6 +668,29 @@
         return retInteger;
     }
 =

+    public Integer getDeletedPageFieldID(Integer pageID) {
+        Integer retInteger =3D null;
+        StringBuffer hql =3D new StringBuffer("select distinct f.comp_id.i=
d from JahiaFieldsData f ")
+                .append("where f.type=3D")
+                .append(FieldTypes.PAGE)
+                .append(" and f.value=3D? and ((f.comp_id.workflowState>")
+                .append(EntryLoadRequest.ACTIVE_WORKFLOW_STATE)
+                .append(" and f.comp_id.versionId=3D-1) or f.comp_id.workf=
lowState=3D-1)");
+        if (pageID !=3D null) {
+            final HibernateTemplate template =3D getHibernateTemplate();
+            template.setCacheQueries(true);
+            template.setFlushMode(HibernateTemplate.FLUSH_NEVER);
+            List list =3D template.find(hql.toString(), new Object[]{pageI=
D.toString()});
+            if (list.size() > 0) {
+                retInteger =3D (Integer) list.get(0);
+            } else {
+                throw new ObjectRetrievalFailureException("Cannot retrieve=
 jahia fields for this page", pageID);
+            }
+        }
+        return retInteger;
+    }
+    =

+    =

     public List getStagingAndActivePageFieldIDs(Integer pageID) {
         List retVal =3D null;
         StringBuffer hql =3D new StringBuffer("select distinct f.comp_id.i=
d from JahiaFieldsData f where f.type=3D")
@@ -1055,6 +1078,20 @@
         return null;
     }
 =

+    public Object[] getDeletedParentIds(Integer fieldId) {
+        String hql =3D "select distinct f.pageId,f.containerId,f.comp_id.w=
orkflowState from JahiaFieldsData f where f.comp_id.id=3D? and " +
+                "((f.comp_id.workflowState>0 and f.comp_id.versionId=3D-1)=
 or f.comp_id.workflowState=3D-1)" +
+                "order by f.comp_id.workflowState desc";
+        final HibernateTemplate template =3D getHibernateTemplate();
+        template.setCacheQueries(true);
+        template.setFlushMode(HibernateTemplate.FLUSH_NEVER);
+        List list =3D template.find(hql, new Object[]{fieldId});
+        if (!list.isEmpty()) {
+            return (Object[]) list.iterator().next();
+        }
+        return null;
+    }    =

+    =

     private static boolean implicitDataConversion =3D true;
     private static Boolean isMySQLDB =3D null;
 =


Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/h=
ibernate/manager/JahiaContainerManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaContain=
erManager.java&rev=3D19276&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaContainerManager.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaContainerManager.java Fri Nov 23 17:12:21 2007
@@ -1047,6 +1047,9 @@
 =

     public int getParentContainerListId(int id, EntryLoadRequest req) {
         Integer i =3D dao.getParentContainerListId(new Integer (id));
+        if (i =3D=3D null && (req.isWithDeleted() || req.isWithMarkedForDe=
letion())) {
+            i =3D dao.getDeletedParentContainerListId(new Integer (id));  =
        =

+        }
         if (i !=3D null) {
             return i.intValue();
         }

Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/h=
ibernate/manager/JahiaFieldsDataManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaFieldsD=
ataManager.java&rev=3D19276&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaFieldsDataManager.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaFieldsDataManager.java Fri Nov 23 17:12:21 2007
@@ -1045,6 +1045,9 @@
 =

     public int[] getParentIds(int id, EntryLoadRequest req) {
         Object[] i =3D dao.getParentIds(new Integer (id));
+        if (i =3D=3D null && (req.isWithDeleted() || req.isWithMarkedForDe=
letion())) {
+            i =3D dao.getDeletedParentIds(new Integer (id));           =

+        }
         if (i !=3D null) {
             if (i[1] =3D=3D null) {
                 return new int[] {((Integer) i[0]).intValue(), -1};
@@ -1054,7 +1057,7 @@
         }
         return new int[]{-1,-1};
     }
-
+    =

     public int[] getSubPageId(int id, EntryLoadRequest req) {
         int ws =3D req.getWorkflowState();
         if (ws =3D=3D EntryLoadRequest.STAGING_WORKFLOW_STATE) {

Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/h=
ibernate/manager/JahiaPagesManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaPagesMa=
nager.java&rev=3D19276&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaPagesManager.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaPagesManager.java Fri Nov 23 17:12:21 2007
@@ -294,11 +294,22 @@
                 // because we only retrieve the parent field for the new p=
osition,
                 // not all the old positions
                 try {
-                    pageFieldID =3D fieldDAO.getStagedPageFieldID(new Inte=
ger(pageID)).intValue();
-                } catch (ObjectRetrievalFailureException e) {
-                    // return the active if the staging not found
-                    pageFieldID =3D fieldDAO.getActivePageFieldID(new Inte=
ger(pageID)).intValue();
-                }
+                                       pageFieldID =3D 
fieldDAO.getStagedPageFieldID(
+                                                       new 
Integer(pageID)).intValue();
+                               } catch (ObjectRetrievalFailureException e) {
+                                       try {
+                                               // return the active if the 
staging not found
+                                               pageFieldID =3D 
fieldDAO.getActivePageFieldID(
+                                                               new 
Integer(pageID)).intValue();
+                                       } catch 
(ObjectRetrievalFailureException ex) {
+                                               // this is for the case, where 
staging is deleted (not
+                                               // moved) and the active 
version has already been archived
+                                               if (loadRequest.isWithDeleted() 
|| loadRequest.isWithMarkedForDeleti=
on()) {
+                                                   pageFieldID =3D 
fieldDAO.getDeletedPageFieldID(
+                                                               new 
Integer(pageID)).intValue();
+                                               }    =

+                                       }
+                               }
             } else if (loadRequest.isVersioned()) {
                 try {
                     ContentPage contentPage =3D ContentPage.getPage(pageID=
, false);

Modified: branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/s=
ervices/workflow/WorkflowService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-VODAFO=
NE-5-0-2-SP%20BRANCH/core/src/java/org/jahia/services/workflow/WorkflowServ=
ice.java&rev=3D19276&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-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/service=
s/workflow/WorkflowService.java (original)
+++ branches/JAHIA-VODAFONE-5-0-2-SP BRANCH/core/src/java/org/jahia/service=
s/workflow/WorkflowService.java Fri Nov 23 17:12:21 2007
@@ -724,7 +724,7 @@
         if (mode =3D=3D LINKED) {
             ContentObjectKey parent =3D getParent(object);
             if (parent =3D=3D null) {
-                return null;
+                return getHardLinkedMainObject(object);
             }
             if (getHardLinkedMainObject(parent).equals(getHardLinkedMainOb=
ject(object))) {
                 main =3D getMainLinkObject(parent, mode);

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to