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]