Hi Christopher, Thanks for reporting this issue and for pointing to a solution. We already have a related bug report here: http://restlet.tigris.org/issues/show_bug.cgi?id=367
We'll fix this ASAP and release 1.0.6 during the week. Best regards, Jerome 2007/10/8, Christopher Sun <[EMAIL PROTECTED]>: > > > > > 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(ApplicationStatusFilter.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)

