There it is: real deadlock detection for tx file store based on a CVS
head build of commons transaction.

I am hoping we can have the Slide 2.2 release cycle synchronized with
the one of commons tx 1.1

Oliver

On 14 Dec 2004 12:31:24 -0000, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
> ozeigermann    2004/12/14 04:31:24
> 
>   Modified:    src/stores/org/apache/slide/store/txfile
>                         AbstractTxFileStoreService.java
>                .        build.xml
>   Added:       lib      commons-transaction-1.1-pre-20041214.jar
>   Log:
>   Added real deadlock detection for tx file store using pre-version of
>   Commons transaction 1.1
> 
>   Revision  Changes    Path
>   1.18      +5 -10     
> jakarta-slide/src/stores/org/apache/slide/store/txfile/AbstractTxFileStoreService.java
> 
>   Index: AbstractTxFileStoreService.java
>   ===================================================================
>   RCS file: 
> /home/cvs/jakarta-slide/src/stores/org/apache/slide/store/txfile/AbstractTxFileStoreService.java,v
>   retrieving revision 1.17
>   retrieving revision 1.18
>   diff -u -r1.17 -r1.18
>   --- AbstractTxFileStoreService.java   7 Dec 2004 17:03:02 -0000       1.17
>   +++ AbstractTxFileStoreService.java   14 Dec 2004 12:31:24 -0000      1.18
>   @@ -28,7 +28,6 @@
>    import org.apache.commons.transaction.file.ResourceManagerException;
>    import org.apache.commons.transaction.util.xa.XidWrapper;
>    import org.apache.slide.common.*;
>   -import org.apache.slide.macro.ConflictException;
> 
>    import java.io.File;
>    import java.util.Hashtable;
>   @@ -382,17 +381,13 @@
> 
>        }
> 
>   -    // TODO if error is caused by lock that could not be acquired
>   -    // we should try deadlock detection instead of simply rolling back
>   -    // if no deadlock is detected, retrying for lock would be preferred 
> method
>        public synchronized void throwInternalError(Throwable cause, String 
> uri) throws ServiceAccessException {
>            Object txId = getActiveTxId();
> 
>            if ((cause instanceof ResourceManagerException)
>   -            && ((ResourceManagerException) cause).getStatus() == 
> ResourceManagerException.ERR_NO_LOCK) {
>   +                && (((ResourceManagerException) cause).getStatus() == 
> ResourceManagerException.ERR_NO_LOCK || ((ResourceManagerException) cause)
>   +                        .getStatus() == 
> ResourceManagerException.ERR_DEAD_LOCK)) {
> 
>   -            // XXX strictly speaking, this is incorrect, as we actually 
> did not chck for deadlock,
>   -            // but silently assume a deadlock must have been the cause for 
> the failed lock
>                if (txId != null) {
>                    try {
>                        rm.markTransactionForRollback(txId);
> 
>   1.246     +1 -1      jakarta-slide/build.xml
> 
>   Index: build.xml
>   ===================================================================
>   RCS file: /home/cvs/jakarta-slide/build.xml,v
>   retrieving revision 1.245
>   retrieving revision 1.246
>   diff -u -r1.245 -r1.246
>   --- build.xml 30 Nov 2004 10:12:36 -0000      1.245
>   +++ build.xml 14 Dec 2004 12:31:24 -0000      1.246
>   @@ -48,7 +48,7 @@
>        <property name="tm-extractors.jar" 
> value="${lib.dir}/tm-extractors-0.4.jar"/>
>        <property name="ehcache.jar" value="${lib.dir}/ehcache-1.0.jar"/>
>        <property name="xml-im-exporter.jar" 
> value="${lib.dir}/xml-im-exporter1.1.jar"/>
>   -    <property name="commons-transaction.jar" 
> value="${lib.dir}/commons-transaction-1.0rc1.jar"/>
>   +    <property name="commons-transaction.jar" 
> value="${lib.dir}/commons-transaction-1.1-pre-20041214.jar"/>
>        <property name="commons-codec.jar" 
> value="${lib.dir}/commons-codec-1.3.jar"/>
>        <property name="jakarta-slide-webdavlib.jar" 
> value="${lib.dir}/jakarta-slide-webdavlib-${version}.jar"/>
>        <!-- 
> =================================================================== -->
> 
>   1.1                  
> jakarta-slide/lib/commons-transaction-1.1-pre-20041214.jar
> 
>         <<Binary file>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to