diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java index 355dda7e1..58ccc4e29 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java @@ -741,11 +741,9 @@ public class Dispatcher { MultiPartRequest mpr = null; //check for alternate implementations of MultiPartRequest Set multiNames = getContainer().getInstanceNames(MultiPartRequest.class); - if (multiNames != null) { - for (String multiName : multiNames) { - if (multiName.equals(multipartHandlerName)) { - mpr = getContainer().getInstance(MultiPartRequest.class, multiName); - } + for (String multiName : multiNames) { + if (multiName.equals(multipartHandlerName)) { + mpr = getContainer().getInstance(MultiPartRequest.class, multiName); } } if (mpr == null ) { diff --git a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java index d5a0fd664..debc17c05 100644 --- a/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java +++ b/plugins/config-browser/src/main/java/org/apache/struts2/config_browser/ShowBeansAction.java @@ -35,7 +35,6 @@ import org.apache.struts2.dispatcher.multipart.MultiPartRequest; import org.apache.struts2.views.freemarker.FreemarkerManager; import org.apache.struts2.views.velocity.VelocityManager; -import java.util.Collections; import java.util.Map; import java.util.Set; import java.util.TreeMap; @@ -75,9 +74,6 @@ public class ShowBeansAction extends ActionNamesAction { chosenName = "struts"; } Set names = container.getInstanceNames(type); - if (names == null) { - names = Collections.emptySet(); - } if (!names.contains(chosenName)) { bindings.add(new Binding(getInstanceClassName(container, type, "default"), chosenName, constName, true)); } diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultUnknownHandlerManager.java b/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultUnknownHandlerManager.java index 057a0019f..b1e36d582 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultUnknownHandlerManager.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultUnknownHandlerManager.java @@ -15,20 +15,16 @@ */ package com.opensymphony.xwork2; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.Result; -import com.opensymphony.xwork2.UnknownHandler; -import com.opensymphony.xwork2.UnknownHandlerManager; import com.opensymphony.xwork2.config.Configuration; import com.opensymphony.xwork2.config.entities.ActionConfig; import com.opensymphony.xwork2.config.entities.UnknownHandlerConfig; import com.opensymphony.xwork2.inject.Container; import com.opensymphony.xwork2.inject.Inject; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + /** * Default implementation of UnknownHandlerManager * @@ -69,11 +65,9 @@ public class DefaultUnknownHandlerManager implements UnknownHandlerManager { } else { //add all available UnknownHandlers Set unknowHandlerNames = container.getInstanceNames(UnknownHandler.class); - if (unknowHandlerNames != null) { - for (String unknowHandlerName : unknowHandlerNames) { - UnknownHandler uh = container.getInstance(UnknownHandler.class, unknowHandlerName); - unknownHandlers.add(uh); - } + for (String unknowHandlerName : unknowHandlerNames) { + UnknownHandler uh = container.getInstance(UnknownHandler.class, unknowHandlerName); + unknownHandlers.add(uh); } } } diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java b/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java index 491d4ae0d..29bd200d1 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java @@ -17,7 +17,6 @@ package com.opensymphony.xwork2.config.impl; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.DefaultTextProvider; -import com.opensymphony.xwork2.FileManager; import com.opensymphony.xwork2.FileManagerFactory; import com.opensymphony.xwork2.ObjectFactory; import com.opensymphony.xwork2.TextProvider; @@ -57,7 +56,6 @@ import com.opensymphony.xwork2.util.CompoundRoot; import com.opensymphony.xwork2.util.PatternMatcher; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; -import com.opensymphony.xwork2.util.fs.DefaultFileManager; import com.opensymphony.xwork2.util.fs.DefaultFileManagerFactory; import com.opensymphony.xwork2.util.location.LocatableProperties; import com.opensymphony.xwork2.util.logging.Logger; @@ -240,13 +238,11 @@ public class DefaultConfiguration implements Configuration { // Then process any package providers from the plugins Set packageProviderNames = container.getInstanceNames(PackageProvider.class); - if (packageProviderNames != null) { - for (String name : packageProviderNames) { - PackageProvider provider = container.getInstance(PackageProvider.class, name); - provider.init(this); - provider.loadPackages(); - packageProviders.add(provider); - } + for (String name : packageProviderNames) { + PackageProvider provider = container.getInstance(PackageProvider.class, name); + provider.init(this); + provider.loadPackages(); + packageProviders.add(provider); } rebuildRuntimeConfiguration(); diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/inject/Container.java b/xwork-core/src/main/java/com/opensymphony/xwork2/inject/Container.java index c64bb7125..bca6032c7 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/inject/Container.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/inject/Container.java @@ -97,7 +97,7 @@ public interface Container extends Serializable { /** * Gets a set of all registered names for the given type * @param type The instance type - * @return A set of registered names + * @return A set of registered names or empty set if no instances are registered for that type */ Set getInstanceNames(Class type); diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/inject/ContainerImpl.java b/xwork-core/src/main/java/com/opensymphony/xwork2/inject/ContainerImpl.java index 768189e0a..1b9abb939 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/inject/ContainerImpl.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/inject/ContainerImpl.java @@ -558,7 +558,11 @@ class ContainerImpl implements Container { } public Set getInstanceNames( final Class type ) { - return factoryNamesByType.get(type); + Set names = factoryNamesByType.get(type); + if (names == null) { + names = Collections.emptySet(); + } + return names; } ThreadLocal localContext = diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStackFactory.java b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStackFactory.java index ad16587d6..2edfa9f75 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStackFactory.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStackFactory.java @@ -75,38 +75,32 @@ public class OgnlValueStackFactory implements ValueStackFactory { @Inject public void setContainer(Container container) throws ClassNotFoundException { Set names = container.getInstanceNames(PropertyAccessor.class); - if (names != null) { - for (String name : names) { - Class cls = Class.forName(name); - if (cls != null) { - if (Map.class.isAssignableFrom(cls)) { - PropertyAccessor acc = container.getInstance(PropertyAccessor.class, name); - } - OgnlRuntime.setPropertyAccessor(cls, container.getInstance(PropertyAccessor.class, name)); - if (compoundRootAccessor == null && CompoundRoot.class.isAssignableFrom(cls)) { - compoundRootAccessor = (CompoundRootAccessor) container.getInstance(PropertyAccessor.class, name); - } + for (String name : names) { + Class cls = Class.forName(name); + if (cls != null) { + if (Map.class.isAssignableFrom(cls)) { + PropertyAccessor acc = container.getInstance(PropertyAccessor.class, name); + } + OgnlRuntime.setPropertyAccessor(cls, container.getInstance(PropertyAccessor.class, name)); + if (compoundRootAccessor == null && CompoundRoot.class.isAssignableFrom(cls)) { + compoundRootAccessor = (CompoundRootAccessor) container.getInstance(PropertyAccessor.class, name); } } } - + names = container.getInstanceNames(MethodAccessor.class); - if (names != null) { - for (String name : names) { - Class cls = Class.forName(name); - if (cls != null) { - OgnlRuntime.setMethodAccessor(cls, container.getInstance(MethodAccessor.class, name)); - } + for (String name : names) { + Class cls = Class.forName(name); + if (cls != null) { + OgnlRuntime.setMethodAccessor(cls, container.getInstance(MethodAccessor.class, name)); } } - + names = container.getInstanceNames(NullHandler.class); - if (names != null) { - for (String name : names) { - Class cls = Class.forName(name); - if (cls != null) { - OgnlRuntime.setNullHandler(cls, new OgnlNullHandlerWrapper(container.getInstance(NullHandler.class, name))); - } + for (String name : names) { + Class cls = Class.forName(name); + if (cls != null) { + OgnlRuntime.setNullHandler(cls, new OgnlNullHandlerWrapper(container.getInstance(NullHandler.class, name))); } } if (compoundRootAccessor == null) { diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactory.java b/xwork-core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactory.java index d09e4f607..a367c38d0 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactory.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactory.java @@ -21,17 +21,15 @@ public class DefaultFileManagerFactory implements FileManagerFactory { @Inject public DefaultFileManagerFactory(Container container) { Set names = container.getInstanceNames(FileManager.class); - if (names != null) { - for (String fmName : names) { - FileManager fm = container.getInstance(FileManager.class, fmName); - if (fm.support()) { - if (fileManager != null) { - LOG.error("More than one FileManager supports current file system, [#0] and [#1]! " - + "Remove one of them from the config! Using implementation [#2]", - fm.toString(), fileManager.toString(), fm.toString()); - } - fileManager = fm; + for (String fmName : names) { + FileManager fm = container.getInstance(FileManager.class, fmName); + if (fm.support()) { + if (fileManager != null) { + LOG.error("More than one FileManager supports current file system, [#0] and [#1]! " + + "Remove one of them from the config! Using implementation [#2]", + fm.toString(), fileManager.toString(), fm.toString()); } + fileManager = fm; } } if (fileManager == null) { diff --git a/xwork-core/src/test/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactoryTest.java b/xwork-core/src/test/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactoryTest.java index fa06dc735..9896d9402 100644 --- a/xwork-core/src/test/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactoryTest.java +++ b/xwork-core/src/test/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactoryTest.java @@ -10,6 +10,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -80,7 +81,7 @@ class DummyContainer implements Container { } }; } - return null; + return Collections.emptySet(); } public void setScopeStrategy(Scope.Strategy scopeStrategy) {