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