tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nick Westgate (JIRA)" <...@tapestry.apache.org>
Subject [jira] Updated: (TAPESTRY-1627) Start page redirect requests can return an empty response.
Date Tue, 21 Aug 2007 11:03:30 GMT

     [ https://issues.apache.org/jira/browse/TAPESTRY-1627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Nick Westgate updated TAPESTRY-1627:

    Attachment: TAPESTRY-1627.patch

Well, here's a 3 line patch!

I had a go at adding a test for this, but the redirect makes it tough.
You can't use a test with a context, because the RootPathDispatcher won't catch that.
It might be easier in app2, or require another test app entirely.
It also might not be worth testing it at all!

For the record, I tried to use an ASO in the Start page of app1 as follows:

import org.apache.tapestry.integration.app1.SimpleASO;

 * Have to start somewhere!
public class Start
    private SimpleASO _aso;
    private boolean _asoExists;

    Object onActivate()
        if (!_asoExists)
            // test redirect handling from root page
            _aso = new SimpleASO();
            return this;

        return null;

The result if broken:
com.thoughtworks.selenium.SeleniumException: ERROR: Element link=Expansion Page not found

The result if fixed:


> Start page redirect requests can return an empty response.
> ----------------------------------------------------------
>                 Key: TAPESTRY-1627
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1627
>             Project: Tapestry
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.5
>            Reporter: Nick Westgate
>         Attachments: TAPESTRY-1627.patch
> A Start page redirect request will produce an empty response if the request URL was root,
e.g: http://localhost:8080/myapp/
> It will succeed only if the URL maps to the Start page, eg: http://localhost:8080/myapp/start
> It looks like just a couple of lines need to be (changed/added) in org.apache.tapestry.internal.services.RootPathDispatcher.dispatch()
> [Marked by -/+ below.]
>     public boolean dispatch(Request request, final Response response) throws IOException
>     {
>         // Only match the root path
>         if (!request.getPath().equals("/")) return false;
>         if (_componentClassResolver.isPageName(_startPageName))
>         {
> -            _handler.handle(_startPageName, _emptyContext);
> +            ActionResponseGenerator responseGenerator = _handler.handle(pageName, context);
> +            if (responseGenerator != null) responseGenerator.sendClientResponse(response);
>             return true;
>         }
>         return false;
>     }
> Cheers,
> Nick.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org

View raw message