Author: bpapez
Date: Tue Aug 21 12:15:58 2007
New Revision: 18213

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18213&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 furhter up the stack)
* make an exception for the thumbnail generation, because the current solut=
ion is creating the thumbnail in a WebDAV event listener, while the thumbna=
il is being requested. The WebDav handler is opening  a transaction, which =
we commit inside, so that the revision will be already seen on the GET. =


Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/Manage=
Sites.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/blogs/actions/NewM=
ediaObjectAction.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/filemanage=
r/DAVFilemanager_Engine.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/importexpo=
rt/ManageImportExport.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/shared/DAV=
File_Field.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/FilesAclImportHandler.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/webdav/li=
steners/IMGSlideContentListener.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/form/FormC=
ontentMapperHandlerTag.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/mediagalle=
ry/MediaThumbTag.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/=
ManageSites.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/admin/sites/ManageSites.java&rev=3D18213&re=
pname=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/admin/sites/Manage=
Sites.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/Manage=
Sites.java Tue Aug 21 12:15:58 2007
@@ -1098,7 +1098,7 @@
                                 + jParams.getUser().getUsername() + "/priv=
ate";
                         DAVFileAccess dav =3D new DAVFileAccess(jParams, j=
Params
                                 .getSite(), jParams.getUser(), path);
-                        dav.beginTransaction();
+                        boolean transactionOpenedHere =3D dav.beginTransac=
tion();
                         try {
                             dav.createCollection("imports");
                             path =3D "/users/" + jParams.getUser().getUser=
name()
@@ -1108,9 +1108,12 @@
                             dav.uploadFile(uploadname, new FileInputStream(
                                     initialZip), initialZip.length(),
                                     "application/zip");
-                            dav.commitTransaction();
+                            if (transactionOpenedHere) {
+                                dav.commitTransaction();
+                            }
                         } finally {
-                            if (dav.getTransactionStatus() =3D=3D Status.S=
TATUS_ACTIVE) {
+                            if (transactionOpenedHere
+                                    && dav.getTransactionStatus() =3D=3D S=
tatus.STATUS_ACTIVE) {
                                 dav.rollbackTransaction();
                             }
                         }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/blogs/action=
s/NewMediaObjectAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/blogs/actions/NewMediaObjectAction.java&rev=
=3D18213&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/blogs/actions/NewM=
ediaObjectAction.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/blogs/actions/NewM=
ediaObjectAction.java Tue Aug 21 12:15:58 2007
@@ -92,52 +92,52 @@
         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);
-            fos.write((byte[])struct.get(MediaObject.BITS));
+            fos.write((byte[]) struct.get(MediaObject.BITS));
             fos.flush();
             fos.close();
-            =

-            log.debug("blogUpload TmpFile: "+f.getName());
-            =

-            final String contentType =3D (String)struct.get(MediaObject.TY=
PE);
-            final String finalName =3D dav.uploadFile((String)struct.get(
-                    MediaObject.NAME), f, contentType, =

-                    ServletResources.getCurrentRequest());
-            =

-            dav.commitTransaction();
-            =

+
+            log.debug("blogUpload TmpFile: " + f.getName());
+
+            final String contentType =3D (String) struct.get(MediaObject.T=
YPE);
+            final String finalName =3D dav.uploadFile((String) struct
+                    .get(MediaObject.NAME), f, contentType, ServletResourc=
es
+                    .getCurrentRequest());
+            if (transactionOpenedHere) {
+                dav.commitTransaction();
+            }
+
             StringBuffer buffer =3D new StringBuffer();
-            buffer.append(ServletResources.getCurrentRequest().
-                    getScheme());
+            buffer.append(ServletResources.getCurrentRequest().getScheme()=
);
             buffer.append("://");
-            buffer.append(ServletResources.getCurrentRequest().
-                    getServerName());
+            buffer.append(ServletResources.getCurrentRequest().getServerNa=
me());
             buffer.append(":");
-            buffer.append(ServletResources.getCurrentRequest().
-                    getServerPort());
-            buffer.append(ServletResources.getCurrentRequest().
-                    getContextPath());
+            buffer.append(ServletResources.getCurrentRequest().getServerPo=
rt());
+            buffer
+                    .append(ServletResources.getCurrentRequest()
+                            .getContextPath());
             buffer.append(WEBDAV_SERVLET);
             buffer.append(dir);
             buffer.append("/");
             buffer.append(finalName);
-            =

+
             Hashtable result =3D new Hashtable(1);
             result.put(MediaObject.URL, buffer.toString());
-            =

-            log.debug("Media Object URL is: "+result);
+
+            log.debug("Media Object URL is: " + result);
             f.delete();
             return result;
-            =

+
         } catch (IOException e) {
             throw new JahiaException(e.getMessage(), e.getMessage(),
-                    JahiaException.APPLICATION_ERROR, =

+                    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-5-0-SP-BRANCH/core/src/java/org/jahia/engines/file=
manager/DAVFilemanager_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/filemanager/DAVFilemanager_Engine.j=
ava&rev=3D18213&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/engines/filemanage=
r/DAVFilemanager_Engine.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/filemanage=
r/DAVFilemanager_Engine.java Tue Aug 21 12:15:58 2007
@@ -197,7 +197,8 @@
             if ("fileLock".equals(davAction)) {
                 for (int i =3D 0; i < objectDaves.length; i++) {
                     final DAVFileAccess objectDav =3D objectDaves[i];
-                    objectDav.beginTransaction();
+                    boolean transactionOpenedHere =3D objectDav
+                            .beginTransaction();
                     try {
                         if (objectDav.isLocked()
                                 && (objectDav.getLock().getOwnerInfo().equ=
als(
@@ -209,11 +210,12 @@
                         } else {
                             ok =3D objectDav.lockFile(jParams.getUser().is=
Root());
                         }
-                        if (ok) {
+                        if (ok && transactionOpenedHere) {
                             objectDav.commitTransaction();
                         }
                     } finally {
-                        if (objectDav.getTransactionStatus() =3D=3D Status=
.STATUS_ACTIVE) {
+                        if (transactionOpenedHere
+                                && objectDav.getTransactionStatus() =3D=3D=
 Status.STATUS_ACTIVE) {
                             objectDav.rollbackTransaction();
                         }
                     }
@@ -382,7 +384,7 @@
                 jParams, jParams.getSite(), jParams.getUser(), TableEntry.=
javascriptDecode(pathes[0]));
 =

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

                 if (result) {
-                    try {
-                        objectDav.commitTransaction();
-                        logger.debug("commitTransaction");
-                    } catch (Throwable e) {
-                        logger.debug(e, e);
+                    if (transactionOpenedHere) {
+                        try {
+                            objectDav.commitTransaction();
+                            logger.debug("commitTransaction");
+                        } catch (Throwable e) {
+                            logger.debug(e, e);
+                        }
                     }
                 } else {
                     jParams.getSessionState().removeAttribute(
@@ -590,7 +594,8 @@
                     }
                 }
             } finally {
-                if (objectDav.getTransactionStatus() =3D=3D Status.STATUS_=
ACTIVE) {
+                if (transactionOpenedHere
+                        && objectDav.getTransactionStatus() =3D=3D Status.=
STATUS_ACTIVE) {
                     objectDav.rollbackTransaction();
                 }
             }            =

@@ -1260,14 +1265,18 @@
                             processingContext.getSite(), adminUser, buff.t=
oString());
                     if (! tmp.isValid()) {
                         String result;
-                        parent.beginTransaction();
+                        boolean transactionOpenedHere =3D parent
+                                .beginTransaction();
                         try {
                             result =3D parent.createCollection(token);
                             logger.debug("Creating dir: " + token + " -> "
                                     + result);
-                            parent.commitTransaction();
+                            if (transactionOpenedHere) {
+                                parent.commitTransaction();
+                            }
                         } finally {
-                            if (parent.getTransactionStatus() =3D=3D Statu=
s.STATUS_ACTIVE) {                            =

+                            if (transactionOpenedHere
+                                    && parent.getTransactionStatus() =3D=
=3D Status.STATUS_ACTIVE) {
                                 parent.rollbackTransaction();
                             }
                         }                          =

@@ -1327,18 +1336,21 @@
                     }
                 }
                 logger.debug("About to upload: " + fileName + " in " + pat=
h);
-                uploadDir.beginTransaction();
+                boolean transactionOpenedHere =3D uploadDir.beginTransacti=
on();
                 try {
                     final boolean result =3D doUpload(fupload, name, param=
Bean,
                             fileName, uploadDir);
                     if (result) {
-                        uploadDir.commitTransaction();
+                        if (transactionOpenedHere) {
+                            uploadDir.commitTransaction();
+                        }
                     } else {
                         return null;
                     }
                     logger.debug("Finished uploading: " + result);
                 } finally {
-                    if (uploadDir.getTransactionStatus() =3D=3D Status.STA=
TUS_ACTIVE) {
+                    if (transactionOpenedHere
+                            && uploadDir.getTransactionStatus() =3D=3D Sta=
tus.STATUS_ACTIVE) {
                         uploadDir.rollbackTransaction();
                     }
                 }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/impo=
rtexport/ManageImportExport.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/importexport/ManageImportExport.jav=
a&rev=3D18213&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/engines/importexpo=
rt/ManageImportExport.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/importexpo=
rt/ManageImportExport.java Tue Aug 21 12:15:58 2007
@@ -237,7 +237,7 @@
                     String path =3D "/users/" + jParams.getUser().getUsern=
ame() + "/private";
                     String uploadname =3D "importInto_" + dkey + "_" + dat=
eOfExport + ext;                    =

                     DAVFileAccess dav =3D new DAVFileAccess(jParams, jPara=
ms.getSite(), jParams.getUser(), path);
-                    dav.beginTransaction();
+                    boolean transactionOpenedHere =3D dav.beginTransaction=
();
                     try {
                         dav.createCollection("imports");
                         path =3D "/users/" + jParams.getUser().getUsername=
()
@@ -246,9 +246,12 @@
                                 jParams.getUser(), path);
                         dav.uploadFile(uploadname, new FileInputStream(fil=
e),
                                 file.length(), contentType);
-                        dav.commitTransaction();
+                        if (transactionOpenedHere) {
+                            dav.commitTransaction();
+                        }
                     } finally {
-                        if (dav.getTransactionStatus() =3D=3D Status.STATU=
S_ACTIVE) {
+                        if (transactionOpenedHere
+                                && dav.getTransactionStatus() =3D=3D Statu=
s.STATUS_ACTIVE) {
                             dav.rollbackTransaction();
                         }
                     }                    =


Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/shar=
ed/DAVFile_Field.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/shared/DAVFile_Field.java&rev=3D182=
13&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/engines/shared/DAV=
File_Field.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/shared/DAV=
File_Field.java Tue Aug 21 12:15:58 2007
@@ -153,12 +153,15 @@
             }
         }
         if (!uris.isEmpty()) {
-            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-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/FilesAclImportHandler.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/FilesAclImportHandler=
.java&rev=3D18213&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/importexp=
ort/FilesAclImportHandler.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/FilesAclImportHandler.java Tue Aug 21 12:15:58 2007
@@ -54,7 +54,7 @@
             String acl =3D attributes.getValue(ImportExportBaseService.JAH=
IA_URI, "fileacl");
             DAVFileAccess f =3D JahiaWebdavBaseService.getInstance ().getD=
AVFileAccess (jParams, jParams.getSite(), jParams.getUser(), path);
             if (f.isValid()) {
-                f.beginTransaction();
+                boolean transactionOpenedHere =3D f.beginTransaction();
                 try {
                     if (acl !=3D null && acl.length() > 0) {
                         StringTokenizer st =3D new StringTokenizer(acl, "|=
");
@@ -107,9 +107,12 @@
                             f.setProperty(attUri, attName, attValue, false=
);
                         }
                     }
-                    f.commitTransaction();
+                    if (transactionOpenedHere) {
+                        f.commitTransaction();
+                    }
                 } finally {
-                    if (f.getTransactionStatus() =3D=3D Status.STATUS_ACTI=
VE) {
+                    if (transactionOpenedHere
+                            && f.getTransactionStatus() =3D=3D Status.STAT=
US_ACTIVE) {
                         f.rollbackTransaction();
                     }
                 }                    =


Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportExportBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportExportBaseServi=
ce.java&rev=3D18213&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/importexp=
ort/ImportExportBaseService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java Tue Aug 21 12:15:58 2007
@@ -1457,13 +1457,17 @@
                         String filename =3D name.substring(name.lastIndexO=
f('/') + 1);
                         if (dir !=3D null) {
                             String contentType =3D Jahia.getStaticServletC=
onfig().getServletContext().getMimeType(filename);
-                            dir.beginTransaction();
+                            boolean transactionOpenedHere =3D dir
+                                    .beginTransaction();
                             try {
                                 dir.uploadFile(filename, zis, zipentry
                                         .getSize(), contentType);
-                                dir.commitTransaction();
+                                if (transactionOpenedHere) {
+                                    dir.commitTransaction();
+                                }
                             } finally {
-                                if (dir.getTransactionStatus() =3D=3D Stat=
us.STATUS_ACTIVE) {
+                                if (transactionOpenedHere
+                                        && dir.getTransactionStatus() =3D=
=3D Status.STATUS_ACTIVE) {
                                     dir.rollbackTransaction();
                                 }
                             }                                =

@@ -1605,13 +1609,16 @@
             if (parentDir =3D=3D null) {
                 return null;
             }
-            parentDir.beginTransaction();
+            boolean transactionOpenedHere =3D parentDir.beginTransaction();
             try {
                 parentDir.createCollection(name
                         .substring(name.lastIndexOf('/') + 1));
-                parentDir.commitTransaction();
+                if (transactionOpenedHere) {
+                    parentDir.commitTransaction();
+                }
             } finally {
-                if (parentDir.getTransactionStatus() =3D=3D Status.STATUS_=
ACTIVE) {                =

+                if (transactionOpenedHere
+                        && parentDir.getTransactionStatus() =3D=3D Status.=
STATUS_ACTIVE) {
                     parentDir.rollbackTransaction();
                 }
             }                =

@@ -1633,15 +1640,18 @@
             }
             JahiaFileField jahiaFileField =3D file.getJahiaFileField();
             logger.debug("Add file to " + parentDir.getPath() + " (valid=
=3D" + parentDir.isValid() + ")");
-            parentDir.beginTransaction();
+            boolean transactionOpenedHere =3D parentDir.beginTransaction();
             try {
                 String res =3D parentDir.uploadFile(path.substring(path
                         .lastIndexOf('/') + 1), file.downloadFile(),
                         jahiaFileField.getSize(), jahiaFileField.getType()=
);
-                logger.debug("File added -> "+res);                =

-                parentDir.commitTransaction();
+                logger.debug("File added -> " + res);
+                if (transactionOpenedHere) {
+                    parentDir.commitTransaction();
+                }
             } finally {
-                if (parentDir.getTransactionStatus() =3D=3D Status.STATUS_=
ACTIVE) {
+                if (transactionOpenedHere
+                        && parentDir.getTransactionStatus() =3D=3D Status.=
STATUS_ACTIVE) {
                     parentDir.rollbackTransaction();
                 }
             }                =


Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/web=
dav/listeners/IMGSlideContentListener.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/webdav/listeners/IMGSlideContentLi=
stener.java&rev=3D18213&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/webdav/li=
steners/IMGSlideContentListener.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/webdav/li=
steners/IMGSlideContentListener.java Tue Aug 21 12:15:58 2007
@@ -696,7 +696,7 @@
                 logger.debug("Cannot create thumbnail, no write access");
                 return;
             }
-            parentDir.beginTransaction();
+            boolean transactionOpenedHere =3D parentDir.beginTransaction();
             try {
                 DAVFileAccess source =3D getSource(parentDir, basename);
                 if (source =3D=3D null || !source.isValid()) {
@@ -732,10 +732,21 @@
                 imgpro.createThumb(source.downloadFile(), ext, f, size, fQ=
ual);
                 parentDir.uploadFile(thumbName, new FileInputStream(f), f
                         .length(), source.getContentType());
+                =

+                // We need to commit here regardless whether the transacti=
on was =

+                // opened here or not as the thumbnail is created in an ev=
ent listener,
+                // while it is already being requested, as otherwise the r=
evision will =

+                // not be seen. If the transaction was opened before, we b=
egin a new =

+                // one (quite a dirty solution)
                 parentDir.commitTransaction();
+                if (!transactionOpenedHere) {
+                    parentDir.beginTransaction();
+                }
+
                 f.delete();
             } finally {
-                if (parentDir.getTransactionStatus() =3D=3D Status.STATUS_=
ACTIVE) {
+                if (transactionOpenedHere
+                        && parentDir.getTransactionStatus() =3D=3D Status.=
STATUS_ACTIVE) {
                     parentDir.rollbackTransaction();
                 }
             }                 =


Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/form=
/FormContentMapperHandlerTag.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/taglibs/form/FormContentMapperHandlerTag.ja=
va&rev=3D18213&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/taglibs/form/FormC=
ontentMapperHandlerTag.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/form/FormC=
ontentMapperHandlerTag.java Tue Aug 21 12:15:58 2007
@@ -292,12 +292,16 @@
                             }
                         }
                         if (!uris.isEmpty()) {
-                            objectDav.beginTransaction();
+                            boolean transactionOpenedHere =3D objectDav
+                                    .beginTransaction();
                             try {
                                 objectDav.alignPermsWithField(curField, ur=
is);
-                                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-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/medi=
agallery/MediaThumbTag.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/taglibs/mediagallery/MediaThumbTag.java&rev=
=3D18213&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/taglibs/mediagalle=
ry/MediaThumbTag.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/mediagalle=
ry/MediaThumbTag.java Tue Aug 21 12:15:58 2007
@@ -398,29 +398,31 @@
         processor.createThumb(source.downloadFile(), ext, f, newwidth, fQu=
al);
         logger.debug("uploading thumb " + thumbname + " mediatype: " + mty=
pe);
         DAVFileAccess parentdir =3D getParentDir(jParams, source);
-        if (parentdir.beginTransaction()) {
+        boolean transactionOpenedHere =3D parentdir.beginTransaction();
+        try {
+            String resultthumb;
             try {
-                String resultthumb;
-                try {
-                    resultthumb =3D parentdir.uploadFile(thumbname + "." +=
 ext,
-                            new FileInputStream(f), f.length(), mtype);
-                    logger.debug("uploaded thumb:" + resultthumb);
-                } catch (FileNotFoundException e) {
-                    logger.error("file not found", e);
-                    return;
-                }
-                if (resultthumb =3D=3D null)
-                    logger.debug("uploading of " + thumbname
-                            + " had some problems");
+                resultthumb =3D parentdir.uploadFile(thumbname + "." + ext,
+                        new FileInputStream(f), f.length(), mtype);
+                logger.debug("uploaded thumb:" + resultthumb);
+            } catch (FileNotFoundException e) {
+                logger.error("file not found", e);
+                return;
+            }
+            if (resultthumb =3D=3D null)
+                logger
+                        .debug("uploading of " + thumbname
+                                + " had some problems");
+            if (transactionOpenedHere) {
                 parentdir.commitTransaction();
-            } finally {
-                if (parentdir.getTransactionStatus() =3D=3D Status.STATUS_=
ACTIVE) {
-                    parentdir.rollbackTransaction();
-                }
-            }                =

-        } else {
-            logger.debug("no transaction available");
-        }
+            }
+        } finally {
+            if (transactionOpenedHere
+                    && parentdir.getTransactionStatus() =3D=3D Status.STAT=
US_ACTIVE) {
+                parentdir.rollbackTransaction();
+            }
+        }                =

+ =

         f.delete();
     }
 =


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

Reply via email to