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

Under Tomcat, a root path URL such as http://.../context (without a trailing slash) causes a StringIndexOutOfBoundsException inside PageRenderDispatcher

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.3
    • Fix Version/s: 5.0.3
    • Component/s: None
    • Labels:
      None
    • Environment:
      linux, tomcat4 ("connected" to apache1.3 via modjk), java 1.5

      Description

      PageRenderDispatcher.dispatch assumes that request.getPath() will always return at least "/". However, it is possible with tomcat for getPath() to return an empty string.
      http://www.foo.com/context will return an empty string in tomcat (not in jetty).

      1. TAPESTRY-1343.patch
        1 kB
        Robert Zeigler
      2. TestPageRenderDispatcher.java
        1 kB
        Robert Zeigler

        Activity

        Hide
        ongakugainochi Robert Zeigler added a comment -

        TestNG test class to illustrate the problem.

        Show
        ongakugainochi Robert Zeigler added a comment - TestNG test class to illustrate the problem.
        Hide
        ongakugainochi Robert Zeigler added a comment -

        patch to fix the issue. Uses ioc's Defense.notBlank to check for the blank string.

        Show
        ongakugainochi Robert Zeigler added a comment - patch to fix the issue. Uses ioc's Defense.notBlank to check for the blank string.
        Hide
        hlship Howard M. Lewis Ship added a comment -

        Robert ... triggering a thrown exception to avoid a call to String.equals("") is not exactly efficient Thanks for the problem description and I hope this fixes your issue.

        Show
        hlship Howard M. Lewis Ship added a comment - Robert ... triggering a thrown exception to avoid a call to String.equals("") is not exactly efficient Thanks for the problem description and I hope this fixes your issue.
        Hide
        ongakugainochi Robert Zeigler added a comment -

        My first version (which, obviously, I didn't use) just had a String.equals call. But then I remembered seeing the "notBlank" method elsewhere in the code, and wondered if that would be preferable for the sake of consistency in the code. Either way, it should fix the issue.

        Robert

        Show
        ongakugainochi Robert Zeigler added a comment - My first version (which, obviously, I didn't use) just had a String.equals call. But then I remembered seeing the "notBlank" method elsewhere in the code, and wondered if that would be preferable for the sake of consistency in the code. Either way, it should fix the issue. Robert

          People

          • Assignee:
            hlship Howard M. Lewis Ship
            Reporter:
            ongakugainochi Robert Zeigler
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development