You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Aadi Deshpande <ma...@clubmom-inc.com> on 2004/02/28 00:25:17 UTC
Cross context c:import not working?
Hi,
I'm not sure if this or the taglibs-user is the right place for posting
this, but it looks to be a Tomcat error.
When trying to use a c:import in the vein of :
<c:import url="/test.jsp" context="/profile"/>
Hi,
Not sure if this is the right place or taglibs-user for this issue ( it
seems to be a tomcat problem ), but it looks like cross context
c:imports don't work if a page is session-enabled. This used to work in
Tomcat 5.0.16 but is broken in 5.0.19
For example :
Both "/" and "/profile" contexts have crossContext="true"
<c:import url="/cross_context_import.jsp" context="/profile"/>
if cross_context_import.jsp has <%@ page session="false" %>, everything
works well.
if cross_context_import doesn't have that ( or <%@ page session="true"
%> ), then it gives me a NullPointerException ( stack trace at the end )
The problem it seems is that inside ApplicationHttpRequest.getSession(),
the call to context.getManager().findSession(<id>) returns null ( this
is for the first time that the context is accessed ).
However, before checking to see if the session is null, the .access()
method is called on it ( presumably to update the access time ) . The
whole thing is wrapped in an IOException, but which gets ignored since
NullPointerException is a RuntimeException.
What's odd is that the check for the ( localSession == null ) follows
immediately after the try block, so it looks like some sort of oversight
in my eyes.
What I've done is take the source code, and refactor it so that the
access comes in an else block ( it looks like other session management
code was put in place after 5.0.16 )
I'd like to make sure I didn't miss anything before erroneously
reporting a bug.
java.lang.NullPointerException
at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:546)
at
org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:512)
at
org.apache.jasper.runtime.PageContextImpl._initialize(PageContextImpl.java:192)
at
org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:167)
at
org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:149)
at
org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:106)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:55)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:750)
at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:636)
at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:546)
at
org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:179)
at
org.apache.jsp.cross_005fcontext_005fimport_jsp._jspx_meth_c_import_0(cross_005fcontext_005fimport_jsp.java:85)
at
org.apache.jsp.cross_005fcontext_005fimport_jsp._jspService(cross_005fcontext_005fimport_jsp.java:59)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at
clubmom.framework.PersistentHibernateSession.doFilter(PersistentHibernateSession.java:62)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:184)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at
org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:216)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:833)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:732)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:619)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:688)
at java.lang.Thread.run(Thread.java:534)
the application fails with the error
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
Re: Cross context c:import not working?
Posted by Aadi Deshpande <ma...@clubmom-inc.com>.
For the archives :
this is bug 27309 (
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27309 ) and has been
fixed in head.
-a
Aadi Deshpande wrote:
> Hi,
>
> I'm not sure if this or the taglibs-user is the right place for
> posting this, but it looks to be a Tomcat error.
>
> When trying to use a c:import in the vein of :
>
> <c:import url="/test.jsp" context="/profile"/>
> Hi,
>
> Not sure if this is the right place or taglibs-user for this issue (
> it seems to be a tomcat problem ), but it looks like cross context
> c:imports don't work if a page is session-enabled. This used to work
> in Tomcat 5.0.16 but is broken in 5.0.19
>
> For example :
>
> Both "/" and "/profile" contexts have crossContext="true"
>
> <c:import url="/cross_context_import.jsp" context="/profile"/>
>
> if cross_context_import.jsp has <%@ page session="false" %>,
> everything works well.
>
> if cross_context_import doesn't have that ( or <%@ page session="true"
> %> ), then it gives me a NullPointerException ( stack trace at the end )
>
> The problem it seems is that inside
> ApplicationHttpRequest.getSession(), the call to
> context.getManager().findSession(<id>) returns null ( this is for the
> first time that the context is accessed ).
>
> However, before checking to see if the session is null, the .access()
> method is called on it ( presumably to update the access time ) . The
> whole thing is wrapped in an IOException, but which gets ignored since
> NullPointerException is a RuntimeException.
>
> What's odd is that the check for the ( localSession == null ) follows
> immediately after the try block, so it looks like some sort of
> oversight in my eyes.
>
> What I've done is take the source code, and refactor it so that the
> access comes in an else block ( it looks like other session management
> code was put in place after 5.0.16 )
>
>
> I'd like to make sure I didn't miss anything before erroneously
> reporting a bug.
>
>
>
>
> java.lang.NullPointerException
> at
> org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:546)
>
> at
> org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:512)
>
> at
> org.apache.jasper.runtime.PageContextImpl._initialize(PageContextImpl.java:192)
>
> at
> org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:167)
>
> at
> org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:149)
>
> at
> org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:106)
>
> at org.apache.jsp.index_jsp._jspService(index_jsp.java:55)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
>
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:750)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:636)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:546)
>
> at
> org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:179)
>
> at
> org.apache.jsp.cross_005fcontext_005fimport_jsp._jspx_meth_c_import_0(cross_005fcontext_005fimport_jsp.java:85)
>
> at
> org.apache.jsp.cross_005fcontext_005fimport_jsp._jspService(cross_005fcontext_005fimport_jsp.java:59)
>
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
>
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
>
> at
> clubmom.framework.PersistentHibernateSession.doFilter(PersistentHibernateSession.java:62)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
>
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
>
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
>
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
>
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:184)
>
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
>
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
>
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
>
> at
> org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:216)
>
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
>
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:833)
>
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:732)
>
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:619)
>
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:688)
>
> at java.lang.Thread.run(Thread.java:534)
>
>
>
> the application fails with the error
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org