Hi all,

I'm using the version 1.01 of Restlet and I have a kind of distributed deadlock problem. Let me explain it in pseudo-code:

I have a server  A http://A:8181 that contains a resource
public class AResource {
public void handlePut() {
 Request req = new Request (Method.PUT, "http://A:8282/aresource";);
 ...
 client.handle(req);
}
}

Then a server A2 http://A:8282 that contains a resource
public class AResource {
public void handlePut() {
 Request req = new Request (Method.PUT, "http://A:8383/aresource";);
 ...
 client.handle(req);
}
}

and of course a server A3 http://A:8383 that contains a resource
public class AResource {
public void handlePut() {
 Request req = new Request (Method.PUT, "http://A:8181/aresource";);
 ...
 client.handle(req);
}
}

A client make a put -through a web page - on server A1. The recursive calls should terminate - the number of loops is counted until a bound is reached. But when server A3 executes its handlePut() method, it is blocked. I guess the handlePut() method of A1 is still waiting the answer from A2. Is there a way to not wait for the answer ?

Any suggestion to bypass this problem is welcomed and sorry if it's a trivial question,

thanks in advance,
hp

Reply via email to