Hi Richard,

Do you still encounter this issue with version 2.0.3? If so, could you enter a 
bug report? 

Also, have you tried an alternate connector like Jetty or Simple?

Best regards,
Jerome
--
Restlet ~ Founder and Technical Lead ~ http://www.restlet.o​rg
Noelios Technologies ~ http://www.noelios.com



-----Message d'origine-----
De : Richard Cole [mailto:[email protected]] 
Envoyé : jeudi 12 août 2010 16:57
À : [email protected]
Objet : RE: Strange failure

I have managed to grab a thread dump as the issue occurs:

restlet-24193...@4593 daemon, priority=5, in group 'main', status: 'RUNNING'
          at java.net.SocketInputStream.socketRead0(SocketInputStream.java:-1)
          at java.net.SocketInputStream.read(SocketInputStream.java:129)
          at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
          at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
          at 
org.restlet.engine.http.connector.ServerConnection.readMessage(ServerConnection.java:161)
          at 
org.restlet.engine.http.connector.Connection.readMessages(Connection.java:682)
          at 
org.restlet.engine.http.connector.Controller$2.run(Controller.java:95)
          at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
          at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
          at java.lang.Thread.run(Thread.java:595)

restlet-27981...@4586 daemon, priority=5, in group 'main', status: 'RUNNING'
          at org.restlet.engine.log.LogFilter.afterHandle(LogFilter.java:112)
          at org.restlet.routing.Filter.handle(Filter.java:205)
          at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111)
          at org.restlet.Component.handle(Component.java:390)
          at org.restlet.Server.handle(Server.java:474)
          at 
org.restlet.engine.http.connector.BaseServerHelper.handle(BaseServerHelper.java:158)
          at 
org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:167)
          at 
org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:418)
          at 
org.restlet.engine.http.connector.Connection.readMessages(Connection.java:705)
          at 
org.restlet.engine.http.connector.Controller$2.run(Controller.java:95)
          at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
          at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
          at java.lang.Thread.run(Thread.java:595)

restlet-21985...@2258 daemon, priority=5, in group 'main', status: 'WAIT'
          at sun.misc.Unsafe.park(Unsafe.java:-1)
          at 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)
          at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireNanos(AbstractQueuedSynchronizer.java:807)
          at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(AbstractQueuedSynchronizer.java:1,122)
          at 
java.util.concurrent.SynchronousQueue$Node.waitForPut(SynchronousQueue.java:291)
          at 
java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:443)
          at 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:475)
          at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
          at java.lang.Thread.run(Thread.java:595)

restlet-11595...@2186, priority=5, in group 'main', status: 'RUNNING'
          at java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:-1)
          at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
          at java.net.ServerSocket.implAccept(ServerSocket.java:450)
          at java.net.ServerSocket.accept(ServerSocket.java:421)
          at org.restlet.engine.http.connector.Acceptor.run(Acceptor.java:91)
          at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
          at java.util.concurrent.FutureTask.run(FutureTask.java:123)
          at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
          at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
          at java.lang.Thread.run(Thread.java:595)

restlet-6588...@2256 daemon, priority=5, in group 'main', status: 'RUNNING'
          at java.lang.Thread.sleep(Thread.java:-1)
          at 
org.restlet.engine.http.connector.Controller.run(Controller.java:250)
          at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
          at java.util.concurrent.FutureTask.run(FutureTask.java:123)
          at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
          at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
          at java.lang.Thread.run(Thread.java:595)

I've highlight what I think may be the issue, and it's the fact that two 
threads are operating on the same Connection object and therefore Socket.  Does 
this make any sense?  Do the above help at all?

Would be good to get some help with this as we're beginning to use Restlet more 
and more

Richard

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

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

Reply via email to