Thanks for the advice, Jerome. By staying with Simple webserver, and using Apache httpclient explicitly (ie., not using the restlet-provided Client class), we have a stable release. We explicitly release every place there is an entity to read, both client- and server-side.
Much thanks for pointing me at the roadmap, as well. I'll be following with great interest. -- Eric On Mon, Aug 11, 2008 at 8:01 AM, Jerome Louvel <[EMAIL PROTECTED]>wrote: > Hi Eric, > > We have some bugs to squash before Restlet 1.1 RC1, especially in the > internal connectors. For a list of open bugs, see link at > http://www.restlet.org/about/roadmap > > Your code looks right. For now, I suggest that you use client and server > connectors like Jetty/Simple or Net/Apache following the instructions here: > http://www.restlet.org/documentation/1.1/connectors > > I've added your report in the comments of this bug report so it doesn't get > lost: > > "Too many open files -> close socket in StreamServerHelper?" > http://restlet.tigris.org/issues/show_bug.cgi?id=514 > > Best regards, > Jerome > > > ------------------------------ > *De :* Eric Lui [mailto:[EMAIL PROTECTED] > *Envoyé :* jeudi 7 août 2008 04:42 > *À :* [email protected] > *Objet :* release() method - doesn't appear to release connections? > > 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

