Author: tdraier
Date: Mon Jun 25 15:28:44 2007
New Revision: 17756

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D17756&repname=
=3Djahia
Log:
store main object in database (JAHIA-1979) ( backport 17553 )

Modified:
    trunk/core/src/java/org/jahia/hibernate/dao/JahiaWorkflowDAO.java
    trunk/core/src/java/org/jahia/hibernate/manager/JahiaWorkflowManager.ja=
va
    trunk/core/src/java/org/jahia/hibernate/model/JahiaWorkflow.java
    trunk/core/src/java/org/jahia/services/workflow/WorkflowService.java

Modified: trunk/core/src/java/org/jahia/hibernate/dao/JahiaWorkflowDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/dao/JahiaWorkflowDAO.java&rev=3D17756&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
--- trunk/core/src/java/org/jahia/hibernate/dao/JahiaWorkflowDAO.java (orig=
inal)
+++ trunk/core/src/java/org/jahia/hibernate/dao/JahiaWorkflowDAO.java Mon J=
un 25 15:28:44 2007
@@ -22,6 +22,9 @@
 import org.jahia.hibernate.model.JahiaWorkflow;
 import org.springframework.orm.hibernate3.HibernateTemplate;
 =

+import java.util.List;
+import java.util.Iterator;
+
 /**
  * Created by IntelliJ IDEA.
  * User: Rincevent
@@ -47,4 +50,26 @@
         template.setCacheQueries(true);
         return (JahiaWorkflow) template.load(JahiaWorkflow.class,objectKey=
);
     }
+
+    public List getLinkedObjectForMain(String mainObjectKey) {
+        String hql =3D "select w.objectKey from JahiaWorkflow w where w.ma=
inObjectkey=3D?";
+        final HibernateTemplate template =3D getHibernateTemplate();
+        template.setCacheQueries(true);
+        return template.find(hql, new Object[]{mainObjectKey});
+
+    }
+
+    public void clearMainObject(String objectKey) {
+        String hql =3D "from JahiaWorkflow w where w.mainObjectkey=3D?";
+        final HibernateTemplate template =3D getHibernateTemplate();
+        template.setCacheQueries(true);
+        template.setFlushMode(HibernateTemplate.FLUSH_NEVER);
+        List l =3D  template.find(hql, new Object[]{objectKey});
+        for (Iterator iterator =3D l.iterator(); iterator.hasNext();) {
+            JahiaWorkflow jahiaWorkflow =3D (JahiaWorkflow) iterator.next(=
);
+            jahiaWorkflow.setMainObjectkey(null);
+            template.update(jahiaWorkflow);
+        }
+
+    }
 }

Modified: trunk/core/src/java/org/jahia/hibernate/manager/JahiaWorkflowMana=
ger.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/manager/JahiaWorkflowManager.java&rev=3D17756&repname=3D=
jahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/hibernate/manager/JahiaWorkflowManager.ja=
va (original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaWorkflowManager.ja=
va Mon Jun 25 15:28:44 2007
@@ -28,8 +28,10 @@
 import org.jahia.services.cache.Cache;
 import org.jahia.services.cache.CacheService;
 import org.jahia.services.workflow.WorkflowService;
+import org.hibernate.ObjectNotFoundException;
 =

 import java.util.Map;
+import java.util.List;
 =

 /**
  * Created by IntelliJ IDEA.
@@ -61,7 +63,7 @@
             try {
                 fast =3D cacheService.createCacheInstance(WORKFLOW_CACHE_N=
AME);
             } catch (JahiaInitializationException e) {
-                e.printStackTrace();  //To change body of catch statement =
use File | Settings | File Templates.
+                log.error("Cannot get cache",e);
             }
         }
         if (fast !=3D null)
@@ -75,7 +77,32 @@
             try {
                 fast =3D cacheService.createCacheInstance(WORKFLOW_CACHE_N=
AME);
             } catch (JahiaInitializationException e) {
-                e.printStackTrace();  //To change body of catch statement =
use File | Settings | File Templates.
+                log.error("Cannot get cache",e);
+            }
+        }
+        if (fast !=3D null)
+        fast.remove(objectKey);
+    }
+
+    public void updateWorkflowEntry(String objectKey, String main) {
+        JahiaWorkflow workflow =3D null;
+        synchronized(this) {
+            try {
+                workflow =3D dao.findByPK(objectKey);
+                workflow.setMainObjectkey(main);
+                dao.update(workflow);
+            } catch (Exception e) {
+                workflow =3D new JahiaWorkflow(objectKey, null,null,null);
+                workflow.setMainObjectkey(main);
+                dao.save(workflow);
+            }
+        }
+
+        if (fast =3D=3D null) {
+            try {
+                fast =3D cacheService.createCacheInstance(WORKFLOW_CACHE_N=
AME);
+            } catch (JahiaInitializationException e) {
+                log.error("Cannot get cache",e);
             }
         }
         if (fast !=3D null)
@@ -91,7 +118,7 @@
             try {
                 fast =3D cacheService.createCacheInstance(WORKFLOW_CACHE_N=
AME);
             } catch (JahiaInitializationException e) {
-                e.printStackTrace();  //To change body of catch statement =
use File | Settings | File Templates.
+                log.error("Cannot get cache",e);
             }
         }
         if (fast !=3D null)
@@ -105,6 +132,7 @@
                     map.put(WorkflowService.FIELD_MODE, workflow.getMode()=
);
                     map.put(WorkflowService.FIELD_EXTERNAL_NAME, workflow.=
getExternalname());
                     map.put(WorkflowService.FIELD_EXTERNAL_PROCESS, workfl=
ow.getExternalprocess());
+                    map.put(WorkflowService.FIELD_MAIN, workflow.getMainOb=
jectkey());
                 }
             } catch (Exception e) {
                 log.debug("no entry for key " + objectKey, e);
@@ -114,4 +142,12 @@
         }
         return map;
     }
+
+    public List getLinkedObjectForMain(String mainObjectKey) {
+        return dao.getLinkedObjectForMain(mainObjectKey);
+    }
+
+    public void clearMainObject(String objectKey) {
+        dao.clearMainObject(objectKey);
+    }
 }

Modified: trunk/core/src/java/org/jahia/hibernate/model/JahiaWorkflow.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/model/JahiaWorkflow.java&rev=3D17756&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
--- trunk/core/src/java/org/jahia/hibernate/model/JahiaWorkflow.java (origi=
nal)
+++ trunk/core/src/java/org/jahia/hibernate/model/JahiaWorkflow.java Mon Ju=
n 25 15:28:44 2007
@@ -49,6 +49,16 @@
     private String externalprocess;
 =

     /**
+     * nullable persistent field
+     */
+    private String mainObjectkey;
+
+    /**
+     * nullable persistent field
+     */
+    private Integer state;
+
+    /**
      * full constructor
      */
     public JahiaWorkflow(String objectkey, Integer mode, String externalna=
me, String externalprocess) {
@@ -120,6 +130,31 @@
         this.externalprocess =3D externalprocess;
     }
 =

+//    /**
+//     * @hibernate.property column=3D"STATE"
+//     */
+
+
+    public Integer getState() {
+        return this.state;
+    }
+
+    public void setState(Integer state) {
+        this.state =3D state;
+    }
+
+    /**
+     * @hibernate.property column=3D"MAINOBJECTKEY"
+     * length=3D"255"
+     */
+    public String getMainObjectkey() {
+        return this.mainObjectkey;
+    }
+
+    public void setMainObjectkey(String objectkey) {
+        this.mainObjectkey =3D objectkey;
+    }
+
     public String toString() {
         return new ToStringBuilder(this)
                 .append("objectkey", getObjectkey())

Modified: trunk/core/src/java/org/jahia/services/workflow/WorkflowService.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/workflow/WorkflowService.java&rev=3D17756&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
--- trunk/core/src/java/org/jahia/services/workflow/WorkflowService.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/services/workflow/WorkflowService.java Mo=
n Jun 25 15:28:44 2007
@@ -1,18 +1,18 @@
 /*
  * Copyright 2002-2006 Jahia Ltd
  *
- * Licensed under the JAHIA COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (J=
CDDL), =

- * Version 1.0 (the "License"), or (at your option) any later version; you=
 may =

- * not use this file except in compliance with the License. You should hav=
e =

- * received a copy of the License along with this program; if not, you may=
 obtain =

- * a copy of the License at =

+ * Licensed under the JAHIA COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (J=
CDDL),
+ * Version 1.0 (the "License"), or (at your option) any later version; you=
 may
+ * not use this file except in compliance with the License. You should have
+ * received a copy of the License along with this program; if not, you may=
 obtain
+ * a copy of the License at
  *
  *  http://www.jahia.org/license/
  *
- * Unless required by applicable law or agreed to in writing, software =

- * distributed under the License is distributed on an "AS IS" BASIS, =

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied=
. =

- * See the License for the specific language governing permissions and =

+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
  * limitations under the License.
  */package org.jahia.services.workflow;
 =

@@ -69,6 +69,7 @@
     public static String FIELD_MODE=3D "mode";
     public static String FIELD_EXTERNAL_NAME =3D "externalname";
     public static String FIELD_EXTERNAL_PROCESS =3D "externalprocess";
+    public static String FIELD_MAIN =3D "main";
 =

     private static final String CONFIG_PATH =3D File.separator + "services=
" +
             File.separator + "workflow";
@@ -243,45 +244,58 @@
             return LINKED;
         }
 =

-        Integer mode =3D (Integer) getDbEntry(mainObject).get(FIELD_MODE);
+        Map map =3D getDbEntry(mainObject);
+        Integer mode =3D (Integer) map.get(FIELD_MODE);
 =

         if (mode =3D=3D null) {
-            ContentObjectKey parent =3D getParent(mainObject);
-            if (parent !=3D null) {
-                if (ContentPageKey.PAGE_TYPE.equals(mainObject.getType()))=
 {
-                    if (getPageType((ContentPageKey) mainObject) =3D=3D Co=
ntentPage.TYPE_DIRECT) {
-                        ContentObjectKey pp =3D parent.getParent(loadReque=
st);
-                        if (pp !=3D null && ContentContainerKey.CONTAINER_=
TYPE.equals(pp.getType())) {
-                            pp =3D pp.getParent(loadRequest);
-                        }
-                        try {
-                            if (pp !=3D null) {
-                                ContentObject contentObject =3D ((ContentO=
bject) ContentObject.getInstance(pp));
-                                if (contentObject !=3D null && contentObje=
ct.getPickedObject() !=3D null) {
-                                    return LINKED;
-                                } else {
-                                    return INHERITED;
-                                }
+            int modei =3D evalWorkflowMode(object, mainObject);
+            if (mainObject.getParent(loadRequest)!=3D null) {
+                if (map.isEmpty()) {
+                    workflowManager.createWorkflowEntry(mainObject.toStrin=
g(), modei, null, null);
+                } else {
+                    workflowManager.updateWorkflowEntry(mainObject.toStrin=
g(), modei, null, null);
+                }
+            }
+            return modei;
+        } else {
+            return mode.intValue();
+        }
+    }
+
+    private int evalWorkflowMode(ContentObjectKey object, ContentObjectKey=
 mainObject) throws JahiaException {
+        ContentObjectKey parent =3D getParent(mainObject);
+        if (parent !=3D null) {
+            if (ContentPageKey.PAGE_TYPE.equals(mainObject.getType())) {
+                if (getPageType((ContentPageKey) mainObject) =3D=3D Conten=
tPage.TYPE_DIRECT) {
+                    ContentObjectKey pp =3D parent.getParent(loadRequest);
+                    if (pp !=3D null && ContentContainerKey.CONTAINER_TYPE=
.equals(pp.getType())) {
+                        pp =3D pp.getParent(loadRequest);
+                    }
+                    try {
+                        if (pp !=3D null) {
+                            ContentObject contentObject =3D ((ContentObjec=
t) ContentObject.getInstance(pp));
+                            if (contentObject !=3D null && contentObject.g=
etPickedObject() !=3D null) {
+                                return LINKED;
                             } else {
-                                return JAHIA_INTERNAL;
+                                return INHERITED;
                             }
-                        } catch (ClassNotFoundException e) {
-                            return INHERITED;
+                        } else {
+                            return JAHIA_INTERNAL;
                         }
-                    } else {
-                        return LINKED;
+                    } catch (ClassNotFoundException e) {
+                        return INHERITED;
                     }
                 } else {
                     return LINKED;
                 }
             } else {
-                if (ContentObject.getContentObjectFromMetadata(object) !=
=3D null) {
-                    return LINKED;
-                }
-                return JAHIA_INTERNAL;
+                return LINKED;
             }
         } else {
-            return mode.intValue();
+            if (ContentObject.getContentObjectFromMetadata(object) !=3D nu=
ll) {
+                return LINKED;
+            }
+            return JAHIA_INTERNAL;
         }
     }
 =

@@ -416,11 +430,16 @@
             }
         }
 =

+        if (mode =3D=3D LINKED) {
+            workflowManager.clearMainObject(workflowMainObject.toString());
+        } else if (oldMode =3D=3D LINKED) {
+            workflowManager.clearMainObject(getMainLinkObject(object).toSt=
ring());
+        }
+
         if (mode =3D=3D LINKED || oldMode =3D=3D LINKED) {
             flushCacheForObjectChanged(object);
         }
 =

-        JahiaWorkflowManager workflowManager =3D (JahiaWorkflowManager) Sp=
ringContextSingleton.getInstance().getContext().getBean(JahiaWorkflowManage=
r.class.getName());
         if (insert) {
             workflowManager.createWorkflowEntry(object.toString(), mode, w=
orkflowName, processId);
         } else {
@@ -656,8 +675,24 @@
     }
 =

     public ContentObjectKey getMainLinkObject(ContentObjectKey object) thr=
ows JahiaException {
+        if (ContentFieldKey.FIELD_TYPE.equals(object.getType())) {
+            object =3D object.getParent(null);
+        }
+
+        String main =3D (String) getDbEntry(object).get(FIELD_MAIN);
+        if (main !=3D null) {
+            try {
+                return (ContentObjectKey) ContentObjectKey.getInstance(mai=
n);
+            } catch (ClassNotFoundException e) {
+                //..
+            }
+        }
+
         int mode =3D getWorkflowMode(object);
-        return getMainLinkObject(object,mode);
+        ContentObjectKey mainKey =3D getMainLinkObject(object,mode);
+
+        workflowManager.updateWorkflowEntry(object.toString(),mainKey.toSt=
ring());
+        return mainKey;
     }
 =

     private ContentObjectKey getMainLinkObject(ContentObjectKey object, in=
t mode) throws JahiaException {
@@ -771,54 +806,106 @@
         return l;
     }
 =

+//    private void getLinkedContentObjects(ContentObjectKey object, Set ke=
ys, List linked, List unlinked, boolean descendInAllSubGroups, boolean chec=
kParents) throws JahiaException{
+//        if (keys.contains(object)) {
+//            return;
+//        }
+//
+//        keys.add(object);
+//
+//        final Collection childs =3D object.getChilds(loadRequest);
+//        ContentObjectKey objectHardLinkedMainObject =3D getHardLinkedMai=
nObject(object);
+//        final Iterator iterator =3D childs.iterator();
+//        while ( iterator.hasNext() ) {
+//            ContentObjectKey child =3D (ContentObjectKey) iterator.next(=
);
+//            ContentObjectKey childHardLinkedMainObject =3D getHardLinked=
MainObject(child);
+//            boolean childIsMain =3D (childHardLinkedMainObject.equals(ob=
jectHardLinkedMainObject));
+//            if ((getWorkflowMode(child,childHardLinkedMainObject) =3D=3D=
 LINKED || descendInAllSubGroups || childIsMain)
+//                // && !child.getStagingLanguages(true).isEmpty()
+//                    ) {
+//                getLinkedContentObjects(child, keys, linked, unlinked, f=
alse, true);
+//            }
+//            if (getWorkflowMode(child,childHardLinkedMainObject) !=3D LI=
NKED && !childIsMain) {
+//                if (!unlinked.contains(child)) {
+//                    unlinked.add(child);
+//                }
+//            }
+//        }
+//
+//        getHardLinkedContentObjects(object, keys, linked, unlinked);
+//
+//        if (checkParents && getWorkflowMode(object,objectHardLinkedMainO=
bject) =3D=3D LINKED) {
+//            getLinkedContentObjects(getParent(object), keys, linked, unl=
inked, false, checkParents);
+//        }
+//
+//    }
+//
+//    private void getHardLinkedContentObjects(ContentObjectKey object, Se=
t keys, List linked, List unlinked) throws JahiaException {
+//        linked.add(object);
+//        if (ContentPageKey.PAGE_TYPE.equals(object.getType())) {
+//            ContentObjectKey parent =3D object.getParent(loadRequest);
+//            if (parent !=3D null) {
+//                ContentObjectKey parent2 =3D parent.getParent(loadReques=
t);
+//                getLinkedContentObjects(parent, keys, linked, new ArrayL=
ist(), false, true);
+//                if (parent2 !=3D null && ContentContainerKey.CONTAINER_T=
YPE.equals(parent2.getType())) {
+//                    getLinkedContentObjects(parent2, keys, linked, new A=
rrayList(), false, true);
+//                }
+//            }
+//        }
+//    }
+//
+
     private void getLinkedContentObjects(ContentObjectKey object, Set keys=
, List linked, List unlinked, boolean descendInAllSubGroups, boolean checkP=
arents) throws JahiaException{
         if (keys.contains(object)) {
             return;
         }
 =

         keys.add(object);
-
-        final Collection childs =3D object.getChilds(loadRequest);
-        ContentObjectKey objectHardLinkedMainObject =3D getHardLinkedMainO=
bject(object);
-        final Iterator iterator =3D childs.iterator();
-        while ( iterator.hasNext() ) {
+        linked.add(object);
+        ContentObjectKey k =3D getMainLinkObject(object);
+        Collection childs =3D object.getChilds(loadRequest);
+        for (Iterator iterator =3D childs.iterator(); iterator.hasNext();)=
 {
             ContentObjectKey child =3D (ContentObjectKey) iterator.next();
-            ContentObjectKey childHardLinkedMainObject =3D getHardLinkedMa=
inObject(child);
-            boolean childIsMain =3D (childHardLinkedMainObject.equals(obje=
ctHardLinkedMainObject));
-            if ((getWorkflowMode(child,childHardLinkedMainObject) =3D=3D L=
INKED || descendInAllSubGroups || childIsMain)
-                // && !child.getStagingLanguages(true).isEmpty()
-                    ) {
-                getLinkedContentObjects(child, keys, linked, unlinked, fal=
se, true);
-            }
-            if (getWorkflowMode(child,childHardLinkedMainObject) !=3D LINK=
ED && !childIsMain) {
-                if (!unlinked.contains(child)) {
-                    unlinked.add(child);
-                }
+            if (getMainLinkObject(child).equals(k)) {
+                linked.add(child);
+                getLinkedContentObjects(child, keys, linked, unlinked, des=
cendInAllSubGroups, checkParents);
+            } else {
+                unlinked.add(child);
             }
-        }
 =

-        getHardLinkedContentObjects(object, keys, linked, unlinked);
-
-        if (checkParents && getWorkflowMode(object,objectHardLinkedMainObj=
ect) =3D=3D LINKED) {
-            getLinkedContentObjects(getParent(object), keys, linked, unlin=
ked, false, checkParents);
         }
 =

-    }
-
-    private void getHardLinkedContentObjects(ContentObjectKey object, Set =
keys, List linked, List unlinked) throws JahiaException {
-        linked.add(object);
-        if (ContentPageKey.PAGE_TYPE.equals(object.getType())) {
-            ContentObjectKey parent =3D object.getParent(loadRequest);
-            if (parent !=3D null) {
-                ContentObjectKey parent2 =3D parent.getParent(loadRequest);
-                getLinkedContentObjects(parent, keys, linked, new ArrayLis=
t(), false, true);
-                if (parent2 !=3D null && ContentContainerKey.CONTAINER_TYP=
E.equals(parent2.getType())) {
-                    getLinkedContentObjects(parent2, keys, linked, new Arr=
ayList(), false, true);
-                }
+        if (checkParents) {
+            ContentObjectKey parent =3D getParent(object);
+            if (parent !=3D null && getMainLinkObject(parent).equals(k)) {
+                linked.add(parent);
+                getLinkedContentObjects(parent, keys, linked, unlinked, fa=
lse, true);
             }
         }
+
     }
 =

+//    private void getLinkedContentObjects(ContentObjectKey object, Set ke=
ys, List linked, List unlinked, boolean descendInAllSubGroups, boolean chec=
kParents) throws JahiaException{
+//        linked.add()
+//        List l =3D workflowManager.getLinkedObjectForMain(getMainLinkObj=
ect(object).toString());
+//
+//        for (Iterator iterator =3D l.iterator(); iterator.hasNext();) {
+//            String s =3D (String) iterator.next();
+//            ContentObjectKey k =3D ContentObjectKey.getInstance(s);
+//            if (ContentContainerKey.CONTAINER_TYPE.equals(object.getType=
())) {
+//                Vector v =3D ServicesRegistry.getInstance().getJahiaCont=
ainersService().getFieldIDsInContainer(object.getIdInType(),loadRequest);
+//                for (Iterator it2 =3D v.iterator(); it2.hasNext();) {
+//                    Object[] o =3D (Object[]) iterator.next();
+//                    ContentFieldKey key =3D new ContentFieldKey(((Intege=
r) o[0]).intValue());
+//                    results.add(key);
+//                }
+//            }
+//
+//        }
+//
+//    }
+
+
     /**
      * Get the list of all available external workflow
      *
@@ -1200,10 +1287,16 @@
     }
 =

     public void flushCacheForPageCreatedOrDeleted(ContentObjectKey key) {
+        if (key.getIdInType()=3D=3D-1) {
+            return;
+        }
         modeCache.remove(key.toString());
         ContentObjectKey current =3D key;
         for (int l=3D0;l<3 && current !=3D null; l++) {
             modeCache.remove(current.toString());
+            if (!ContentFieldKey.FIELD_TYPE.equals(current.getType())) {
+                workflowManager.updateWorkflowEntry(current.toString(), nu=
ll);
+            }
             current =3D current.getParent(loadRequest);
         }
         if (key instanceof ContentFieldKey) {

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

Reply via email to