Author: bpapez
Date: Tue Aug 21 14:06:00 2007
New Revision: 18216

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

Modified:
    trunk/core/src/java/org/jahia/admin/sites/ManageSites.java
    trunk/core/src/java/org/jahia/blogs/actions/NewMediaObjectAction.java
    trunk/core/src/java/org/jahia/engines/filemanager/DAVFilemanager_Engine=
.java
    trunk/core/src/java/org/jahia/engines/importexport/ManageImportExport.j=
ava
    trunk/core/src/java/org/jahia/engines/shared/DAVFile_Field.java
    trunk/core/src/java/org/jahia/services/importexport/FilesAclImportHandl=
er.java
    trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java
    trunk/core/src/java/org/jahia/taglibs/form/FormContentMapperHandlerTag.=
java
    trunk/core/src/java/org/jahia/taglibs/mediagallery/MediaThumbTag.java

Modified: trunk/core/src/java/org/jahia/admin/sites/ManageSites.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/admin/sites/ManageSites.java&rev=3D18216&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/admin/sites/ManageSites.java (original)
+++ trunk/core/src/java/org/jahia/admin/sites/ManageSites.java Tue Aug 21 1=
4:06:00 2007
@@ -1103,7 +1103,7 @@
                         String path =3D "/users/" + jParams.getUser().getU=
sername() + "/private";
                         String uploadname =3D "initialImport_" + dateOfExp=
ort + ".zip";                        =

                         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()
@@ -1113,9 +1113,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: trunk/core/src/java/org/jahia/blogs/actions/NewMediaObjectAction.=
java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/blogs/actions/NewMediaObjectAction.java&rev=3D18216&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/blogs/actions/NewMediaObjectAction.java (=
original)
+++ trunk/core/src/java/org/jahia/blogs/actions/NewMediaObjectAction.java T=
ue Aug 21 14:06:00 2007
@@ -92,53 +92,53 @@
         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: trunk/core/src/java/org/jahia/engines/filemanager/DAVFilemanager_=
Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/filemanager/DAVFilemanager_Engine.java&rev=3D18216&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/engines/filemanager/DAVFilemanager_Engine=
.java (original)
+++ trunk/core/src/java/org/jahia/engines/filemanager/DAVFilemanager_Engine=
.java Tue Aug 21 14:06:00 2007
@@ -213,14 +213,16 @@
                 for (int i =3D 0; i < objectDaves.length; i++) {
                     final DAVFileAccess objectDav =3D objectDaves[i];
                     if (objectDav.isLocked()) continue;
-                    objectDav.beginTransaction();
+                    boolean transactionOpenedHere =3D objectDav
+                            .beginTransaction();
                     try {
                         ok =3D objectDav.lockFile(jParams.getUser().isRoot=
());
-                        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();
                         }
                     }                    =

@@ -325,7 +327,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");
@@ -461,14 +463,15 @@
                 }
 =

                 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 {
-                    objectDav.rollbackTransaction();
                     if (jParams.getAttribute("error") =3D=3D null) {
                         jParams
                                 .setAttribute("error",
@@ -482,7 +485,8 @@
                     }
                 }
             } finally {
-                if (objectDav.getTransactionStatus() =3D=3D Status.STATUS_=
ACTIVE) {
+                if (transactionOpenedHere
+                        && objectDav.getTransactionStatus() =3D=3D Status.=
STATUS_ACTIVE) {
                     objectDav.rollbackTransaction();
                 }
             }            =


Modified: trunk/core/src/java/org/jahia/engines/importexport/ManageImportEx=
port.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/importexport/ManageImportExport.java&rev=3D18216&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/engines/importexport/ManageImportExport.j=
ava (original)
+++ trunk/core/src/java/org/jahia/engines/importexport/ManageImportExport.j=
ava Tue Aug 21 14:06:00 2007
@@ -235,7 +235,7 @@
                     String uploadname =3D "importInto_" + dkey + "_" + dat=
eOfExport + ext;
                     String path =3D "/users/" + jParams.getUser().getUsern=
ame() + "/private";
                     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=
()
@@ -244,9 +244,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: trunk/core/src/java/org/jahia/engines/shared/DAVFile_Field.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/shared/DAVFile_Field.java&rev=3D18216&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/engines/shared/DAVFile_Field.java (origin=
al)
+++ trunk/core/src/java/org/jahia/engines/shared/DAVFile_Field.java Tue Aug=
 21 14:06:00 2007
@@ -152,12 +152,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: trunk/core/src/java/org/jahia/services/importexport/FilesAclImpor=
tHandler.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/FilesAclImportHandler.java&rev=3D18216&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
--- trunk/core/src/java/org/jahia/services/importexport/FilesAclImportHandl=
er.java (original)
+++ trunk/core/src/java/org/jahia/services/importexport/FilesAclImportHandl=
er.java Tue Aug 21 14:06:00 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);
                         }
                     }
-                    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: trunk/core/src/java/org/jahia/services/importexport/ImportExportB=
aseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/ImportExportBaseService.java&rev=3D18216&rep=
name=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/importexport/ImportExportBaseSer=
vice.java (original)
+++ trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java Tue Aug 21 14:06:00 2007
@@ -1454,13 +1454,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();
                                 }
                             }                             =

@@ -1600,13 +1604,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 (dir.getTransactionStatus() =3D=3D Status.STATUS_ACTIVE=
) {
+                if (transactionOpenedHere
+                        && dir.getTransactionStatus() =3D=3D Status.STATUS=
_ACTIVE) {
                     dir.rollbackTransaction();
                 }
             }                =

@@ -1628,15 +1635,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()=
);
-                parentDir.commitTransaction();
-                logger.debug("File added -> "+res);                =

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


Modified: trunk/core/src/java/org/jahia/taglibs/form/FormContentMapperHandl=
erTag.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/taglibs/form/FormContentMapperHandlerTag.java&rev=3D18216&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/taglibs/form/FormContentMapperHandlerTag.=
java (original)
+++ trunk/core/src/java/org/jahia/taglibs/form/FormContentMapperHandlerTag.=
java Tue Aug 21 14:06:00 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: trunk/core/src/java/org/jahia/taglibs/mediagallery/MediaThumbTag.=
java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/taglibs/mediagallery/MediaThumbTag.java&rev=3D18216&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/taglibs/mediagallery/MediaThumbTag.java (=
original)
+++ trunk/core/src/java/org/jahia/taglibs/mediagallery/MediaThumbTag.java T=
ue Aug 21 14:06:00 2007
@@ -373,29 +373,31 @@
         processor.createThumb(source.downloadFile(), f, newwidth);
         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