I just tried something similar with the command line client and the default tx file store for the current 2.1 release branch and everything seemed to work. Maybe you should try and identify which statement causes the problem. Another thing would be to try to use a different store and see if this changes anything. Additionally - as I already said - inspecting the locks in the store is the last resort. Please tell me what store you use to help you with that...

Oliver

Oliver Zeigermann schrieb:
Hi Zoltan,

I could not find any obvious bug in your code. The transaction feature is new in 2.1, so maybe there still are bugs in it. The only thing that might help is to debug the server and see at what point the propfind blocks. Asking again, what kind of store are use using?

Oliver

L Z schrieb:

Hello Oliver,

thank you for your answer.

Here is the code snippet (sorry for the linebreaks but
this is the best what i can get with yahoo).


try
{
String parentPath =
PathUtils.getParentUrl(rootPath);
manager.currentResource.setPath(URIUtil.getPath(parentPath));
executed =
manager.currentResource.startTransaction(manager.currentResource.getHttpURL().getUser(),


600);
            executed = executed ?
manager.currentResource.mkcolMethod(rootPath): false;
            executed = executed ?
manager.currentResource.proppatchMethod(rootPath, new
PropertyName("DAV:" , EXWebdavResource.TYPE),
ItemTypes.getStringType(ItemTypes.Project), true):
false;
            executed = executed ?
manager.currentResource.putMethod(this.contentFilePath,
content): false;
            executed = executed ?
manager.currentResource.proppatchMethod(contentFilePath,
new PropertyName("DAV:" , EXWebdavResource.TYPE),
ItemTypes.getStringType(ItemTypes.ContentFile), true):
false;
            executed = executed ?
manager.currentResource.commitTransaction(): false;
                        if(executed)
            {// here when i try to create the new
WebdavResource the client hangs as i described in my
previous mail
                WebProjectItem webProjectItem = new
WebProjectItem(new WebdavResource( new
HttpURL(rootPath)),
manager.getProjectRelativePath(rootPath),
ItemTypes.ProjectMngr);
                                return webProjectItem;
            }
            else
            {                                executed =
manager.currentResource.abortTransaction();
                return manager.getLastStatusMessage();
            }
        }
        catch(Exception exc)
        {
            executed = false;
                        try
            {
               manager.currentResource.abortTransaction();
            }
            catch(Exception transExc){}
                        return manager.getLastStatusMessage();
        }

Some explanation:

 manager - is a manager class where i have stored a
WebdavResource (currentResource)
 rootPath - is a full url like
"http://test.org:8080/container/Projects/newProject";

The target of this code snipet is:
1. create the "newProject" collection, 2. add a new property like "type" to this collection
3. upload a new file in this collection
4. add a new property to this new file


Thank you.

Here is the log snipet from the server, maybe this
helps too.

02 Oct 2004 13:17:23 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved event with name 'transaction:begin':
[EMAIL PROTECTED]


http8080-Processor23, 02-Oct-2004 13:17:23, root,
LOCK, 200 "OK", 125 ms, /Projects/
02 Oct 2004 13:17:24 -
org.apache.slide.webdav.method.AbstractWebdavMethod -
INFO - Using external transaction
<opaquelocktoken:50bca276b04d8297918e73a1b87ccf1a>
02 Oct 2004 13:17:24 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name 'webdav:mkcol':
[EMAIL PROTECTED]


02 Oct 2004 13:17:24 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name 'content:create':
org.apache.slide.event.ContentEvent[content
uri=/Projects/lowproject contentType=]
http8080-Processor23, 02-Oct-2004 13:17:24, root,
MKCOL, 201 "Created", 188 ms, /Projects/lowproject
02 Oct 2004 13:17:24 -
org.apache.slide.webdav.method.AbstractWebdavMethod -
INFO - Using external transaction
<opaquelocktoken:50bca276b04d8297918e73a1b87ccf1a>
02 Oct 2004 13:17:24 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name 'webdav:proppatch':
[EMAIL PROTECTED]


02 Oct 2004 13:17:24 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name 'content:store':
org.apache.slide.event.ContentEvent[content
uri=/Projects/lowproject contentType=]
http8080-Processor23, 02-Oct-2004 13:17:24, root,
PROPPATCH, 207 "Multi-Status", 172 ms,
/Projects/lowproject
02 Oct 2004 13:17:24 -
org.apache.slide.webdav.method.AbstractWebdavMethod -
INFO - Using external transaction
<opaquelocktoken:50bca276b04d8297918e73a1b87ccf1a>
02 Oct 2004 13:17:24 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name 'webdav:put':
[EMAIL PROTECTED]


02 Oct 2004 13:17:25 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name 'content:create':
org.apache.slide.event.ContentEvent[content
uri=/Projects/lowproject/content.xml
contentType=text/xml]
http8080-Processor23, 02-Oct-2004 13:17:24, root, PUT,
201 "Created", 1328 ms,
/Projects/lowproject/content.xml
02 Oct 2004 13:17:26 -
org.apache.slide.webdav.method.AbstractWebdavMethod -
INFO - Using external transaction
<opaquelocktoken:50bca276b04d8297918e73a1b87ccf1a>
02 Oct 2004 13:17:26 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name 'webdav:proppatch':
[EMAIL PROTECTED]


02 Oct 2004 13:17:26 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name 'content:store':
org.apache.slide.event.ContentEvent[content
uri=/Projects/lowproject/content.xml
contentType=text/xml]
http8080-Processor23, 02-Oct-2004 13:17:26, root,
PROPPATCH, 207 "Multi-Status", 125 ms,
/Projects/lowproject/content.xml
02 Oct 2004 13:17:26 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name
'transaction:commit':
[EMAIL PROTECTED]


02 Oct 2004 13:17:26 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved vetoable event with name
'event-collection:vetoable-collected':
org.apache.slide.event.EventCollection[collected
events=
[org.apache.slide.event.EventCollection$Event
[name=webdav:mkcol]]
[org.apache.slide.event.EventCollection$Event
[name=content:create, information:
uri=/Projects/lowproject]]
[org.apache.slide.event.EventCollection$Event
[name=webdav:proppatch]]
[org.apache.slide.event.EventCollection$Event
[name=content:store, information:
uri=/Projects/lowproject]]
[org.apache.slide.event.EventCollection$Event
[name=webdav:put]]
[org.apache.slide.event.EventCollection$Event
[name=content:create, information:
uri=/Projects/lowproject/content.xml]]
[org.apache.slide.event.EventCollection$Event
[name=webdav:proppatch]]
[org.apache.slide.event.EventCollection$Event
[name=content:store, information:
uri=/Projects/lowproject/content.xml]]]
02 Oct 2004 13:17:26 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved event with name 'transaction:commited':
[EMAIL PROTECTED]


http8080-Processor23, 02-Oct-2004 13:17:26, root,
UNLOCK, 200 "OK", 218 ms, /Projects/
02 Oct 2004 13:17:26 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved event with name 'event-collection:collected':
org.apache.slide.event.EventCollection[collected
events=
[org.apache.slide.event.EventCollection$Event
[name=webdav:mkcol]]
[org.apache.slide.event.EventCollection$Event
[name=content:create, information:
uri=/Projects/lowproject]]
[org.apache.slide.event.EventCollection$Event
[name=webdav:proppatch]]
[org.apache.slide.event.EventCollection$Event
[name=content:store, information:
uri=/Projects/lowproject]]
[org.apache.slide.event.EventCollection$Event
[name=webdav:put]]
[org.apache.slide.event.EventCollection$Event
[name=content:create, information:
uri=/Projects/lowproject/content.xml]]
[org.apache.slide.event.EventCollection$Event
[name=webdav:proppatch]]
[org.apache.slide.event.EventCollection$Event
[name=content:store, information:
uri=/Projects/lowproject/content.xml]]
[org.apache.slide.event.EventCollection$Event
[name=event-collection:vetoable-collected]]
[org.apache.slide.event.EventCollection$Event
[name=transaction:commit]]]
02 Oct 2004 13:17:26 -
org.apache.slide.util.event.EventLogger - INFO -
Recieved event with name 'transaction:begin':
[EMAIL PROTECTED]





--- Oliver Zeigermann <[EMAIL PROTECTED]> wrote:


Hi Zoltan,

it is pretty hard to tell what is actually going on
without seeing the code. I however suspect the PROPFIND is done on a
resource that is still locked by another transaction that has not been
committed or rolled back. As this is on the server side it is of no use
to restart the client. Try to have something like a commit/rollback
in finally blocks to make very sure all transactions are properly
terminated.

By the way, what is the underlying persistence
store? Depending on this there are different ways to find out what locks are
on what resources. Note that Slide does no additional locking when
running external transactions.


Hope this helps otherwise please show us the code,

Oliver


L Z schrieb:


Hello slide users,

I am using slide 2.1b1 server and client.
I tried to use the external transaction feature in


the

following way:

init a WebdavResource startTransaction();
mkcolMethod(); (create a new collection)
proppatchMethod(); (on the newly created


collection)

putMethod(); (put a new file in the newly created
collection)
commitTransaction();

everything works fine, the resources are created


when

i call the commitTransaction() but after this i am


not

able to create a new WebdavResource() object. I
debugged it and i figured out that when the first
PROPFIND method is issued (to get the basic
properties) the server won't respond.
It also don't works if i restart the client. I had


to

restart the server then it works.
Can somebody help me, please?

Thank you,
Zoltan.


__________________________________
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other


providers!

http://promotions.yahoo.com/new_mail



---------------------------------------------------------------------

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]






_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com


---------------------------------------------------------------------
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