I am getting a StackOverflowError while starting up the servlet with the 
servlet extension.  Has anyone else seen this?  Here is part of the stack trace:
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.<init>(ServletWarEntity.java:107)
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.<init>(ServletWarEntity.java:107)
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.<init>(ServletWarEntity.java:107)
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.<init>(ServletWarEntity.java:107)
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.<init>(ServletWarEntity.java:107)
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.<init>(ServletWarEntity.java:107)
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.<init>(ServletWarEntity.java:107)
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.<init>(ServletWarEntity.java:107)
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.<init>(ServletWarEntity.java:94)
        at 
com.noelios.restlet.ext.servlet.ServletWarEntity.getParent(ServletWarEntity.java:154)
        at 
com.noelios.restlet.local.EntityClientHelper.handleEntityGet(EntityClientHelper.java:309)
        at 
com.noelios.restlet.local.EntityClientHelper.handleEntity(EntityClientHelper.java:202)
        at 
com.noelios.restlet.local.EntityClientHelper.handle(EntityClientHelper.java:179)
        at 
com.noelios.restlet.ext.servlet.ServletWarClientHelper.handle(ServletWarClientHelper.java:102)
        at 
com.noelios.restlet.ext.servlet.ServletWarClient.handle(ServletWarClient.java:91)
        at org.restlet.Uniform.handle(Uniform.java:108)
        at org.restlet.Uniform.get(Uniform.java:96)
        at 
com.noelios.restlet.ext.servlet.ServerServlet.createComponent(ServerServlet.java:377)
        at 
com.noelios.restlet.ext.servlet.ServerServlet.getComponent(ServerServlet.java:740)
        at 
com.noelios.restlet.ext.servlet.ServerServlet.init(ServerServlet.java:819)
        at javax.servlet.GenericServlet.init(GenericServlet.java:211)

It appears that its trying to recursively traverse all resources under WEB-INF, 
but is infinitely looping around the WEB-INF/web.xml resource.  When the path 
points to that resource, getServletContext().getResourcePaths(path) returns one 
resource, the web.xml.  Looking at the API for the ServletContext, its not that 
clear what it is expected to do when the argument points to a resource and not 
a path, so this may be a case where different implementations are working 
differently.  It can be easily fixed within the ServletWarEntity class with a 
"if (!childPath.equals(this.path))" check prior to creating the next 
ServletWarEntity.  Can this change be made, or do I need to take this up with 
our webcontainer?

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

Reply via email to