abdera-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Calavera (JIRA)" <j...@apache.org>
Subject [jira] Updated: (ABDERA-146) Bad entry edit link created in my server when using a provider base path
Date Tue, 15 Apr 2008 10:15:04 GMT

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

David Calavera updated ABDERA-146:

    Attachment: route_manager.patch

I'm not sure if this is correct, but I think that the RouteManager class should use the contextPath
instead of the targetBasePath in order to create the url for the route.

> Bad entry edit link created in my server when using a provider base path
> ------------------------------------------------------------------------
>                 Key: ABDERA-146
>                 URL: https://issues.apache.org/jira/browse/ABDERA-146
>             Project: Abdera
>          Issue Type: Bug
>    Affects Versions: 0.4.0
>            Reporter: Remy Gendron
>         Attachments: route_manager.patch
> My Abdera servlet is not mapped to the root of my application context. It is mapped to
/atom/*, so that my application context can host multiple servlets and a static HTML site
at the root path.
> Thus, I create my provider with a base of /atom/. This in turn creates the following
route: /atom/:collection/:entry
> When I GET an entry, the resolving part goes well. However, the generated edit link for
this entry duplicates the base part of the URI.
> RouteManager.urlFor(RequestContext, Object, Object) line: 158	
> SpringProvider(AbstractProvider).urlFor(RequestContext, Object, Object) line: 102	
> ServletRequestContext(AbstractRequestContext).urlFor(Object, Object) line: 184	
> MovieAdapter(AbstractCollectionAdapter).getHref(RequestContext) line: 82	
> MovieAdapter(AbstractEntityCollectionAdapter<T>).getFeedIriForEntry(T, RequestContext)
line: 548	
> MovieAdapter(AbstractEntityCollectionAdapter<T>).getEntryFromCollectionProvider(RequestContext)
line: 721	
> MovieAdapter(AbstractEntityCollectionAdapter<T>).getEntry(RequestContext) line:
> SpringProvider(AbstractProvider).process(RequestContext) line: 155	
> The last stack frame (urlFor) is where I believe the error is. The route expands properly
and includes the provider base path. However, the getTargetBasePath() call concatenates the
application context with the servlet path, the servlet path being equal to the provider base
> Real values used in my tests:
> application context: /imdb
> provider base: /atom/
> adapter href: movies
> GET URI: http://localhost:8080/imdb/atom/movies/12345
> The generated edit URI is: http://localhost:8080/imdb/atom/atom/movies/12345
> Thanks for looking into this.
> Remy

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

View raw message