tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Larry Isaacs" <Larry.Isa...@sas.com>
Subject RE: Error loop for R - Tomcat 3.3.1a
Date Tue, 10 Jan 2006 13:41:43 GMT
Sid,

The code where the exception is occurring is:

    private final String getAbsolutePathRelativeToContext(String relativeUrlPath) {
        String path = relativeUrlPath;

        if (!path.startsWith("/")) {
	    String uri = (String) request.getAttribute("javax.servlet.include.servlet_path");
	    if (uri == null)
		uri = ((HttpServletRequest) request).getServletPath();
401         String baseURI = uri.substring(0, uri.lastIndexOf('/'));
            path = baseURI+'/'+path;
        }

        return path;
    }

The code is trying to convert the "weblmpagetop.jsp" relative
path to a path from the root of the webapp.  What Jasper has to
work with to establish where "weblmpagetop.jsp" is located is
failing the "uri.lastIndexOf('/')".  This suggests the problem
is related to the "forwards" that are occurring prior to reaching
the "include".  Perhaps there is something that needs to start with
a '/' that doesn't.

I can't say that this isn't due to a quirk, bug, or spec ambiguity,
as opposed the webapp doing something wrong with respect to
the Servlet 2.2 spec.  It sounds like you are stuck with 3.3.1
as is.  Hopefully a reasonable workaround can be found.

Cheers,
Larry
 

> -----Original Message-----
> From: Siddhartha Mehta [mailto:mehtasd78@yahoo.com] 
> Sent: Tuesday, January 10, 2006 1:50 AM
> To: users@tomcat.apache.org
> Subject: Error loop for R - Tomcat 3.3.1a
> 
>   I am currently working on a web application that uses 
> Tomcat 4.1.27 and JDK 1.4.2_03.
> 
> The same piece of code now needs to be supported on Tomcat 
> 3.3.1 and JDK 1.4.2_08. I managed to get the classes, jsps 
> coompile and built by modifying the ant script. In fact even 
> the application runs perfect and the functionalities are 
> working as expected. Although, all is not good as it seems 
> so. In the backend, the tomcat - startup windows isn't quite 
> happy with the changes. I repeatedly get the following error 
> and I can make out very little from it.
> 
> I can think of possible cause as this code in my jsp but not 
> really sure:
> 
> ....
> <jsp:include page="weblmpagetop.jsp" flush="true">
>      <jsp:param name="disable-session-validation" value="true" />
>      <jsp:param name="body-title-text" value="<%= title %>" />
>      <jsp:param name="body-location-text" value="<%= location 
> %>" /> </jsp:include> ....
> 
> Exception thrown in tomcat-start up window is below:
> 
> 2006-01-10 11:48:04 - Ctx(/WebLM) : Exception in R( /WebLM + 
> /weblmlogin.jsp + n
> ull) - javax.servlet.ServletException: String index out of range: -1
>         at 
> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageCon
> textImpl.java:460)
>         at com.avaya.weblm.weblmlogin._jspService(Unknown Source)
>         at 
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at 
> org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java
> :574)
>         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
>         at org.apache.tomcat.core.Handler.service(Handler.java:235)
>         at 
> org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:4
> 85)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispa
> tcherImpl.java:272)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatc
> herImpl.java:174)
>         at 
> com.avaya.weblm.WebLMServlet.forwardToNextPage(Unknown Source)
>         at com.avaya.weblm.WebLMClientLogin.doPost(Unknown Source)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at 
> org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java
> :574)
>         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
>         at org.apache.tomcat.core.Handler.service(Handler.java:235)
>         at 
> org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:4
> 85)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispa
> tcherImpl.java:272)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatc
> herImpl.java:174)
>         at 
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.jav
> a:423)
>         at com.avaya.weblm.weblmlogin._jspService(Unknown Source)
>         at 
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at 
> org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java
> :574)
>         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
>         at org.apache.tomcat.core.Handler.service(Handler.java:235)
>         at 
> org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:4
> 85)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispa
> tcherImpl.java:272)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatc
> herImpl.java:174)
>         at 
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.jav
> a:423)
>         at com.avaya.weblm.index._jspService(Unknown Source)
>         at 
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at 
> org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java
> :574)
>         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
>         at org.apache.tomcat.core.Handler.service(Handler.java:235)
>         at 
> org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:4
> 85)
>         at 
> org.apache.tomcat.core.ContextManager.internalService(ContextManager.
> java:917)
>         at 
> org.apache.tomcat.core.ContextManager.service(ContextManager.java:833
> )
>         at 
> org.apache.tomcat.modules.server.Http10Interceptor.processConnection(
> Http10Interceptor.java:176)
>         at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
> :494)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
> ool.java:516)
>         at java.lang.Thread.run(Thread.java:534)
> Root cause:
> java.lang.StringIndexOutOfBoundsException: String index out 
> of range: -1
>         at java.lang.String.substring(String.java:1444)
>         at 
> org.apache.jasper.runtime.PageContextImpl.getAbsolutePathRelativeToCo
> ntext(PageContextImpl.java:401)
>         at 
> org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.jav
> a:411)
>         at com.avaya.weblm.weblmlogin._jspService(Unknown Source)
>         at 
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at 
> org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java
> :574)
>         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
>         at org.apache.tomcat.core.Handler.service(Handler.java:235)
>         at 
> org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:4
> 85)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispa
> tcherImpl.java:272)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatc
> herImpl.java:174)
>         at 
> com.avaya.weblm.WebLMServlet.forwardToNextPage(Unknown Source)
>         at com.avaya.weblm.WebLMClientLogin.doPost(Unknown Source)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at 
> org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java
> :574)
>         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
>         at org.apache.tomcat.core.Handler.service(Handler.java:235)
>         at 
> org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:4
> 85)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispa
> tcherImpl.java:272)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatc
> herImpl.java:174)
>         at 
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.jav
> a:423)
>         at com.avaya.weblm.weblmlogin._jspService(Unknown Source)
>         at 
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at 
> org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java
> :574)
>         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
>         at org.apache.tomcat.core.Handler.service(Handler.java:235)
>         at 
> org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:4
> 85)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispa
> tcherImpl.java:272)
>         at 
> org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatc
> herImpl.java:174)
>         at 
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.jav
> a:423)
>         at com.avaya.weblm.index._jspService(Unknown Source)
>         at 
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java)
>         at 
> org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java
> :574)
>         at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
>         at org.apache.tomcat.core.Handler.service(Handler.java:235)
>         at 
> org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:4
> 85)
>         at 
> org.apache.tomcat.core.ContextManager.internalService(ContextManager.
> java:917)
>         at 
> org.apache.tomcat.core.ContextManager.service(ContextManager.java:833
> )
>         at 
> org.apache.tomcat.modules.server.Http10Interceptor.processConnection(
> Http10Interceptor.java:176)
>         at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
> :494)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
> ool.java:516)
>         at java.lang.Thread.run(Thread.java:534)
> 
> 2006-01-10 11:48:04 - ErrorHandler: Error loop for R( /WebLM 
> + /weblmlogin.jsp +
>  null) error javax.servlet.ServletException: String index out 
> of range: -1
> 
> Any help/pointer/suggestion is highly appreciated.
> 
> Thanks
> 
> Sid
> 
> 
> 		
> ---------------------------------
>  Yahoo! DSL Something to write home about. Just $16.99/mo. or less
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message