Hi,
I've a strange problem that appears only if my Jetty server was idle
for some time. I get the following exception from one of my library
calls. Can anyone help me out here since I am having a hard time to
debug this (cannot reproduce so easily due to the idle nature of the
problem).
The component is located in a tapestry library and it uses invoke to
call a
database fetching method in the page's visit object. It works perfect on
start and during the run of the server but fails after the test server
was idle for a long time.
Thnx,
Andreas Pardeike
ENVIRONMENT
------------------------------------------------------------------------
------
Tapestry 3.0.2
Jetty-5.1.5rc2
SOURCE
------------------------------------------------------------------------
------
private static String snippetGetter = "getSnippetText";
private static Method snippetGetterMethod;
protected void renderComponent(IMarkupWriter writer, IRequestCycle
cycle)
{
IPage page = cycle.getPage();
Object visitObject = page.getVisit();
if(visitObject == null)
{
System.out.println("No visit object so far. Restarting page.");
throw new PageRedirectException(page);
}
Class visitClass = visitObject.getClass();
try
{
Class[] parameterTypes = new Class[] {String.class, Locale.class};
Object[] arguments = new Object[] {getSnippetID(),
getSnippetLocale()};
if(snippetGetterMethod == null)
snippetGetterMethod = visitClass.getMethod(snippetGetter,
parameterTypes);
>>> String txt = (String)snippetGetterMethod.invoke(visitObject,
arguments);
STACK TRACE
------------------------------------------------------------------------
------
Component exception : null
sun.reflect.GeneratedMethodAccessor211.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
se.pardeike.tapestry.Extras.DBTextSnippet.DBTextSnippet.renderComponent(
DBTextSnippet.java:43)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java:624)
org.apache.tapestry.components.Any.renderComponent(Any.java:53)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java:624)
org.apache.tapestry.components.Conditional.renderComponent
(Conditional.java:56)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:
118)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java:624)
org.apache.tapestry.components.RenderBody.renderComponent
(RenderBody.java:45)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java:624)
org.apache.tapestry.components.Conditional.renderComponent
(Conditional.java:56)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java:624)
org.apache.tapestry.html.Body.renderComponent(Body.java:269)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.AbstractComponent.renderBody
(AbstractComponent.java:624)
org.apache.tapestry.html.Shell.renderComponent(Shell.java:124)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:
118)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:
118)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:300)
org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:
368)
org.apache.tapestry.engine.AbstractEngine.renderResponse
(AbstractEngine.java:749)
org.apache.tapestry.engine.AbstractEngine.handlePageRedirectException
(AbstractEngine.java:1045)
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:
899)
org.apache.tapestry.ApplicationServlet.doService
(ApplicationServlet.java:198)
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:
159)
javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch
(WebApplicationHandler.java:473)
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
org.mortbay.jetty.servlet.WebApplicationContext.handle
(WebApplicationContext.java:635)
org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
org.mortbay.http.HttpServer.service(HttpServer.java:954)
org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:
244)
org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]