struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (WW-4793) Don't add JBossFileManager as a possible FileManager when not on JBoss
Date Mon, 01 May 2017 16:57:04 GMT

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

ASF GitHub Bot commented on WW-4793:
------------------------------------

Github user sdutry commented on a diff in the pull request:

    https://github.com/apache/struts/pull/136#discussion_r114154579
  
    --- Diff: core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java ---
    @@ -210,4 +187,33 @@ private void addIfAbsent(List<URL> urls, URL fileUrl) {
             }
         }
     
    +    public static class JBossFileManagerSupportUtil {
    --- End diff --
    
    @aleksandr-m 
    Good point, let me change that.


> 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)

Mime
View raw message