Tapestry 5
  1. Tapestry 5
  2. TAP5-1372

BaseURLSource uses getLocalPort() rather than getServerPort()

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 5.2.4
    • Fix Version/s: 5.3, 5.2.5
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      Line 31 of BaseURLSourceImpl:

      int port = request.getLocalPort();

      Which calls same method in the underlying ServletRequest.

      getLocalPort javadoc: "Returns the Internet Protocol (IP) port number of the interface on which the request was received."

      getServerPort javadoc: "Returns the port number to which the request was sent. It is the value of the part after ":" in the <code>Host</code> header, if any, or the server port where the client connection was accepted on."

      I think that the second is the one that should be used and since this port number is paired with the host returned from getServerName() rather than getLocalName(), this seems like a bug to me. Admittedly one that only causes problems in clustered & load balanced environments, but it's just affected our site so it would be great if it could be fixed for 5.2 final release. A final release of Tapestry should not have a bug like this in it!

      Unless anyone has a convincing argument why it should be this way, of course...

        Activity

        Hide
        Howard M. Lewis Ship added a comment -

        I can see this being important, but not quite important enough to hold off on the stable 5.2 release. It does warrant a 5.2.5 bug fix release IMO.

        Show
        Howard M. Lewis Ship added a comment - I can see this being important, but not quite important enough to hold off on the stable 5.2 release. It does warrant a 5.2.5 bug fix release IMO.
        Hide
        Andy Blower added a comment -

        Have you seen Igor's comment on the release vote thread?

        "I see another issue here: Request interface is a generic version of HttpServletRequest and PortletRequest. As of 5.2.0 Request has the getLocalPort() method which is not available in PortletRequest. "

        Just in case that makes a difference to your decision. It's fixed in our product, so it's not urgent for us, I just don't want anyone else hitting the same issue and thinking less of Tapestry.

        Show
        Andy Blower added a comment - Have you seen Igor's comment on the release vote thread? "I see another issue here: Request interface is a generic version of HttpServletRequest and PortletRequest. As of 5.2.0 Request has the getLocalPort() method which is not available in PortletRequest. " Just in case that makes a difference to your decision. It's fixed in our product, so it's not urgent for us, I just don't want anyone else hitting the same issue and thinking less of Tapestry.
        Hide
        Howard M. Lewis Ship added a comment -

        Fix experience using git svn w/ multiple branches. cherry-pick is handy!

        Show
        Howard M. Lewis Ship added a comment - Fix experience using git svn w/ multiple branches. cherry-pick is handy!
        Hide
        Hudson added a comment -

        Integrated in tapestry-5.2-freestyle #252 (See https://hudson.apache.org/hudson/job/tapestry-5.2-freestyle/252/)

        Show
        Hudson added a comment - Integrated in tapestry-5.2-freestyle #252 (See https://hudson.apache.org/hudson/job/tapestry-5.2-freestyle/252/ )

          People

          • Assignee:
            Howard M. Lewis Ship
            Reporter:
            Andy Blower
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development