Author: tdraier
Date: Fri Jun 22 13:19:14 2007
New Revision: 17710

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D17710&repname=
=3Djahia
Log:
-better handling of exception under load in dao
-fixed update in manager so that fields are not reset
-better cache handling, only reset what's needed and recalculate entries
( JAHIA-2080, JAHIA-2082 )

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aWorkflowDAO.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaWorkflowManager.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/hibernate/da=
o/JahiaWorkflowDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/hibernate/dao/JahiaWorkflowDAO.java&rev=3D1=
7710&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/hibernate/dao/Jahi=
aWorkflowDAO.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aWorkflowDAO.java Fri Jun 22 13:19:14 2007
@@ -21,6 +21,7 @@
 =

 import org.jahia.hibernate.model.JahiaWorkflow;
 import org.springframework.orm.hibernate3.HibernateTemplate;
+import org.hibernate.exception.ConstraintViolationException;
 =

 import java.util.List;
 import java.util.Iterator;
@@ -36,13 +37,20 @@
     public void save(JahiaWorkflow workflow) {
         HibernateTemplate hibernateTemplate =3D getHibernateTemplate();
         hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_AUTO);
-        hibernateTemplate.save(workflow);
+        try {
+            hibernateTemplate.save(workflow);
+            hibernateTemplate.flush();
+        } catch (ConstraintViolationException e) {
+            hibernateTemplate.merge(workflow);
+            hibernateTemplate.flush();
+        }
     }
 =

     public void update(JahiaWorkflow workflow) {
         HibernateTemplate hibernateTemplate =3D getHibernateTemplate();
         hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_AUTO);
         hibernateTemplate.merge(workflow);
+        hibernateTemplate.flush();
     }
 =

     public JahiaWorkflow findByPK(String objectKey) {

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/ma=
nager/JahiaWorkflowManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaWorkflowManager.java=
&rev=3D17710&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/hibernate/manager/=
JahiaWorkflowManager.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaWorkflowManager.java Fri Jun 22 13:19:14 2007
@@ -71,8 +71,20 @@
     }
 =

     public void updateWorkflowEntry(String objectKey, int mode, String wor=
kflowName, String processId) {
-        JahiaWorkflow workflow =3D new JahiaWorkflow(objectKey, new Intege=
r(mode), workflowName, processId);
-        dao.update(workflow);
+        JahiaWorkflow workflow =3D null;
+        synchronized(this) {
+            try {
+                workflow =3D dao.findByPK(objectKey);
+                workflow.setMode(new Integer(mode));
+                workflow.setExternalname(workflowName);
+                workflow.setExternalprocess(processId);
+                dao.update(workflow);
+            } catch (Exception e) {
+                workflow =3D new JahiaWorkflow(objectKey, new Integer(mode=
), workflowName, processId);
+                dao.save(workflow);
+            }
+        }
+        =

         if (fast =3D=3D null) {
             try {
                 fast =3D cacheService.createCacheInstance(WORKFLOW_CACHE_N=
AME);

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=
=3D17710&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 Jun 22 13:19:14 2007
@@ -1305,10 +1305,19 @@
         }
         modeCache.remove(key.toString());
         ContentObjectKey current =3D key;
-        for (int l=3D0;l<3 && current !=3D null; l++) {
+        int m =3D 3;
+        if (ContentFieldKey.FIELD_TYPE.equals(key.getType())) {
+            m =3D 2;
+        }
+        for (int l=3D0;l<m && current !=3D null; l++) {
             modeCache.remove(current.toString());
             if (!ContentFieldKey.FIELD_TYPE.equals(current.getType())) {
                 workflowManager.updateWorkflowEntry(current.toString(), nu=
ll);
+                try {
+                    getMainLinkObject(current);
+                } catch (JahiaException e) {
+                    e.printStackTrace();  //To change body of catch statem=
ent use File | Settings | File Templates.
+                }
             }
             current =3D current.getParent(loadRequest);
         }

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

Reply via email to