I have new information about this bug, and a workaround.

So, this is a known and multi-year issue with java.nio in Java 6 on Linux that 
has affected many nio projects, including Grizzly, Jetty and Netty. It's been 
fixed only relatively recently for Java 7 and recent builds of Java 6. Major 
Linux distributions do not include this fix.

Here are just a few links to get you hot and bothered:

  * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6403933
  * http://forums.sun.com/thread.jspa?threadID=5135128
  * http://jira.codehaus.org/browse/JETTY-937
  * https://issues.apache.org/jira/browse/DIRMINA-678

The Grizzly project has employed a workaround. Unfortunately, it is only 
available for Grizzly 2.0, which Restlet doesn't support as of yet.

One solution for Restlet is to switch somehow to a latest version of Java in 
which the nio bug is fixed.

If this impossible, a reasonable workaround is to use the Jetty connector with 
the blocking NIO connector instead of the default non-blocking NIO connector. 
You may lose some scalability in doing so, making this an unreasonable 
workaround for your application. Test to make sure.

To do this, use the Jetty extension and set the "type" parameter to 2. 
Pseudo-code:

Server server = myComponent.getServers().add(Protocol.HTTPS, 8183);
server.getContext().getParameters().add("type", 2);

Relevant links:

http://www.restlet.org/documentation/1.1/ext/com/noelios/restlet/ext/jetty/HttpServerHelper

http://wiki.restlet.org/docs_2.0/13-restlet/28-restlet/78-restlet.html

-Tal

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2382228

Reply via email to