Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-1960

Tapestry should ignore the paths that tapestry can not resolve and let container deal with those paths

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 5.0.5
    • unspecified
    • tapestry-core
    • None
    • Win XP sp2, Apache Tomcat Server 5.5.23

    Description

      I am using Tapestry core 5.0.5.
      I integrated Tapestry 5 and hibernate.

      I configured my application's web.xml as below -

      <context-param>
      <param-name>tapestry.app-package</param-name>
      <param-value>com.myproject</param-value>
      </context-param>

      <filter>
      <filter-name>tapestryFilter</filter-name>
      <filter-class>org.apache.tapestry.TapestryFilter</filter-class>
      </filter>

      <filter-mapping>
      <filter-name>tapestryFilter</filter-name>
      <url-pattern>/*</url-pattern>
      </filter-mapping>

      This works perfect with all Tapestry related pages.
      At certain operation in my application when a file is being uploaded from jsp page by using
      servlet it generates output with .htm which fires a Tapestry Page not found exception.
      When the application generates url - packageName/FileName.htm it throws this exception.
      Tapestry should ignore the paths that tapestry can not resolve and let container deal with those paths.

      Stack Trace is as below -
      An unexpected application exception has occurred.

      • java.lang.IllegalArgumentException
        Unable to resolve page 'packageName/FileName' to a known page name. Available page names: core/ExceptionReport, core/PropertyDisplayBlocks, core/PropertyEditBlocks, pacakage/page1, pacakage/page1.

      Stack trace
      o org.apache.tapestry.internal.services.ComponentClassResolverImpl$8.invoke
      (ComponentClassResolverImpl.java:393)
      o org.apache.tapestry.internal.services.ComponentClassResolverImpl$8.invoke
      (ComponentClassResolverImpl.java:388)
      o org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
      o org.apache.tapestry.internal.services.ComponentClassResolverImpl.canonicalizePageName
      (ComponentClassResolverImpl.java:386)
      o org.apache.tapestry.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:59)
      o org.apache.tapestry.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:44)
      o org.apache.tapestry.internal.services.RequestEncodingInitializerImpl.initializeRequestEncoding
      (RequestEncodingInitializerImpl.java:42)
      o org.apache.tapestry.internal.services.InternalModule$11.handle(InternalModule.java:539)
      o org.apache.tapestry.internal.services.ComponentActionDispatcher.dispatch
      (ComponentActionDispatcher.java:116)
      o org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:1066)
      o org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
      o org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:657)
      o org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:63)
      o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:97)
      o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:88)
      o org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
      o org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:110)
      o org.apache.tapestry.services.TapestryModule$11.service(TapestryModule.java:1044)
      o org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
      o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      o net.project.security.SessionAccessFilter.doFilter(SessionAccessFilter.java:79)
      o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      o org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
      o org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
      o org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      o org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      o org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
      o org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
      o org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
      o org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
      (Http11BaseProtocol.java:665)
      o org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
      o org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
      o org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
      o java.lang.Thread.run(Unknown Source)

      I tried to change <url-pattern> to - /package/* , this solves my problem of uploading and
      all tapestry action requests are successfully handled but all Tapestry pages are displayed
      with - [Error] - like text in front of every Tapestry component on that page.
      This - [Error] - is actually alt text for error image of Tapestry, displays on validation error.

      Attachments

        Activity

          People

            hlship Howard Lewis Ship
            ritesh_inactive Ritesh Sandupatla (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: