[ 
https://issues.apache.org/jira/browse/TAP5-2276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13893238#comment-13893238
 ] 

Jochen Kemnade commented on TAP5-2276:
--------------------------------------

Ah, I see, that's a different but related issue. When the {{AssetSource}} 
determines the asset resource location, it uses the library name from your 
{{FormDialog}} class, which is the empty String, so the resource path becomes 
{{META-INF/assets/common.js}}.
We should probably reconsider the way {{AssetSource}} locates assets.

> Error loading asset from inherited component from different library
> -------------------------------------------------------------------
>
>                 Key: TAP5-2276
>                 URL: https://issues.apache.org/jira/browse/TAP5-2276
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.4
>            Reporter: Vladimir Velikiy
>              Labels: assets, component, inheritance
>
> I use component inheritance in my project. Parent component 'Dialog' is 
> located in library 'common'. It uses asset 'common.js' located in 
> META-INF/assets/common/common.js. When I use it in page it works fine, but if 
> I use inherited component FormDialog located in my application components 
> folder,  I get error: 'Unable to locate asset 'common.js' for component 
> request/Create:contractorcreatedialog. It should be located at 
> META-INF/assets/common.js'. Inherited component doesn't contain any @Import 
> annotations.
> This error occurs because method getComponentAsset(...) in AssetSourceImpl 
> uses ComponentResources of inherited component when calculates asset path and 
> gets incorrect (empty in my case) library path prefix instead of super 
> component library name.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to