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)

Reply via email to