One more observation,
If I add an "already-done?" check to ApplicationHelper.java in the start() method, these seems to alleviate the symptoms, by preventing the N number of Tunnel, Status, and Log filters from getting added to the same application object on every Restlet call. +cs ________________________________ From: Christopher Sun [mailto:[EMAIL PROTECTED] Sent: Monday, October 08, 2007 6:55 AM To: [email protected] Subject: StackOverflow on Restlet Exception Quick question using Restlet 1.0.5, Java 1.5, Tomcat 5.5.28 and the Spring Restlet Extensions: On any exception inside of a restlet handle() method, we are receiving a stack overflow due how Restlet's is handling the exception. We understand what the exception is (Connection pooling issue in the JDBC/DAO layer) and we have our solution for it, but we're not particularly happy that the Restlet framework goes through an infinite level of StatusFilter, doHandle, handle, method calls on any exception. Is there anyone familiar with how we can prevent this from happening? Oct 5, 2007 8:39:23 AM com.noelios.restlet.StatusFilter getStatus SEVERE: Unhandled exception or error intercepted java.lang.StackOverflowError at java.security.AccessController.doPrivileged(Native Method) at java.io.PrintWriter.<init>(PrintWriter.java:77) at java.io.PrintWriter.<init>(PrintWriter.java:61) at java.util.logging.SimpleFormatter.format(SimpleFormatter.java:71) at java.util.logging.StreamHandler.publish(StreamHandler.java:179) at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:88) at java.util.logging.Logger.log(Logger.java:452) at java.util.logging.Logger.doLog(Logger.java:474) at java.util.logging.Logger.log(Logger.java:563) at com.noelios.restlet.StatusFilter.getStatus(StatusFilter.java:183) at com.noelios.restlet.application.ApplicationStatusFilter.getStatus(Applic ationStatusFilter.java:76) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:89) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Filter.doHandle(Filter.java:105) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Filter.doHandle(Filter.java:105) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Filter.doHandle(Filter.java:105) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:87) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Filter.doHandle(Filter.java:105) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Filter.doHandle(Filter.java:105) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Filter.doHandle(Filter.java:105) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:87) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Filter.doHandle(Filter.java:105) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Filter.doHandle(Filter.java:105) at org.restlet.Filter.handle(Filter.java:134) at org.restlet.Filter.doHandle(Filter.java:105) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:87)

