[jira] [Commented] (WW-4302) XmlConfigurationProvider.loadedFileUrls only contains the last one of urls with same file name
[ https://issues.apache.org/jira/browse/WW-4302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13951369#comment-13951369 ] ASF subversion and git services commented on WW-4302: - Commit 1fae47dfc6c79624488f838e3cc8790fb2d00ae8 in struts's branch refs/heads/develop from [~lukaszlenart] [ https://git-wip-us.apache.org/repos/asf?p=struts.git;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: https://issues.apache.org/jira/browse/WW-4302 Project: Struts 2 Issue Type: Bug Components: XML Configuration Affects Versions: 2.3.16.1 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 ListDocument 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: https://github.com/apache/struts/pull/6, and I test it running well. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (WW-4302) XmlConfigurationProvider.loadedFileUrls only contains the last one of urls with same file name
[ https://issues.apache.org/jira/browse/WW-4302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13941660#comment-13941660 ] ASF GitHub Bot commented on WW-4302: Github user code4craft commented on the pull request: https://github.com/apache/struts/pull/6#issuecomment-38159811 The JIRA issue is [https://issues.apache.org/jira/browse/WW-4302](https://issues.apache.org/jira/browse/WW-4302). XmlConfigurationProvider.loadedFileUrls only contains the last one of urls with same file name -- Key: WW-4302 URL: https://issues.apache.org/jira/browse/WW-4302 Project: Struts 2 Issue Type: Bug Components: XML Configuration Affects Versions: 2.3.16.1 Reporter: Liang Liu 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. public boolean needsReload() { for (String url : loadedFileUrls) { if (fileManager.fileNeedsReloading(url)) { return true; } } return false; } But in method private ListDocument 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: https://github.com/apache/struts/pull/6, and I test it running well. -- This message was sent by Atlassian JIRA (v6.2#6252)