struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (WW-4302) XmlConfigurationProvider.loadedFileUrls only contains the last one of urls with same file name
Date Fri, 28 Mar 2014 20:53:17 GMT


ASF subversion and git services commented on WW-4302:

Commit 1fae47dfc6c79624488f838e3cc8790fb2d00ae8 in struts's branch refs/heads/develop from
[;h=1fae47d ]

WW-4302 XmlConfigurationProvider.loadedFileUrls observs all loaded files

> XmlConfigurationProvider.loadedFileUrls only contains the last one of urls with same
file name
> ----------------------------------------------------------------------------------------------
>                 Key: WW-4302
>                 URL:
>             Project: Struts 2
>          Issue Type: Bug
>          Components: XML Configuration
>    Affects Versions:
>            Reporter: Liang Liu
>            Assignee: Lukasz Lenart
>            Priority: Minor
>              Labels: patch
>             Fix For: 2.3.17
> In XmlConfigurationProvider, the field loadedFileUrls contains the xml files loaded.
The loaded files will be checked if they are modified for configuration reloading.
> {code:java}
>     public boolean needsReload() {
>         for (String url : loadedFileUrls) {
>             if (fileManager.fileNeedsReloading(url)) {
>                 return true;
>             }
>         }
>         return false;
>     }
> {code}
> But in method private List<Document> loadConfigurationFiles(String fileName, Element
includeElement), after the while (urls.hasNext()) loop, the variable url is assigned by the
last one of urls with same file name.
> So when loadedFileUrls.add(url.toString()); is called in the for (Document doc : docs)
loop, only THE LAST ONE is added to loadedFileUrls.
> I wrote a demo. I set <constant name="struts.configuration.xml.reload" value="true"/>
> . I wrote two configuration files: struts-plugin.xml and struts-biz.xml in my web project.
I use struts plugins such as struts-spring-plugin, struts-json-plugin and so on.
> The reloading works when I changed the file struts-biz.xml in my project. But it does
not work when I changed struts-plugin.xml in my project. I debug XmlConfigurationProvider
and see only the struts-plugin.xml in struts-spring-plugin is contained in loadedFileUrls.
> I tried to fix it by moving the loadedFileUrls.add(url.toString()); into the while (urls.hasNext())
loop. I send a pull request in github:, and I test
it running well.

This message was sent by Atlassian JIRA

View raw message