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

David Calavera updated ABDERA-146:
----------------------------------

    Attachment:     (was: route_manager.patch)

> 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: 316   
> 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 path.
> 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.

Reply via email to