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