Using httpclient explicitly, instead of through restlet.Client, resolved the
problem. (Simple remained the same.)

This meant constructing our own MultiThreadedHttpConnectionManager, passing
it around via context attributes, and explicitly requesting HttpMethod
objects, instead of relying on Restlet's Client() class to handle
connections using the Request/Response framework.

On Tue, Aug 12, 2008 at 1:06 PM, Kevin Conaway <[EMAIL PROTECTED]>wrote:

> I thought you said that using httpclient+simple resolved the problem?
>
>
> On Tue, Aug 12, 2008 at 12:56 PM, Eric Lui <[EMAIL PROTECTED]> wrote:
>
>> Unfortunately, we've moved past that revision and are steaming ahead
>> toward an imminent release date.  I'll look at what i can do in about a
>> week.
>>
>> The issue occurred with:
>> Restlet Client connector backed by httpclient-3.0.1
>> Restlet Server connector backed by Simple web server.
>>
>>
>> On Mon, Aug 11, 2008 at 4:42 PM, Kevin Conaway <[EMAIL PROTECTED]>wrote:
>>
>>> Can you post a thread dump of the system when the code is blocked?
>>>
>>> Which client + server connectors were you using when this issue occurred?
>>>
>>>
>>> On Wed, Aug 6, 2008 at 10:41 PM, Eric Lui <[EMAIL PROTECTED]> wrote:
>>>
>>>> I'm new to the world of Restlet, but i'm finding it a really expressive
>>>> framework.
>>>>
>>>> I have an application which sends POST requests to a Restlet server
>>>> using the Restlet Client library, using threads for each POST request.
>>>>
>>>> Upon sending the third request, the thread will block indefinitely.  It
>>>> seems the previous requests never release the connection back to the pool,
>>>> even though I am explicitly calling release() in my finally block:
>>>>         try {
>>>>             System.out.println("connection # " + ++count);
>>>>             response = client.handle(request);
>>>>             status = response.getStatus();
>>>>             text = response.getEntity().getText(); // should close the
>>>> representation
>>>>         } catch (IOException e) {
>>>>             throw new RuntimeException (e);
>>>>         } finally {
>>>>             response.getEntity().release();
>>>>         }
>>>>
>>>> If I adjust maxConnectionsPerHost, the number of requests before
>>>> blocking goes up by the same amount.
>>>>
>>>> What am I doing wrong?  Is there another step to make sure the
>>>> representation is completely read and released?
>>>>
>>>> --
>>>> Eric
>>>>
>>>
>>>
>>
>>
>> --
>> Eric
>>
>
>


-- 
Eric

Reply via email to