Stefaan Dutry created WW-4793: --------------------------------- Summary: Don't add JBossFileManager as a possible FileManager when not on JBoss Key: WW-4793 URL: https://issues.apache.org/jira/browse/WW-4793 Project: Struts 2 Issue Type: Improvement Components: Core Affects Versions: 2.5.10 Reporter: Stefaan Dutry Priority: Trivial
When the application starts and there is no FileManager specified as initParam, the {{JBossFileManager}} gets added. This results in the check happening everytime a FileManager is requested. (When turning on logging, i can see it happening 12 times when starting a simple application) {code:java|title=org.apache.struts2.dispatcher.Dispatcher} ... private void init_FileManager() throws ClassNotFoundException { if (initParams.containsKey(StrutsConstants.STRUTS_FILE_MANAGER)) { ... } else { // add any other Struts 2 provided implementations of FileManager configurationManager.addContainerProvider(new FileManagerProvider(JBossFileManager.class, "jboss")); } ... } ... {code} {code:java|title=com.opensymphony.xwork2.util.fs.DefaultFileManagerFactory} private FileManager lookupFileManager() { Set<String> names = container.getInstanceNames(FileManager.class); ... for (FileManager fm : internals) { if (fm.support()) { return fm; } } return null; } {code} My suggestion would be to not add it if it's not supported. I don't know what the best way to do this would be. The possibility i was thinking of so far involves the following: * Creating a seperate utility class to check if it can support it ** perhaps a public static innerclass of {{JBossFileManager}} with public static method(s) to check it? ** or a seperate class (although i think this might be awkward) * adding a test around adding the JBossFileManager to only do it when it could be supported. additional information: * log messages were noticed by adjusting the log4j2 configuration in the {{form-processing}} application from {{struts-examples}} and starting it. -- This message was sent by Atlassian JIRA (v6.3.15#6346)