[
https://issues.apache.org/jira/browse/WW-4672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15398919#comment-15398919
]
Lukasz Lenart commented on WW-4672:
-----------------------------------
hm... I thought it was ... I meant, that it supports locale in tiles
definitions. Anyway, you can always switch into previous mode by defining all
the tiles files via init param in {{web.xml}}
> StrutsApplicationResource incompatible with superclass
> PostfixedApplicationResource
> -----------------------------------------------------------------------------------
>
> Key: WW-4672
> URL: https://issues.apache.org/jira/browse/WW-4672
> Project: Struts 2
> Issue Type: Bug
> Components: Plugin - Tiles
> Affects Versions: 2.5.2
> Reporter: Joonas Vali
> Priority: Minor
>
> {{org.apache.struts2.tiles.StrutsApplicationResource}} constructor takes in a
> single parameter, URL, and from this parameter getPath() is asked, which
> returns absolute path to a resource on disk (usually?), and this is passed to
> the superclass as String.
> This logic is however incompatible with superclass
> {{org.apache.tiles.request.locale.PostfixedApplicationResource}} which is
> built to deal with relative paths to the context root. e.g
> '/WEB-INF/tiles.xml'.
> Previous creates issues with 'refreshing' enabled in
> (CachingLocaleUrlDefinitionDAO) superclass
> {{org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO#refreshRequired()}}
> method, which iterates over these resource paths and ultimately calls
> {{servletContext#getResource(path)}}, which always returns null on absolute
> paths. This results in the following NPE on next line where
> {{resource.getLastModified()}} is asked.
> {noformat}
> java.lang.NullPointerException
> at
> org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO.refreshRequired(BaseLocaleUrlDefinitionDAO.java:120)
> at
> org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinitions(CachingLocaleUrlDefinitionDAO.java:130)
> at
> org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinition(CachingLocaleUrlDefinitionDAO.java:105)
> at
> org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinition(CachingLocaleUrlDefinitionDAO.java:49)
> at
> org.apache.tiles.definition.UnresolvingLocaleDefinitionsFactory.getDefinition(UnresolvingLocaleDefinitionsFactory.java:89)
> at
> org.apache.tiles.impl.BasicTilesContainer.getDefinition(BasicTilesContainer.java:286)
> at
> org.apache.tiles.impl.BasicTilesContainer.isValidDefinition(BasicTilesContainer.java:273)
> at
> org.apache.tiles.TilesContainerWrapper.isValidDefinition(TilesContainerWrapper.java:88)
> at
> org.apache.tiles.impl.mgmt.CachingTilesContainer.isValidDefinition(CachingTilesContainer.java:100)
> at
> org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:139)
> at
> org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:208)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)