Author: bpapez
Date: Tue Aug 21 12:34:07 2007
New Revision: 18214

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18214&repname=
=3Djahia
Log:
Further clean up of the slide transaction API usage:
* commit or rollback transactions only where they were really begun (and we=
re not already opened further up the stack)

Modified:
    branches/JAHIA-4-1-BRANCH/src/java/org/jahia/blogs/actions/NewMediaObje=
ctAction.java
    branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/filemanager/DAVFil=
emanager_Engine.java
    branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/shared/DAVFile_Fie=
ld.java
    branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/htmleditors/fcked=
itor/FCKeditorWebDAVConnector.java
    branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/search/AddedField=
.java
    branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/webdav/DAVFileAcc=
ess.java
    branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/webdav/JahiaWebda=
vBaseService.java

Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/blogs/actions/NewMed=
iaObjectAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/blogs/actions/NewMediaObjectAction.java&rev=3D18214=
&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-4-1-BRANCH/src/java/org/jahia/blogs/actions/NewMediaObje=
ctAction.java (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/blogs/actions/NewMediaObje=
ctAction.java Tue Aug 21 12:34:07 2007
@@ -111,7 +111,7 @@
         final DAVFileAccess dav =3D JahiaWebdavBaseService.getInstance().
                 getDAVFileAccess(jParams, jParams.getSite(), user, dir);
         =

-        dav.beginTransaction();
+        boolean transactionOpenedHere =3D dav.beginTransaction();
         try {
             File f =3D File.createTempFile("blogUpload", ".tmp");
             FileOutputStream fos =3D new FileOutputStream(f);
@@ -124,8 +124,9 @@
             final String contentType =3D (String) struct.get(MediaObject.T=
YPE);
             final String finalName =3D dav.uploadFile((String) struct
                     .get(MediaObject.NAME), f, contentType, false);
-
-            dav.commitTransaction();
+            if (transactionOpenedHere) {
+                dav.commitTransaction();
+            }
 =

             StringBuffer buffer =3D new StringBuffer();
             buffer.append(ServletResources.getCurrentRequest().getScheme()=
);
@@ -150,7 +151,8 @@
                     JahiaException.APPLICATION_ERROR,
                     JahiaException.ERROR_SEVERITY, e);
         } finally {
-            if (dav.getTransactionStatus() =3D=3D Status.STATUS_ACTIVE) {
+            if (transactionOpenedHere
+                    && dav.getTransactionStatus() =3D=3D Status.STATUS_ACT=
IVE) {
                 dav.rollbackTransaction();
             }
         }

Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/filemanager/=
DAVFilemanager_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/engines/filemanager/DAVFilemanager_Engine.java&rev=
=3D18214&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-4-1-BRANCH/src/java/org/jahia/engines/filemanager/DAVFil=
emanager_Engine.java (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/filemanager/DAVFil=
emanager_Engine.java Tue Aug 21 12:34:07 2007
@@ -259,7 +259,7 @@
                 jParams, jParams.getSite(), jParams.getUser(), TableEntry.=
javascriptDecode(path));
 =

         if (objectDav.getException() =3D=3D null) {
-            objectDav.beginTransaction();
+            boolean transactionOpenedHere =3D objectDav.beginTransaction();
             try {
                 if (actionScreen.equals("save")) {
                     jParams.setParameter("screen", "close");
@@ -349,7 +349,9 @@
                 }
 =

                 if (result) {
-                    objectDav.commitTransaction();
+                    if (transactionOpenedHere) {
+                        objectDav.commitTransaction();
+                    }
                 } else {
                     if (jParams.getRequest().getAttribute("error") =3D=3D =
null) {
                         jParams
@@ -360,7 +362,8 @@
                     jParams.setParameter("screen", "error");
                 }
             } finally {
-                if (objectDav.getTransactionStatus() =3D=3D Status.STATUS_=
ACTIVE) {
+                if (transactionOpenedHere
+                        && objectDav.getTransactionStatus() =3D=3D Status.=
STATUS_ACTIVE) {
                     objectDav.rollbackTransaction();
                 }
             }

Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/shared/DAVFi=
le_Field.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/engines/shared/DAVFile_Field.java&rev=3D18214&repna=
me=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-4-1-BRANCH/src/java/org/jahia/engines/shared/DAVFile_Fie=
ld.java (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/shared/DAVFile_Fie=
ld.java Tue Aug 21 12:34:07 2007
@@ -123,12 +123,15 @@
                     uris.add(users[i]);
                 }
             }
-            objectDav.beginTransaction();
+            boolean transactionOpenedHere =3D objectDav.beginTransaction();
             try {
                 objectDav.alignPermsWithField(theField, uris);
-                objectDav.commitTransaction();
+                if (transactionOpenedHere) {
+                    objectDav.commitTransaction();
+                }
             } finally {
-                if (objectDav.getTransactionStatus() =3D=3D Status.STATUS_=
ACTIVE) {
+                if (transactionOpenedHere
+                        && objectDav.getTransactionStatus() =3D=3D Status.=
STATUS_ACTIVE) {
                     objectDav.rollbackTransaction();
                 }
             }

Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/htmleditors=
/fckeditor/FCKeditorWebDAVConnector.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/services/htmleditors/fckeditor/FCKeditorWebDAVConne=
ctor.java&rev=3D18214&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-4-1-BRANCH/src/java/org/jahia/services/htmleditors/fcked=
itor/FCKeditorWebDAVConnector.java (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/htmleditors/fcked=
itor/FCKeditorWebDAVConnector.java Tue Aug 21 12:34:07 2007
@@ -154,10 +154,10 @@
                     .getDAVFileAccess(jParams, currentFolder);
 =

             boolean doRollback =3D false;
-
+            boolean transactionOpenedHere =3D false;
             if (fileAccess !=3D null
                     && fileAccess.getTransactionStatus() =3D=3D Status.STA=
TUS_NO_TRANSACTION)
-                fileAccess.beginTransaction();
+                transactionOpenedHere =3D fileAccess.beginTransaction();
             try {
                 while (!fileAccess.isValid()
                         && currentFolder.length() > 1
@@ -211,12 +211,12 @@
 =

                 outBuffer.append("</Connector>");
 =

-                if (doRollback)
+                if (doRollback && transactionOpenedHere)
                     fileAccess.rollbackTransaction();
-                else
+                else if (transactionOpenedHere)
                     fileAccess.commitTransaction();
             } finally {
-                if (fileAccess.getTransactionStatus() =3D=3D Status.STATUS=
_ACTIVE) {
+                if (transactionOpenedHere && fileAccess.getTransactionStat=
us() =3D=3D Status.STATUS_ACTIVE) {
                     fileAccess.rollbackTransaction();
                 }
             }
@@ -264,28 +264,31 @@
             ParamBean jParams =3D getJahiaParamBean(request, response);
             DAVFileAccess fileAccess =3D JahiaWebdavBaseService.getInstanc=
e()
                     .getDAVFileAccess(jParams, currentFolderStr);
-
+            boolean transactionOpenedHere =3D false;
             if (fileAccess !=3D null
                     && fileAccess.getTransactionStatus() =3D=3D Status.STA=
TUS_NO_TRANSACTION)
-                fileAccess.beginTransaction();
+                transactionOpenedHere =3D fileAccess.beginTransaction();
 =

             try {
                 UploadResult result =3D uploadFile(fileAccess, request, jP=
arams);
                 retVal =3D result.returnValue;
                 newName =3D result.newFileName;
-
-                fileAccess.commitTransaction();
+                if (transactionOpenedHere) {
+                    fileAccess.commitTransaction();
+                }
             } catch (Exception ex) {
-                logger.error(
+                logger
+                        .error(
                                 "Error while uploading file. Failed to pro=
cess FCKeditor FileUpload command",
                                 ex);
                 retVal =3D "203";
 =

             } finally {
-                if (fileAccess.getTransactionStatus() =3D=3D Status.STATUS=
_ACTIVE) {
+                if (transactionOpenedHere
+                        && fileAccess.getTransactionStatus() =3D=3D Status=
.STATUS_ACTIVE) {
                     fileAccess.rollbackTransaction();
                 }
-               =

+
                 releaseResources();
             }
         }

Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/search/Adde=
dField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/services/search/AddedField.java&rev=3D18214&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-4-1-BRANCH/src/java/org/jahia/services/search/AddedField=
.java (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/search/AddedField=
.java Tue Aug 21 12:34:07 2007
@@ -188,12 +188,12 @@
                                 .getJahiaSitesService ().getSite (this.get=
JahiaID ());
                         DAVFileAccess file =3D JahiaWebdavBaseService.getI=
nstance ()
                                 .getDAVFileAccess (site, fField.getRealNam=
e ());
-                        file.beginTransaction();
+                        boolean transactionOpenedHere =3D file.beginTransa=
ction();
                         try {
                             if (file.isValid() && file.hasRevisions()
                                     && !file.isCollection()) {
                                 String contentType =3D fField.getType(); /=
/ (String)
-                                                                        //=
 file.getProperty("DAV:","getcontenttype");
+                                // file.getProperty("DAV:","getcontenttype=
");
                                 if (contentType !=3D null) {
                                     if (!file.getPath().equals("#")) {
 =

@@ -243,9 +243,12 @@
                                 }
                                 strVal +=3D " " + file.getName();
                             }
-                            file.commitTransaction();
+                            if (transactionOpenedHere) {
+                                file.commitTransaction();
+                            }
                         } finally {
-                            if (file.getTransactionStatus() =3D=3D Status.=
STATUS_ACTIVE) {
+                            if (transactionOpenedHere
+                                    && file.getTransactionStatus() =3D=3D =
Status.STATUS_ACTIVE) {
                                 file.rollbackTransaction();
                             }
                         }

Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/webdav/DAVF=
ileAccess.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/services/webdav/DAVFileAccess.java&rev=3D18214&repn=
ame=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-4-1-BRANCH/src/java/org/jahia/services/webdav/DAVFileAcc=
ess.java (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/webdav/DAVFileAcc=
ess.java Tue Aug 21 12:34:07 2007
@@ -184,13 +184,17 @@
         }
     }
 =

-    public void beginTransaction () {
+    public boolean beginTransaction() {
         try {
-            ns.token.begin ();
+            if (ns.token.getTransactionManager().getTransaction() !=3D nul=
l) {
+                return false;
+            }
+            ns.token.begin();
         } catch (Exception e) {
-            // anything to do ?
-            logger.error("Error", e);
+            logger.warn("Cannot start transaction", e);
+            return false;
         }
+        return true;
     }
 =

     public void commitTransaction () {

Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/webdav/Jahi=
aWebdavBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/services/webdav/JahiaWebdavBaseService.java&rev=3D1=
8214&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-4-1-BRANCH/src/java/org/jahia/services/webdav/JahiaWebda=
vBaseService.java (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/webdav/JahiaWebda=
vBaseService.java Tue Aug 21 12:34:07 2007
@@ -102,15 +102,18 @@
                         JahiaException.ENGINE_ERROR,
                         JahiaException.WARNING_SEVERITY);
             }
-            objectDav.beginTransaction ();
+            boolean transactionOpenedHere =3D objectDav.beginTransaction();
             try {
                 boolean create =3D objectDav.createCollection("import") !=
=3D null;
-                objectDav.commitTransaction();
+                if (transactionOpenedHere) {
+                    objectDav.commitTransaction();
+                }
                 if (!create) {
                     return mapping;
                 }
             } finally {
-                if (objectDav.getTransactionStatus() =3D=3D Status.STATUS_=
ACTIVE) {
+                if (transactionOpenedHere
+                        && objectDav.getTransactionStatus() =3D=3D Status.=
STATUS_ACTIVE) {
                     objectDav.rollbackTransaction();
                 }
             }
@@ -203,7 +206,8 @@
                         storageName);
                 File file =3D fm.getRealFile (aFile);
                 if ((file !=3D null) && (file.exists ())) {
-                    objectDav.beginTransaction ();
+                    boolean transactionTwoOpenedHere =3D objectDav
+                            .beginTransaction();
                     try {
                         String dirName;
                         String realTitle =3D null;
@@ -320,11 +324,14 @@
                                 }
                                 mapping.put(new Integer(aFile.getFileID()),
                                         uploadedFile.getPath());
-                                objectDav.commitTransaction();
+                                if (transactionTwoOpenedHere) {
+                                    objectDav.commitTransaction();
+                                }
                             }
                         }
                     } finally {
-                        if (objectDav.getTransactionStatus() =3D=3D Status=
.STATUS_ACTIVE) {
+                        if (transactionTwoOpenedHere
+                                && objectDav.getTransactionStatus() =3D=3D=
 Status.STATUS_ACTIVE) {
                             objectDav.rollbackTransaction();
                         }
                     }                    =


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

Reply via email to