ICEfaces
  1. ICEfaces
  2. ICE-1191

JspPageToDocument.getTldInputStream() needs support for relative URIs

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.1
    • Fix Version/s: 1.6DR#4, 1.6
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      Operating System: Windows XP
      Platform: PC

      Description

      seems a lot of people want to be able to load tlds from relative locations
      outside of jars (usually for ide support of taglib content assist). It doesn't
      seem like JspPageToDocument.getTldInputStream() can check these relative locations.

      ie. <%@ taglib uri="/WEB-INF/tld/myfaces_html.tld" prefix="h"%>

        Activity

        Hide
        Ted Goddard added a comment -

        Where are they putting the TLDs at runtime? ICEfaces TLD scanning shouldn't have any effect during
        development time, and at runtime the TLDs should be pulled automatically from WEB-INF. Maybe the
        bigger problem is what ICEfaces will do with the custom tags if they don't correspond to ICEfaces
        components.

        Show
        Ted Goddard added a comment - Where are they putting the TLDs at runtime? ICEfaces TLD scanning shouldn't have any effect during development time, and at runtime the TLDs should be pulled automatically from WEB-INF. Maybe the bigger problem is what ICEfaces will do with the custom tags if they don't correspond to ICEfaces components.
        Hide
        Philip Breau added a comment -

        Seems to only happen with <f:> in included JSPs, and other non-standard tags
        (eg. <t:> ) whether they are in included JSPs or not. Attached test case

        2007-01-23 13:06:13,256 ERROR
        [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/support-3839].[Persistent
        Faces Servlet]] Servlet.service() for servlet Persistent Faces Servlet threw
        exception
        javax.faces.FacesException: Can't parse stream for /login/login.jsp Failed to
        execute JSP lifecycle.
        at
        com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
        at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149)
        at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:367)
        at
        com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet.service(PersistentFacesServlet.java:390)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at
        org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at
        org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
        org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:181)
        at
        org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
        org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
        org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at
        org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
        org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
        org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
        org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
        org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at
        org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at
        org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at
        org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at
        org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
        at java.lang.Thread.run(Thread.java:595)
        Caused by: javax.faces.FacesException: Failed to execute JSP lifecycle.
        at com.icesoft.faces.webapp.parser.Parser.parse(Parser.java:140)
        at
        com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:502)
        ... 25 more
        Caused by: java.lang.IllegalStateException: ICEfaces parser unable to determine
        JSF implementation ViewTag class.
        at com.icesoft.faces.webapp.parser.Parser.parse(Parser.java:128)
        ... 26 more

        when including relative ice or h tld declarations in included JSPs the following
        error is generated:

        ERROR [com.icesoft.faces.webapp.parser.JspPageToDocument] Can't find TLD for
        location [/WEB-INF/myfaces_html.tld]. JAR containing the TLD may not be in the
        classpath
        ERROR [com.icesoft.faces.webapp.parser.JspPageToDocument] Can't find TLD for
        location [/WEB-INF/icefaces_component.tld]. JAR containing the TLD may not be in
        the classpath

        Show
        Philip Breau added a comment - Seems to only happen with <f:> in included JSPs, and other non-standard tags (eg. <t:> ) whether they are in included JSPs or not. Attached test case 2007-01-23 13:06:13,256 ERROR [org.apache.catalina.core.ContainerBase. [jboss.web] . [localhost] . [/support-3839] .[Persistent Faces Servlet]] Servlet.service() for servlet Persistent Faces Servlet threw exception javax.faces.FacesException: Can't parse stream for /login/login.jsp Failed to execute JSP lifecycle. at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517) at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:367) at com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet.service(PersistentFacesServlet.java:390) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:181) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: javax.faces.FacesException: Failed to execute JSP lifecycle. at com.icesoft.faces.webapp.parser.Parser.parse(Parser.java:140) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:502) ... 25 more Caused by: java.lang.IllegalStateException: ICEfaces parser unable to determine JSF implementation ViewTag class. at com.icesoft.faces.webapp.parser.Parser.parse(Parser.java:128) ... 26 more when including relative ice or h tld declarations in included JSPs the following error is generated: ERROR [com.icesoft.faces.webapp.parser.JspPageToDocument] Can't find TLD for location [/WEB-INF/myfaces_html.tld] . JAR containing the TLD may not be in the classpath ERROR [com.icesoft.faces.webapp.parser.JspPageToDocument] Can't find TLD for location [/WEB-INF/icefaces_component.tld] . JAR containing the TLD may not be in the classpath
        Hide
        Philip Breau added a comment -

        Created an attachment (id=138)
        test case

        Show
        Philip Breau added a comment - Created an attachment (id=138) test case
        Hide
        Ted Goddard added a comment -

        Verified fix (explicitly check for path-formatted TLD URIs) against the provided test case.

        Show
        Ted Goddard added a comment - Verified fix (explicitly check for path-formatted TLD URIs) against the provided test case.

          People

          • Assignee:
            Unassigned
            Reporter:
            Philip Breau
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: