You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bu...@apache.org on 2019/05/17 18:13:36 UTC

[cxf] 04/04: cxf-core: fix Sonar warnings

This is an automated email from the ASF dual-hosted git repository.

buhhunyx pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit a8a56cb4e394dd1d7e99c7398968b8cbe061e500
Author: amarkevich <am...@talend.com>
AuthorDate: Mon Apr 22 12:39:41 2019 +0300

    cxf-core: fix Sonar warnings
---
 core/src/main/java/org/apache/cxf/BusFactory.java  | 19 +++---
 .../cxf/attachment/AttachmentDeserializer.java     |  2 +-
 .../cxf/attachment/AttachmentSerializer.java       |  3 +-
 .../cxf/attachment/ImageDataContentHandler.java    |  4 +-
 .../org/apache/cxf/attachment/LazyDataSource.java  | 26 +++------
 .../cxf/attachment/MimeBodyPartInputStream.java    |  4 +-
 .../apache/cxf/bus/blueprint/ConfigurerImpl.java   |  5 +-
 .../org/apache/cxf/bus/extension/Extension.java    | 14 +----
 .../cxf/bus/extension/ExtensionManagerBus.java     | 30 ++++------
 .../apache/cxf/bus/managers/HeaderManagerImpl.java |  5 +-
 .../cxf/bus/managers/WorkQueueManagerImpl.java     |  2 +-
 ...ontrolledValidationXmlBeanDefinitionReader.java |  6 +-
 .../apache/cxf/bus/spring/NamespaceHandler.java    |  3 +-
 .../cxf/catalog/CatalogXmlSchemaURIResolver.java   |  2 +-
 .../cxf/common/injection/ResourceInjector.java     |  6 +-
 .../apache/cxf/common/jaxb/JAXBContextCache.java   |  5 +-
 .../java/org/apache/cxf/common/jaxb/JAXBUtils.java | 37 +++++-------
 .../java/org/apache/cxf/common/util/Compiler.java  | 47 +++++++--------
 .../org/apache/cxf/common/util/PrimitiveUtils.java |  3 +-
 .../cxf/common/util/PropertiesLoaderUtils.java     |  8 +--
 .../cxf/common/util/ProxyClassLoaderCache.java     |  2 +-
 .../cxf/common/util/SpringClassUnwrapper.java      |  2 +-
 .../org/apache/cxf/common/util/SpringOsgiUtil.java |  2 +-
 .../org/apache/cxf/common/util/StringUtils.java    | 12 ++--
 .../org/apache/cxf/common/util/URIParserUtil.java  |  2 +-
 .../cxf/common/xmlschema/SchemaCollection.java     |  2 +-
 .../blueprint/AbstractBPBeanDefinitionParser.java  |  4 +-
 .../apache/cxf/configuration/jsse/SSLUtils.java    | 22 +++----
 .../configuration/jsse/TLSClientParameters.java    | 44 ++++----------
 .../spring/AbstractBeanDefinitionParser.java       | 15 ++---
 .../cxf/configuration/spring/ConfigurerImpl.java   | 12 ++--
 .../spring/MappingBeanDefinitionParser.java        |  3 +-
 .../cxf/databinding/AbstractDataBinding.java       |  9 +--
 .../databinding/source/XMLStreamDataReader.java    |  4 +-
 .../databinding/source/XMLStreamDataWriter.java    |  3 +-
 .../cxf/endpoint/AbstractConduitSelector.java      |  6 +-
 .../java/org/apache/cxf/endpoint/ClientImpl.java   |  6 +-
 .../java/org/apache/cxf/helpers/FileUtils.java     | 21 +++----
 .../java/org/apache/cxf/helpers/ServiceUtils.java  | 14 +----
 .../AbstractInDatabindingInterceptor.java          |  5 +-
 .../cxf/interceptor/ClientFaultConverter.java      |  2 +-
 .../interceptor/OneWayProcessorInterceptor.java    |  2 +-
 .../security/DefaultSecurityContext.java           |  7 +--
 .../java/org/apache/cxf/io/CachedOutputStream.java |  4 +-
 .../main/java/org/apache/cxf/io/CachedWriter.java  |  7 +--
 .../cxf/resource/DefaultResourceManager.java       |  5 +-
 .../java/org/apache/cxf/resource/URIResolver.java  | 27 ++++-----
 .../factory/AnnotationsFactoryBeanListener.java    |  6 +-
 .../service/factory/SimpleMethodDispatcher.java    |  2 +-
 .../cxf/service/invoker/AbstractInvoker.java       |  5 +-
 .../apache/cxf/service/invoker/SessionFactory.java |  2 +-
 .../service/model/AbstractMessageContainer.java    |  9 +--
 .../service/model/AbstractPropertiesHolder.java    |  8 +--
 .../org/apache/cxf/service/model/BindingInfo.java  |  8 +--
 .../cxf/staxutils/OverlayW3CDOMStreamWriter.java   |  6 +-
 .../staxutils/PropertiesExpandingStreamReader.java | 26 ++-------
 .../java/org/apache/cxf/staxutils/StaxSource.java  | 19 +++---
 .../apache/cxf/staxutils/W3CDOMStreamReader.java   |  5 +-
 .../staxutils/transform/OutTransformWriter.java    |  8 +--
 .../cxf/staxutils/transform/TransformUtils.java    |  8 +--
 .../staxutils/validation/Stax2ValidationUtils.java |  2 +-
 .../apache/cxf/transport/AbstractObservable.java   |  2 +-
 .../cxf/ws/addressing/EndpointReferenceUtils.java  | 24 ++++----
 .../apache/cxf/attachment/LazyDataSourceTest.java  | 67 ++++++++++++++++++++++
 .../org/apache/cxf/common/jaxb/JAXBUtilsTest.java  | 17 +++++-
 .../cxf/service/invoker/PooledFactoryTest.java     | 39 +++++++++++++
 .../PropertiesExpandingStreamReaderTest.java       |  8 +--
 67 files changed, 349 insertions(+), 397 deletions(-)

diff --git a/core/src/main/java/org/apache/cxf/BusFactory.java b/core/src/main/java/org/apache/cxf/BusFactory.java
index b6b75af..ef7d7c9 100644
--- a/core/src/main/java/org/apache/cxf/BusFactory.java
+++ b/core/src/main/java/org/apache/cxf/BusFactory.java
@@ -310,7 +310,6 @@ public abstract class BusFactory {
      * @return a new BusFactory to be used to create Bus objects
      */
     public static BusFactory newInstance(String className) {
-        BusFactory instance = null;
         if (className == null) {
             ClassLoader loader = Thread.currentThread().getContextClassLoader();
             className = getBusFactoryClass(loader);
@@ -322,17 +321,15 @@ public abstract class BusFactory {
             className = BusFactory.DEFAULT_BUS_FACTORY;
         }
 
-        Class<? extends BusFactory> busFactoryClass;
         try {
-            busFactoryClass = ClassLoaderUtils.loadClass(className, BusFactory.class)
+            Class<? extends BusFactory> busFactoryClass = ClassLoaderUtils.loadClass(className, BusFactory.class)
                 .asSubclass(BusFactory.class);
 
-            instance = busFactoryClass.newInstance();
+            return busFactoryClass.getConstructor().newInstance();
         } catch (Exception ex) {
             LogUtils.log(LOG, Level.SEVERE, "BUS_FACTORY_INSTANTIATION_EXC", ex);
             throw new RuntimeException(ex);
         }
-        return instance;
     }
 
     protected void initializeBus(Bus bus) {
@@ -340,11 +337,8 @@ public abstract class BusFactory {
 
     private static String getBusFactoryClass(ClassLoader classLoader) {
 
-        String busFactoryClass = null;
-        String busFactoryCondition = null;
-
         // next check system properties
-        busFactoryClass = SystemPropertyAction.getPropertyOrNull(BusFactory.BUS_FACTORY_PROPERTY_NAME);
+        String busFactoryClass = SystemPropertyAction.getPropertyOrNull(BusFactory.BUS_FACTORY_PROPERTY_NAME);
         if (isValidBusFactoryClass(busFactoryClass)) {
             return busFactoryClass;
         }
@@ -352,7 +346,7 @@ public abstract class BusFactory {
         try {
             // next, check for the services stuff in the jar file
             String serviceId = "META-INF/services/" + BusFactory.BUS_FACTORY_PROPERTY_NAME;
-            InputStream is = null;
+            InputStream is;
 
             if (classLoader == null) {
                 classLoader = Thread.currentThread().getContextClassLoader();
@@ -377,6 +371,8 @@ public abstract class BusFactory {
                 }
             }
 
+            String busFactoryCondition = null;
+
             if (is != null) {
                 try (BufferedReader rd = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) {
                     busFactoryClass = rd.readLine();
@@ -403,7 +399,6 @@ public abstract class BusFactory {
                 }
 
             }
-            return busFactoryClass;
 
         } catch (Exception ex) {
             LogUtils.log(LOG, Level.SEVERE, "FAILED_TO_DETERMINE_BUS_FACTORY_EXC", ex);
@@ -412,7 +407,7 @@ public abstract class BusFactory {
     }
 
     private static boolean isValidBusFactoryClass(String busFactoryClassName) {
-        return busFactoryClassName != null && !"".equals(busFactoryClassName);
+        return busFactoryClassName != null && !busFactoryClassName.isEmpty();
     }
 
 }
diff --git a/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java b/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java
index 785b583..60c6f59 100644
--- a/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java
+++ b/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java
@@ -410,7 +410,7 @@ public class AttachmentDeserializer {
             return;
         }
         int separator = line.indexOf(":");
-        String name = null;
+        final String name;
         String value = "";
         if (separator == -1) {
             name = line.toString().trim();
diff --git a/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java b/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java
index 48b20c6..5afbe77 100644
--- a/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java
+++ b/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java
@@ -306,13 +306,12 @@ public class AttachmentSerializer {
         final byte[] buffer = new byte[bufferSize];
         int n = input.read(buffer);
         int total = 0;
-        int left = 0;
         while (-1 != n) {
             if (n == 0) {
                 throw new IOException("0 bytes read in violation of InputStream.read(byte[])");
             }
             //make sure n is divisible by 3
-            left = n % 3;
+            int left = n % 3;
             n -= left;
             if (n > 0) {
                 Base64Utility.encodeAndStream(buffer, 0, n, output);
diff --git a/core/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java b/core/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java
index f007377..0de70cd 100644
--- a/core/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java
+++ b/core/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java
@@ -118,9 +118,7 @@ public class ImageDataContentHandler implements DataContentHandler {
         try {
             tracker.waitForAll();
         } catch (InterruptedException e) {
-            IOException ioe = new IOException(e.getMessage());
-            ioe.initCause(e);
-            throw ioe;
+            throw new IOException(e.getMessage(), e);
         }
 
         // Create a BufferedImage so we can write it out later
diff --git a/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java b/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java
index dc40dd2..cec8fcb 100644
--- a/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java
+++ b/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java
@@ -22,9 +22,8 @@ package org.apache.cxf.attachment;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
+import java.util.stream.Collectors;
 
 import javax.activation.DataSource;
 
@@ -51,29 +50,18 @@ public class LazyDataSource implements DataSource {
             for (Attachment a : attachments) {
                 if (a.getId().equals(id)) {
                     this.dataSource = a.getDataHandler().getDataSource();
+                    if (dataSource == null) {
+                        throw new IllegalStateException("Could not get DataSource for "
+                                + "attachment of id " + id);
+                    }
                     break;
                 }
             }
         }
         if (dataSource == null) {
             //couldn't find it, build up error message
-            List<String> ids = new ArrayList<>(10);
-            for (Attachment a : attachments) {
-                ids.add(a.getId());
-                if (a.getId().equals(id)) {
-                    this.dataSource = a.getDataHandler().getDataSource();
-                    if (dataSource != null) {
-                        ids = null;
-                        break;
-                    }
-                    throw new IllegalStateException("Could not get DataSource for "
-                                                    + "attachment of id " + id);
-                }
-            }
-            if (ids != null) {
-                throw new IllegalStateException("No attachment for "
-                                                + " id " + id + " found in " + ids);
-            }
+            throw new IllegalStateException("No attachment for id " + id + " found in "
+                    + attachments.stream().map(Attachment::getId).collect(Collectors.toList()));
         }
     }
 
diff --git a/core/src/main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java b/core/src/main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java
index 23ab63d..7d71b45 100644
--- a/core/src/main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java
+++ b/core/src/main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java
@@ -192,11 +192,11 @@ public class MimeBodyPartInputStream extends InputStream {
             if (needUnread0d0a) { //Pushing all,  returning 13
                 i = i - boundaryIndex;
                 i--; //for 10
-                value = 13;
+//                value = 13;
             } else {
                 i = i - boundaryIndex;
                 i++;
-                value = boundary[0];
+//                value = boundary[0];
             }
         }
         return len;
diff --git a/core/src/main/java/org/apache/cxf/bus/blueprint/ConfigurerImpl.java b/core/src/main/java/org/apache/cxf/bus/blueprint/ConfigurerImpl.java
index 993d03b..009a385 100644
--- a/core/src/main/java/org/apache/cxf/bus/blueprint/ConfigurerImpl.java
+++ b/core/src/main/java/org/apache/cxf/bus/blueprint/ConfigurerImpl.java
@@ -57,14 +57,13 @@ public class ConfigurerImpl implements Configurer {
         }
         @Override
         public int compareTo(MatcherHolder mh) {
-            Integer literalCharsLen1 = this.wildCardId.replaceAll("\\*", "").length();
-            Integer literalCharsLen2 = mh.wildCardId.replaceAll("\\*", "").length();
+            Integer literalCharsLen1 = this.wildCardId.replace("*", "").length();
+            Integer literalCharsLen2 = mh.wildCardId.replace("*", "").length();
             // The expression with more literal characters should end up on the top of the list
             return literalCharsLen1.compareTo(literalCharsLen2) * -1;
         }
     }
 
-
     public ConfigurerImpl(BlueprintContainer con) {
         container = con;
         initializeWildcardMap();
diff --git a/core/src/main/java/org/apache/cxf/bus/extension/Extension.java b/core/src/main/java/org/apache/cxf/bus/extension/Extension.java
index 4be14fa..878bca1 100644
--- a/core/src/main/java/org/apache/cxf/bus/extension/Extension.java
+++ b/core/src/main/java/org/apache/cxf/bus/extension/Extension.java
@@ -217,18 +217,10 @@ public class Extension {
                     obj = con.newInstance(b);
                     return obj;
                 } else if (b != null && args != null) {
-                    Constructor<?> con;
-                    boolean noBus = false;
                     try {
-                        con = cls.getConstructor(Bus.class, Object[].class);
-                    } catch (Exception ex) {
-                        con = cls.getConstructor(Object[].class);
-                        noBus = true;
-                    }
-                    if (noBus) {
-                        obj = con.newInstance(args);
-                    } else {
-                        obj = con.newInstance(b, args);
+                        obj = cls.getConstructor(Bus.class, Object[].class).newInstance(b, args);
+                    } catch (NoSuchMethodException ex) { // no bus
+                        obj = cls.getConstructor(Object[].class).newInstance(args);
                     }
                     return obj;
                 } else if (args != null) {
diff --git a/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerBus.java b/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerBus.java
index f9163fc..4c12756 100644
--- a/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerBus.java
+++ b/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerBus.java
@@ -72,12 +72,8 @@ public class ExtensionManagerBus extends AbstractBasicInterceptorProvider implem
 
     public ExtensionManagerBus(Map<Class<?>, Object> extensions, Map<String, Object> props,
           ClassLoader extensionClassLoader) {
-        if (extensions == null) {
-            extensions = new ConcurrentHashMap<>(16, 0.75f, 4);
-        } else {
-            extensions = new ConcurrentHashMap<>(extensions);
-        }
-        this.extensions = extensions;
+        this.extensions = extensions == null ? new ConcurrentHashMap<>(16, 0.75f, 4)
+                : new ConcurrentHashMap<>(extensions);
         this.missingExtensions = new CopyOnWriteArraySet<>();
 
 
@@ -88,10 +84,10 @@ public class ExtensionManagerBus extends AbstractBasicInterceptorProvider implem
             properties.putAll(props);
         }
 
-        Configurer configurer = (Configurer)extensions.get(Configurer.class);
+        Configurer configurer = (Configurer)this.extensions.get(Configurer.class);
         if (null == configurer) {
             configurer = new NullConfigurer();
-            extensions.put(Configurer.class, configurer);
+            this.extensions.put(Configurer.class, configurer);
         }
 
         id = getBusId(properties);
@@ -124,11 +120,11 @@ public class ExtensionManagerBus extends AbstractBasicInterceptorProvider implem
             }
         });
 
-        extensions.put(ResourceManager.class, resourceManager);
+        this.extensions.put(ResourceManager.class, resourceManager);
 
         extensionManager = new ExtensionManagerImpl(new String[0],
                                                     extensionClassLoader,
-                                                    extensions,
+                                                    this.extensions,
                                                     resourceManager,
                                                     this);
 
@@ -148,7 +144,7 @@ public class ExtensionManagerBus extends AbstractBasicInterceptorProvider implem
         extensionManager.load(new String[] {ExtensionManagerImpl.BUS_EXTENSION_RESOURCE});
         extensionManager.activateAllByType(ResourceResolver.class);
 
-        extensions.put(ExtensionManager.class, extensionManager);
+        this.extensions.put(ExtensionManager.class, extensionManager);
     }
 
     public ExtensionManagerBus(Map<Class<?>, Object> e, Map<String, Object> properties) {
@@ -271,10 +267,8 @@ public class ExtensionManagerBus extends AbstractBasicInterceptorProvider implem
 
     protected void initializeFeatures() {
         loadAdditionalFeatures();
-        if (features != null) {
-            for (Feature f : features) {
-                f.initialize(this);
-            }
+        for (Feature f : features) {
+            f.initialize(this);
         }
     }
 
@@ -357,19 +351,19 @@ public class ExtensionManagerBus extends AbstractBasicInterceptorProvider implem
 
     private static String getBusId(Map<String, Object> properties) {
 
-        String busId = null;
+        String busId;
 
         // first check properties
         if (null != properties) {
             busId = (String)properties.get(BUS_ID_PROPERTY_NAME);
-            if (null != busId && !"".equals(busId)) {
+            if (null != busId && !busId.isEmpty()) {
                 return busId;
             }
         }
 
         // next check system properties
         busId = SystemPropertyAction.getPropertyOrNull(BUS_ID_PROPERTY_NAME);
-        if (null != busId && !"".equals(busId)) {
+        if (null != busId && !busId.isEmpty()) {
             return busId;
         }
 
diff --git a/core/src/main/java/org/apache/cxf/bus/managers/HeaderManagerImpl.java b/core/src/main/java/org/apache/cxf/bus/managers/HeaderManagerImpl.java
index 774cf1b..901e45d 100644
--- a/core/src/main/java/org/apache/cxf/bus/managers/HeaderManagerImpl.java
+++ b/core/src/main/java/org/apache/cxf/bus/managers/HeaderManagerImpl.java
@@ -52,10 +52,7 @@ public class HeaderManagerImpl implements HeaderManager {
     }
 
     public HeaderProcessor getHeaderProcessor(String namespace) {
-        if (namespace == null) {
-            namespace = "";
-        }
-        return processors.get(namespace);
+        return processors.get(namespace != null ? namespace : "");
     }
 
     public void registerHeaderProcessor(HeaderProcessor processor) {
diff --git a/core/src/main/java/org/apache/cxf/bus/managers/WorkQueueManagerImpl.java b/core/src/main/java/org/apache/cxf/bus/managers/WorkQueueManagerImpl.java
index 149b768..18db041 100644
--- a/core/src/main/java/org/apache/cxf/bus/managers/WorkQueueManagerImpl.java
+++ b/core/src/main/java/org/apache/cxf/bus/managers/WorkQueueManagerImpl.java
@@ -153,7 +153,7 @@ public class WorkQueueManagerImpl implements WorkQueueManager {
             for (AutomaticWorkQueue q : namedQueues.values()) {
                 while (!q.isShutdown()) {
                     try {
-                        wait(100);
+                        wait(100L);
                     } catch (InterruptedException ex) {
                         // ignore
                     }
diff --git a/core/src/main/java/org/apache/cxf/bus/spring/ControlledValidationXmlBeanDefinitionReader.java b/core/src/main/java/org/apache/cxf/bus/spring/ControlledValidationXmlBeanDefinitionReader.java
index 74fd14a..9813b62 100644
--- a/core/src/main/java/org/apache/cxf/bus/spring/ControlledValidationXmlBeanDefinitionReader.java
+++ b/core/src/main/java/org/apache/cxf/bus/spring/ControlledValidationXmlBeanDefinitionReader.java
@@ -176,10 +176,8 @@ public class ControlledValidationXmlBeanDefinitionReader extends XmlBeanDefiniti
         // if we are in unpacked files, we take some extra time
         // to ensure that we aren't using a stale Fastinfoset file.
         if ("file".equals(protocol)) {
-            URLConnection resCon = null;
-            URLConnection fixCon = null;
-            resCon = resUrl.openConnection();
-            fixCon = fixmlUrl.openConnection();
+            URLConnection resCon = resUrl.openConnection();
+            URLConnection fixCon = fixmlUrl.openConnection();
             if (resCon.getLastModified() > fixCon.getLastModified()) {
                 throw new StaleFastinfosetException();
             }
diff --git a/core/src/main/java/org/apache/cxf/bus/spring/NamespaceHandler.java b/core/src/main/java/org/apache/cxf/bus/spring/NamespaceHandler.java
index 202a0d0..4a6051c 100644
--- a/core/src/main/java/org/apache/cxf/bus/spring/NamespaceHandler.java
+++ b/core/src/main/java/org/apache/cxf/bus/spring/NamespaceHandler.java
@@ -47,8 +47,7 @@ public class NamespaceHandler extends NamespaceHandlerSupport {
                     bean.addPropertyValue("name", val);
                     element.removeAttribute("name");
                     if (!element.hasAttribute("id")) {
-                        val = "cxf.workqueue." + val;
-                        element.setAttribute("id", val);
+                        element.setAttribute("id", "cxf.workqueue." + val);
                     }
 
                 }
diff --git a/core/src/main/java/org/apache/cxf/catalog/CatalogXmlSchemaURIResolver.java b/core/src/main/java/org/apache/cxf/catalog/CatalogXmlSchemaURIResolver.java
index e04007d..69f4f7a 100644
--- a/core/src/main/java/org/apache/cxf/catalog/CatalogXmlSchemaURIResolver.java
+++ b/core/src/main/java/org/apache/cxf/catalog/CatalogXmlSchemaURIResolver.java
@@ -61,7 +61,7 @@ public class CatalogXmlSchemaURIResolver implements URIResolver {
             throw new RuntimeException("Catalog resolution failed", e);
         }
 
-        InputSource in = null;
+        final InputSource in;
         if (resolvedSchemaLocation == null) {
             in = this.resolver.resolve(schemaLocation, baseUri);
         } else {
diff --git a/core/src/main/java/org/apache/cxf/common/injection/ResourceInjector.java b/core/src/main/java/org/apache/cxf/common/injection/ResourceInjector.java
index ecc7ec9..dfc41ab 100644
--- a/core/src/main/java/org/apache/cxf/common/injection/ResourceInjector.java
+++ b/core/src/main/java/org/apache/cxf/common/injection/ResourceInjector.java
@@ -168,7 +168,7 @@ public class ResourceInjector extends AbstractAnnotationVisitor {
             return;
         }
 
-        Object resource = null;
+        Object resource;
         // first find a setter that matches this resource
         Method setter = findSetterForResource(res);
         if (setter != null) {
@@ -310,10 +310,10 @@ public class ResourceInjector extends AbstractAnnotationVisitor {
         assert res != null;
         assert method.getName().startsWith("set") : method;
 
-        if (res.name() == null || "".equals(res.name())) {
+        if (res.name() == null || res.name().isEmpty()) {
             String name = method.getName().substring(3);
             name = Character.toLowerCase(name.charAt(0)) + name.substring(1);
-            return method.getDeclaringClass().getCanonicalName() + "/" + name;
+            return method.getDeclaringClass().getCanonicalName() + '/' + name;
         }
         return res.name();
     }
diff --git a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBContextCache.java b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBContextCache.java
index 885d97e..dfbb8d9 100644
--- a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBContextCache.java
+++ b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBContextCache.java
@@ -233,7 +233,6 @@ public final class JAXBContextCache {
                         if (cls != null) {
                             JAXBCONTEXT_CACHE.remove(cls);
                         }
-                        cachedContextAndSchemasInternal = null;
                     } else {
                         return new CachedContextAndSchemas(context, cachedContextAndSchemasInternal.getClasses(),
                             cachedContextAndSchemasInternal);
@@ -401,10 +400,10 @@ public final class JAXBContextCache {
         } catch (Exception ex) {
             //ignore
         }
-        try (InputStream ins = loader.getResourceAsStream("/" + pkg.replace('.', '/') + "/jaxb.index");
+        try (InputStream ins = loader.getResourceAsStream('/' + pkg.replace('.', '/') + "/jaxb.index");
             BufferedReader reader = new BufferedReader(new InputStreamReader(ins, StandardCharsets.UTF_8))) {
             if (!StringUtils.isEmpty(pkg)) {
-                pkg += ".";
+                pkg += '.';
             }
 
             String line = reader.readLine();
diff --git a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
index d90bb72..3201197 100644
--- a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
@@ -302,7 +302,7 @@ public final class JAXBUtils {
                 while (st.hasMoreTokens()) {
                     String token = st.nextToken();
                     if (packageName.length() > 0) {
-                        packageName.insert(0, ".");
+                        packageName.insert(0, '.');
                         packageName.insert(0, normalizePackageNamePart(token));
                     } else {
                         packageName.insert(0, token);
@@ -315,22 +315,21 @@ public final class JAXBUtils {
 
             StringTokenizer st = new StringTokenizer(authority, ".");
             if (st.hasMoreTokens()) {
-                String token = null;
                 while (st.hasMoreTokens()) {
-                    token = st.nextToken();
+                    String token = st.nextToken();
                     if (packageName.length() == 0) {
                         if ("www".equals(token)) {
                             continue;
                         }
                     } else {
-                        packageName.insert(0, ".");
+                        packageName.insert(0, '.');
                     }
                     packageName.insert(0, normalizePackageNamePart(token));
                 }
             }
 
             if (!("http".equalsIgnoreCase(scheme) || "urn".equalsIgnoreCase(scheme))) {
-                packageName.insert(0, ".");
+                packageName.insert(0, '.');
                 packageName.insert(0, normalizePackageNamePart(scheme));
             }
 
@@ -569,31 +568,23 @@ public final class JAXBUtils {
     }
 
     public static Class<?> getValidClass(Class<?> cls) {
-        if (cls.isEnum()) {
-            return cls;
-        }
-        if (cls.isArray()) {
+        if (cls.isEnum() || cls.isArray()) {
             return cls;
         }
 
-        if (cls == Object.class || cls == String.class
+        if (cls == Object.class || cls == String.class || cls.isPrimitive() || cls.isAnnotation()
             || "javax.xml.ws.Holder".equals(cls.getName())) {
-            cls = null;
-        } else if (cls.isPrimitive() || cls.isAnnotation()) {
-            cls = null;
-        } else if (cls.isInterface()) {
+            return null;
+        } else if (cls.isInterface()
+            || "javax.xml.ws.wsaddressing.W3CEndpointReference".equals(cls.getName())) {
             return cls;
         }
-        if (cls != null) {
-            if ("javax.xml.ws.wsaddressing.W3CEndpointReference".equals(cls.getName())) {
-                return cls;
-            }
-            Constructor<?> cons = ReflectionUtil.getDeclaredConstructor(cls);
-            if (cons == null) {
-                cons = ReflectionUtil.getConstructor(cls);
-            }
+
+        Constructor<?> cons = ReflectionUtil.getDeclaredConstructor(cls);
+        if (cons == null) {
+            cons = ReflectionUtil.getConstructor(cls);
             if (cons == null) {
-                cls = null;
+                return null;
             }
         }
         return cls;
diff --git a/core/src/main/java/org/apache/cxf/common/util/Compiler.java b/core/src/main/java/org/apache/cxf/common/util/Compiler.java
index 569a034..422447f 100644
--- a/core/src/main/java/org/apache/cxf/common/util/Compiler.java
+++ b/core/src/main/java/org/apache/cxf/common/util/Compiler.java
@@ -252,30 +252,29 @@ public class Compiler {
         File tmpFile = null;
         try {
             if (isLongCommandLines(args) && sourceFileIndex >= 0) {
-                PrintWriter out = null;
                 tmpFile = FileUtils.createTempFile("cxf-compiler", null);
-                out = new PrintWriter(new FileWriter(tmpFile));
-                for (int i = sourceFileIndex; i < args.length; i++) {
-                    if (args[i].indexOf(' ') > -1) {
-                        args[i] = args[i].replace(File.separatorChar, '/');
-                        //
-                        // javac gives an error if you use forward slashes
-                        // with package-info.java. Refer to:
-                        // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6198196
-                        //
-                        if (args[i].indexOf("package-info.java") > -1
-                            && SystemPropertyAction.getProperty("os.name")
-                                .toLowerCase().indexOf("windows") > -1) {
-                            out.println("\"" + args[i].replaceAll("/", "\\\\\\\\") + "\"");
+                try (PrintWriter out = new PrintWriter(new FileWriter(tmpFile))) {
+                    for (int i = sourceFileIndex; i < args.length; i++) {
+                        if (args[i].indexOf(' ') > -1) {
+                            args[i] = args[i].replace(File.separatorChar, '/');
+                            //
+                            // javac gives an error if you use forward slashes
+                            // with package-info.java. Refer to:
+                            // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6198196
+                            //
+                            if (args[i].indexOf("package-info.java") > -1
+                                && SystemPropertyAction.getProperty("os.name")
+                                    .toLowerCase().indexOf("windows") > -1) {
+                                out.println('"' + args[i].replaceAll("/", "\\\\\\\\") + '"');
+                            } else {
+                                out.println('"' + args[i] + '"');
+                            }
                         } else {
-                            out.println("\"" + args[i] + "\"");
+                            out.println(args[i]);
                         }
-                    } else {
-                        out.println(args[i]);
                     }
+                    out.flush();
                 }
-                out.flush();
-                out.close();
                 cmdArray = new String[sourceFileIndex + 1];
                 System.arraycopy(args, 0, cmdArray, 0, sourceFileIndex);
                 cmdArray[sourceFileIndex] = "@" + tmpFile;
@@ -339,13 +338,12 @@ public class Compiler {
 
     private void checkLongClasspath(String classpath, List<String> list, int classpathIdx) {
         if (isLongClasspath(classpath)) {
-            PrintWriter out = null;
             try {
                 classpathTmpFile = FileUtils.createTempFile("cxf-compiler-classpath", null);
-                out = new PrintWriter(new FileWriter(classpathTmpFile));
-                out.println(classpath);
-                out.flush();
-                out.close();
+                try (PrintWriter out = new PrintWriter(new FileWriter(classpathTmpFile))) {
+                    out.println(classpath);
+                    out.flush();
+                }
                 list.set(classpathIdx + 1, "@" + classpathTmpFile);
             } catch (IOException e) {
                 System.err.print("[ERROR] can't write long classpath to @argfile");
@@ -357,5 +355,4 @@ public class Compiler {
         encoding = string;
     }
 
-
 }
diff --git a/core/src/main/java/org/apache/cxf/common/util/PrimitiveUtils.java b/core/src/main/java/org/apache/cxf/common/util/PrimitiveUtils.java
index 04c1841..cbf74c9 100644
--- a/core/src/main/java/org/apache/cxf/common/util/PrimitiveUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/util/PrimitiveUtils.java
@@ -23,9 +23,8 @@ import java.util.HashMap;
 import java.util.Map;
 
 public final class PrimitiveUtils {
-    private static final Map<Class<?>, Class<?>> AUTOBOXED_PRIMITIVES_MAP;
+    private static final Map<Class<?>, Class<?>> AUTOBOXED_PRIMITIVES_MAP = new HashMap<>();
     static {
-        AUTOBOXED_PRIMITIVES_MAP = new HashMap<>();
         AUTOBOXED_PRIMITIVES_MAP.put(byte.class, Byte.class);
         AUTOBOXED_PRIMITIVES_MAP.put(short.class, Short.class);
         AUTOBOXED_PRIMITIVES_MAP.put(int.class, Integer.class);
diff --git a/core/src/main/java/org/apache/cxf/common/util/PropertiesLoaderUtils.java b/core/src/main/java/org/apache/cxf/common/util/PropertiesLoaderUtils.java
index 3dbd9a1..f63a9b2 100644
--- a/core/src/main/java/org/apache/cxf/common/util/PropertiesLoaderUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/util/PropertiesLoaderUtils.java
@@ -63,11 +63,9 @@ public final class PropertiesLoaderUtils {
                                                Logger logger, Level level, String msg)
         throws IOException {
         Properties properties = new Properties();
-        // Set default class loader if neccessary
-        if (classLoader == null) {
-            classLoader = PropertiesLoaderUtils.class.getClassLoader();
-        }
-        Enumeration<URL> urls = classLoader.getResources(resourceName);
+        // Use default class loader if neccessary
+        Enumeration<URL> urls = (classLoader != null ? classLoader : PropertiesLoaderUtils.class.getClassLoader())
+                .getResources(resourceName);
 
         while (urls.hasMoreElements()) {
             URL url = urls.nextElement();
diff --git a/core/src/main/java/org/apache/cxf/common/util/ProxyClassLoaderCache.java b/core/src/main/java/org/apache/cxf/common/util/ProxyClassLoaderCache.java
index 14a31c2..3d0b1c6 100644
--- a/core/src/main/java/org/apache/cxf/common/util/ProxyClassLoaderCache.java
+++ b/core/src/main/java/org/apache/cxf/common/util/ProxyClassLoaderCache.java
@@ -48,7 +48,7 @@ public class ProxyClassLoaderCache {
 
     private ClassLoader createProxyClassLoader(Class<?> proxyInterface) {
         final SecurityManager sm = System.getSecurityManager();
-        ProxyClassLoader ret = null;
+        final ProxyClassLoader ret;
         if (sm == null) {
             ret = new ProxyClassLoader(PARENT_CLASSLOADER.get(), PROXY_INTERFACES.get());
         } else {
diff --git a/core/src/main/java/org/apache/cxf/common/util/SpringClassUnwrapper.java b/core/src/main/java/org/apache/cxf/common/util/SpringClassUnwrapper.java
index af0ad76..c5cceec 100644
--- a/core/src/main/java/org/apache/cxf/common/util/SpringClassUnwrapper.java
+++ b/core/src/main/java/org/apache/cxf/common/util/SpringClassUnwrapper.java
@@ -29,7 +29,7 @@ import org.springframework.util.ClassUtils;
  *
  */
 class SpringClassUnwrapper implements ClassUnwrapper {
-    SpringClassUnwrapper() throws Exception {
+    SpringClassUnwrapper() throws ClassNotFoundException {
         Class.forName("org.springframework.aop.support.AopUtils");
         Class.forName("org.springframework.aop.framework.Advised");
     }
diff --git a/core/src/main/java/org/apache/cxf/common/util/SpringOsgiUtil.java b/core/src/main/java/org/apache/cxf/common/util/SpringOsgiUtil.java
index e340a10..b7573eb 100644
--- a/core/src/main/java/org/apache/cxf/common/util/SpringOsgiUtil.java
+++ b/core/src/main/java/org/apache/cxf/common/util/SpringOsgiUtil.java
@@ -30,10 +30,10 @@ final class SpringOsgiUtil {
     }
 
     public static ResourcePatternResolver getResolver(ClassLoader loader) {
-        Bundle bundle = null;
         if (loader == null) {
             loader = Thread.currentThread().getContextClassLoader();
         }
+        final Bundle bundle;
         if (loader instanceof BundleDelegatingClassLoader) {
             bundle = ((BundleDelegatingClassLoader)loader).getBundle();
         } else {
diff --git a/core/src/main/java/org/apache/cxf/common/util/StringUtils.java b/core/src/main/java/org/apache/cxf/common/util/StringUtils.java
index 7f3f3bd..848fa99 100644
--- a/core/src/main/java/org/apache/cxf/common/util/StringUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/util/StringUtils.java
@@ -88,21 +88,19 @@ public final class StringUtils {
     }
 
     public static String addDefaultPortIfMissing(String urlString, String defaultPort) {
-        URL url = null;
         try {
-            url = new URL(urlString);
+            if (new URL(urlString).getPort() != -1) {
+                return urlString;
+            }
         } catch (MalformedURLException e) {
             return urlString;
         }
-        if (url.getPort() != -1) {
-            return urlString;
-        }
         String regex = "http://([^/]+)";
         String found = StringUtils.getFirstFound(urlString, regex);
-        String replacer = "http://" + found + ":" + defaultPort;
 
         if (!StringUtils.isEmpty(found)) {
-            urlString = urlString.replaceFirst(regex, replacer);
+            String replacer = "http://" + found + ':' + defaultPort;
+            return urlString.replaceFirst(regex, replacer);
         }
         return urlString;
     }
diff --git a/core/src/main/java/org/apache/cxf/common/util/URIParserUtil.java b/core/src/main/java/org/apache/cxf/common/util/URIParserUtil.java
index c730f9b..a51ee17 100644
--- a/core/src/main/java/org/apache/cxf/common/util/URIParserUtil.java
+++ b/core/src/main/java/org/apache/cxf/common/util/URIParserUtil.java
@@ -99,7 +99,7 @@ public final class URIParserUtil {
                 if (file.exists()) {
                     return file.toURI().normalize().toString();
                 }
-                String f = null;
+                final String f;
                 if (uri.indexOf(':') != -1 && !uri.startsWith("/")) {
                     f = "file:/" + uri;
                 } else {
diff --git a/core/src/main/java/org/apache/cxf/common/xmlschema/SchemaCollection.java b/core/src/main/java/org/apache/cxf/common/xmlschema/SchemaCollection.java
index 6467889..49ad68c 100644
--- a/core/src/main/java/org/apache/cxf/common/xmlschema/SchemaCollection.java
+++ b/core/src/main/java/org/apache/cxf/common/xmlschema/SchemaCollection.java
@@ -337,7 +337,7 @@ public class SchemaCollection {
 
     private void addCrossImportsAttributeList(XmlSchema schema, List<XmlSchemaAttributeOrGroupRef> list) {
         for (XmlSchemaAttributeOrGroupRef attr : list) {
-            QName ref = null;
+            final QName ref;
             if (attr instanceof XmlSchemaAttribute) {
                 ref = ((XmlSchemaAttribute)attr).getRef().getTargetQName();
             } else {
diff --git a/core/src/main/java/org/apache/cxf/configuration/blueprint/AbstractBPBeanDefinitionParser.java b/core/src/main/java/org/apache/cxf/configuration/blueprint/AbstractBPBeanDefinitionParser.java
index f50929c..7e4f39c 100644
--- a/core/src/main/java/org/apache/cxf/configuration/blueprint/AbstractBPBeanDefinitionParser.java
+++ b/core/src/main/java/org/apache/cxf/configuration/blueprint/AbstractBPBeanDefinitionParser.java
@@ -128,8 +128,6 @@ public abstract class AbstractBPBeanDefinitionParser {
 
     public QName parseQName(Element element, String t) {
         String t1 = t;
-        String pre = null;
-        String local = null;
 
         if (t1.startsWith("{")) {
             int i = t1.indexOf('}');
@@ -140,6 +138,8 @@ public abstract class AbstractBPBeanDefinitionParser {
             t1 = t1.substring(i + 1);
         }
 
+        final String local;
+        final String pre;
         final String ns;
         int colIdx = t1.indexOf(':');
         if (colIdx == -1) {
diff --git a/core/src/main/java/org/apache/cxf/configuration/jsse/SSLUtils.java b/core/src/main/java/org/apache/cxf/configuration/jsse/SSLUtils.java
index 41276f3..2e21448 100644
--- a/core/src/main/java/org/apache/cxf/configuration/jsse/SSLUtils.java
+++ b/core/src/main/java/org/apache/cxf/configuration/jsse/SSLUtils.java
@@ -230,7 +230,7 @@ public final class SSLUtils {
     }
 
     public static String getKeystore(String keyStoreLocation, Logger log) {
-        String logMsg = null;
+        final String logMsg;
         if (keyStoreLocation != null) {
             logMsg = "KEY_STORE_SET";
         } else {
@@ -252,7 +252,7 @@ public final class SSLUtils {
     }
 
     public static String getKeystoreType(String keyStoreType, Logger log, String def) {
-        String logMsg = null;
+        final String logMsg;
         if (keyStoreType != null) {
             logMsg = "KEY_STORE_TYPE_SET";
         } else {
@@ -269,7 +269,7 @@ public final class SSLUtils {
     }
 
     public static String getKeystoreProvider(String keyStoreProvider, Logger log) {
-        String logMsg = null;
+        final String logMsg;
         if (keyStoreProvider != null) {
             logMsg = "KEY_STORE_PROVIDER_SET";
         } else {
@@ -286,7 +286,7 @@ public final class SSLUtils {
 
     public static String getKeystorePassword(String keyStorePassword,
                                              Logger log) {
-        String logMsg = null;
+        final String logMsg;
         if (keyStorePassword != null) {
             logMsg = "KEY_STORE_PASSWORD_SET";
         } else {
@@ -301,7 +301,7 @@ public final class SSLUtils {
     }
 
     public static String getKeyPassword(String keyPassword, Logger log) {
-        String logMsg = null;
+        final String logMsg;
         if (keyPassword != null) {
             logMsg = "KEY_PASSWORD_SET";
         } else {
@@ -322,7 +322,7 @@ public final class SSLUtils {
     public static String getKeystoreAlgorithm(
                                           String keyStoreMgrFactoryAlgorithm,
                                           Logger log) {
-        String logMsg = null;
+        final String logMsg;
         if (keyStoreMgrFactoryAlgorithm != null) {
             logMsg = "KEY_STORE_ALGORITHM_SET";
         } else {
@@ -337,7 +337,7 @@ public final class SSLUtils {
     public static String getTrustStoreAlgorithm(
                                         String trustStoreMgrFactoryAlgorithm,
                                         Logger log) {
-        String logMsg = null;
+        final String logMsg;
         if (trustStoreMgrFactoryAlgorithm != null) {
             logMsg = "TRUST_STORE_ALGORITHM_SET";
         } else {
@@ -508,7 +508,7 @@ public final class SSLUtils {
     }
 
     public static String getTruststore(String trustStoreLocation, Logger log) {
-        String logMsg = null;
+        final String logMsg;
         if (trustStoreLocation != null) {
             logMsg = "TRUST_STORE_SET";
         } else {
@@ -528,7 +528,7 @@ public final class SSLUtils {
     }
 
     public static String getTrustStoreType(String trustStoreType, Logger log, String def) {
-        String logMsg = null;
+        final String logMsg;
         if (trustStoreType != null) {
             logMsg = "TRUST_STORE_TYPE_SET";
         } else {
@@ -547,7 +547,7 @@ public final class SSLUtils {
 
     public static String getTruststorePassword(String trustStorePassword,
                                              Logger log) {
-        String logMsg = null;
+        final String logMsg;
         if (trustStorePassword != null) {
             logMsg = "TRUST_STORE_PASSWORD_SET";
         } else {
@@ -562,7 +562,7 @@ public final class SSLUtils {
     }
 
     public static String getTruststoreProvider(String trustStoreProvider, Logger log) {
-        String logMsg = null;
+        final String logMsg;
         if (trustStoreProvider != null) {
             logMsg = "TRUST_STORE_PROVIDER_SET";
         } else {
diff --git a/core/src/main/java/org/apache/cxf/configuration/jsse/TLSClientParameters.java b/core/src/main/java/org/apache/cxf/configuration/jsse/TLSClientParameters.java
index 6f4b0f4..d70e83b 100644
--- a/core/src/main/java/org/apache/cxf/configuration/jsse/TLSClientParameters.java
+++ b/core/src/main/java/org/apache/cxf/configuration/jsse/TLSClientParameters.java
@@ -19,6 +19,7 @@
 package org.apache.cxf.configuration.jsse;
 
 import java.util.List;
+import java.util.Objects;
 
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.SSLContext;
@@ -176,7 +177,7 @@ public class TLSClientParameters extends TLSParameterBase {
     }
     private int hash(int i, Object o) {
         if (o != null) {
-            i = i * 37 + o.hashCode();
+            return i * 37 + o.hashCode();
         }
         return i;
     }
@@ -203,12 +204,12 @@ public class TLSClientParameters extends TLSParameterBase {
             eq &= useHttpsURLConnectionDefaultHostnameVerifier == that.useHttpsURLConnectionDefaultHostnameVerifier;
             eq &= sslCacheTimeout == that.sslCacheTimeout;
             eq &= secureRandom == that.secureRandom;
-            eq &= equals(certAlias, that.certAlias);
-            eq &= equals(protocol, that.protocol);
-            eq &= equals(provider, that.provider);
+            eq &= Objects.equals(certAlias, that.certAlias);
+            eq &= Objects.equals(protocol, that.protocol);
+            eq &= Objects.equals(provider, that.provider);
             eq &= equals(ciphersuites, that.ciphersuites);
-            eq &= equals(keyManagers, that.keyManagers);
-            eq &= equals(trustManagers, that.trustManagers);
+            eq &= Objects.deepEquals(keyManagers, that.keyManagers);
+            eq &= Objects.deepEquals(trustManagers, that.trustManagers);
             if (cipherSuiteFilters != null) {
                 if (that.cipherSuiteFilters != null) {
                     eq &= equals(cipherSuiteFilters.getExclude(), that.cipherSuiteFilters.getExclude());
@@ -221,9 +222,9 @@ public class TLSClientParameters extends TLSParameterBase {
             }
             if (certConstraints != null) {
                 if (that.certConstraints != null) {
-                    eq &= equals(certConstraints.getIssuerDNConstraints(),
+                    eq &= Objects.equals(certConstraints.getIssuerDNConstraints(),
                                  that.certConstraints.getIssuerDNConstraints());
-                    eq &= equals(certConstraints.getSubjectDNConstraints(),
+                    eq &= Objects.equals(certConstraints.getSubjectDNConstraints(),
                                  that.certConstraints.getSubjectDNConstraints());
                 } else {
                     eq = false;
@@ -237,32 +238,7 @@ public class TLSClientParameters extends TLSParameterBase {
     }
 
     private static boolean equals(final List<?> obj1, final List<?> obj2) {
-        if (obj1.size() == obj2.size()) {
-            for (int x = 0; x < obj1.size(); x++) {
-                if (!equals(obj1.get(x), obj2.get(x))) {
-                    return false;
-                }
-            }
-            return true;
-        }
-        return false;
-    }
-    private static boolean equals(final Object obj1, final Object obj2) {
-        return obj1 == null ? obj2 == null : obj1.equals(obj2);
-    }
-    private static boolean equals(final Object[] a1, final Object[] a2) {
-        if (a1 == null) {
-            return a2 == null;
-        }
-        if (a2 != null && a1.length == a2.length) {
-            for (int i = 0; i < a1.length; i++) {
-                if (!equals(a1[i], a2[i])) {
-                    return false;
-                }
-            }
-            return true;
-        }
-        return false;
+        return obj1.equals(obj2);
     }
 
     /**
diff --git a/core/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java b/core/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
index f3c8c6b..28bbfb2 100644
--- a/core/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
+++ b/core/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
@@ -187,11 +187,11 @@ public abstract class AbstractBeanDefinitionParser
         String id = getIdOrName(elem);
         String createdFromAPI = elem.getAttribute("createdFromAPI");
 
-        if (null == id || "".equals(id)) {
+        if (null == id || id.isEmpty()) {
             return super.resolveId(elem, definition, ctx);
         }
 
-        if (createdFromAPI != null && "true".equals(createdFromAPI.toLowerCase())) {
+        if (createdFromAPI != null && Boolean.parseBoolean(createdFromAPI)) {
             return id + getSuffix();
         }
         return id;
@@ -257,10 +257,8 @@ public abstract class AbstractBeanDefinitionParser
         LOG.fine("Adding " + WIRE_BUS_ATTRIBUTE + " attribute " + type + " to bean " + bean);
         bean.getRawBeanDefinition().setAttribute(WIRE_BUS_ATTRIBUTE, type);
         if (!StringUtils.isEmpty(busName)) {
-            if (busName.charAt(0) == '#') {
-                busName = busName.substring(1);
-            }
-            bean.getRawBeanDefinition().setAttribute(WIRE_BUS_NAME, busName);
+            bean.getRawBeanDefinition().setAttribute(WIRE_BUS_NAME,
+                    busName.charAt(0) == '#' ? busName.substring(1) : busName);
         }
 
         if (ctx != null
@@ -480,9 +478,6 @@ public abstract class AbstractBeanDefinitionParser
     }
 
     protected QName parseQName(Element element, String t) {
-        String pre = null;
-        String local = null;
-
         if (t.startsWith("{")) {
             int i = t.indexOf('}');
             if (i == -1) {
@@ -492,6 +487,8 @@ public abstract class AbstractBeanDefinitionParser
             t = t.substring(i + 1);
         }
 
+        final String local;
+        final String pre;
         final String ns;
         int colIdx = t.indexOf(':');
         if (colIdx == -1) {
diff --git a/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java b/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
index cc13d7f..17b80ff 100644
--- a/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
+++ b/core/src/main/java/org/apache/cxf/configuration/spring/ConfigurerImpl.java
@@ -71,8 +71,8 @@ public class ConfigurerImpl extends BeanConfigurerSupport
         }
         @Override
         public int compareTo(MatcherHolder mh) {
-            Integer literalCharsLen1 = this.wildCardId.replaceAll("\\*", "").length();
-            Integer literalCharsLen2 = mh.wildCardId.replaceAll("\\*", "").length();
+            Integer literalCharsLen1 = this.wildCardId.replace("*", "").length();
+            Integer literalCharsLen2 = mh.wildCardId.replace("*", "").length();
             // The expression with more literal characters should end up on the top of the list
             return literalCharsLen1.compareTo(literalCharsLen2) * -1;
         }
@@ -142,11 +142,11 @@ public class ConfigurerImpl extends BeanConfigurerSupport
 
         if (null == bn) {
             bn = getBeanName(beanInstance);
+            if (null == bn) {
+                return;
+            }
         }
 
-        if (null == bn) {
-            return;
-        }
         if (checkWildcards) {
             configureWithWildCard(bn, beanInstance);
         }
@@ -154,7 +154,7 @@ public class ConfigurerImpl extends BeanConfigurerSupport
         final String beanName = bn;
         setBeanWiringInfoResolver(new BeanWiringInfoResolver() {
             public BeanWiringInfo resolveWiringInfo(Object instance) {
-                if (!"".equals(beanName)) {
+                if (!beanName.isEmpty()) {
                     return new BeanWiringInfo(beanName);
                 }
                 return null;
diff --git a/core/src/main/java/org/apache/cxf/configuration/spring/MappingBeanDefinitionParser.java b/core/src/main/java/org/apache/cxf/configuration/spring/MappingBeanDefinitionParser.java
index a2bea7c..961f68e 100644
--- a/core/src/main/java/org/apache/cxf/configuration/spring/MappingBeanDefinitionParser.java
+++ b/core/src/main/java/org/apache/cxf/configuration/spring/MappingBeanDefinitionParser.java
@@ -41,8 +41,7 @@ public class MappingBeanDefinitionParser
 
     @Override
     protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
-        element = transformElement(element);
-        return (AbstractBeanDefinition)parserContext.getDelegate().parseCustomElement(element);
+        return (AbstractBeanDefinition)parserContext.getDelegate().parseCustomElement(transformElement(element));
     }
     private Element transformElement(Element element) {
 
diff --git a/core/src/main/java/org/apache/cxf/databinding/AbstractDataBinding.java b/core/src/main/java/org/apache/cxf/databinding/AbstractDataBinding.java
index c186b2f..33876ab 100644
--- a/core/src/main/java/org/apache/cxf/databinding/AbstractDataBinding.java
+++ b/core/src/main/java/org/apache/cxf/databinding/AbstractDataBinding.java
@@ -20,7 +20,6 @@
 package org.apache.cxf.databinding;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -51,14 +50,12 @@ import org.apache.ws.commons.schema.XmlSchema;
  * Supply default implementations, as appropriate, for DataBinding.
  */
 public abstract class AbstractDataBinding implements DataBinding {
-    private static final Map<String, String> BUILTIN_SCHEMA_LOCS;
+    private static final Map<String, String> BUILTIN_SCHEMA_LOCS = new HashMap<>(2);
     static {
-        Map<String, String> schemaLocations = new HashMap<>(2);
-        schemaLocations.put("http://www.w3.org/2005/08/addressing",
+        BUILTIN_SCHEMA_LOCS.put("http://www.w3.org/2005/08/addressing",
                                 "http://www.w3.org/2006/03/addressing/ws-addr.xsd");
-        schemaLocations.put("http://ws-i.org/profiles/basic/1.1/xsd",
+        BUILTIN_SCHEMA_LOCS.put("http://ws-i.org/profiles/basic/1.1/xsd",
                                 "http://ws-i.org/profiles/basic/1.1/swaref.xsd");
-        BUILTIN_SCHEMA_LOCS = Collections.unmodifiableMap(schemaLocations);
     }
 
     protected boolean mtomEnabled;
diff --git a/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java b/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java
index 80d8fcf..307b46c 100644
--- a/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java
+++ b/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java
@@ -185,7 +185,7 @@ public class XMLStreamDataReader implements DataReader<XMLStreamReader> {
             final InputStream ins = message.getContent(InputStream.class);
             message.removeContent(InputStream.class);
 
-            input = new FragmentStreamReader(input, true) {
+            return new FragmentStreamReader(input, true) {
                 boolean closed;
                 public boolean hasNext() throws XMLStreamException {
                     boolean b = super.hasNext();
@@ -217,7 +217,7 @@ public class XMLStreamDataReader implements DataReader<XMLStreamReader> {
 
     private Element validate(XMLStreamReader input) throws XMLStreamException, IOException {
         DOMSource ds = read(input);
-        Element rootElement = null;
+        final Element rootElement;
         if (ds.getNode() instanceof Document) {
             rootElement = ((Document)ds.getNode()).getDocumentElement();
         } else {
diff --git a/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java b/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
index 8735e17..2b94ad5 100644
--- a/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
+++ b/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
@@ -67,7 +67,6 @@ public class XMLStreamDataWriter implements DataWriter<XMLStreamWriter> {
 
     public void write(Object obj, XMLStreamWriter writer) {
         try {
-            XMLStreamReader reader = null;
             if (obj instanceof DataSource) {
                 DataSource ds = (DataSource)obj;
                 if (schema != null) {
@@ -78,7 +77,7 @@ public class XMLStreamDataWriter implements DataWriter<XMLStreamWriter> {
                     schemaValidator.validate(domSource);
                     StaxUtils.copy(domSource, writer);
                 } else {
-                    reader = StaxUtils.createXMLStreamReader(ds.getInputStream());
+                    XMLStreamReader reader = StaxUtils.createXMLStreamReader(ds.getInputStream());
                     StaxUtils.copy(reader, writer);
                     reader.close();
                 }
diff --git a/core/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java b/core/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java
index c673270..20f1a28 100644
--- a/core/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java
+++ b/core/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java
@@ -128,7 +128,7 @@ public abstract class AbstractConduitSelector implements ConduitSelector, Closea
 
     protected Conduit createConduit(Message message, Exchange exchange, ConduitInitiator conduitInitiator)
         throws IOException {
-        Conduit c = null;
+        Conduit c;
         synchronized (endpoint) {
             if (!conduits.isEmpty()) {
                 c = findCompatibleConduit(message);
@@ -284,9 +284,7 @@ public abstract class AbstractConduitSelector implements ConduitSelector, Closea
             if (idx <= 0) {
                 return true;
             }
-            conduitAddress = conduitAddress.substring(0, idx);
-            actualAddress = actualAddress.substring(0, idx);
-            return conduitAddress.equalsIgnoreCase(actualAddress);
+            return conduitAddress.substring(0, idx).equalsIgnoreCase(actualAddress.substring(0, idx));
         }
         //no possible match as for sure the substrings before idx will be different
         return false;
diff --git a/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java b/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
index 1f42ad6..111a494 100644
--- a/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
+++ b/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
@@ -465,11 +465,10 @@ public class ClientImpl
 
             // Make sure INVOCATION CONTEXT, REQUEST_CONTEXT and RESPONSE_CONTEXT are present
             // on message
-            Map<String, Object> reqContext = null;
             if (context == null) {
                 context = new HashMap<>();
             }
-            reqContext = CastUtils.cast((Map<?, ?>)context.get(REQUEST_CONTEXT));
+            Map<String, Object> reqContext = CastUtils.cast((Map<?, ?>)context.get(REQUEST_CONTEXT));
             resContext = CastUtils.cast((Map<?, ?>)context.get(RESPONSE_CONTEXT));
             if (reqContext == null) {
                 reqContext = new HashMap<>(getRequestContext());
@@ -510,10 +509,9 @@ public class ClientImpl
                             completeExchange(message.getExchange());
                             if (message.getContent(Exception.class) == null) {
                                 // handle the right response
-                                List<Object> resList = null;
                                 Message inMsg = message.getExchange().getInMessage();
                                 Map<String, Object> ctx = responseContext.get(Thread.currentThread());
-                                resList = CastUtils.cast(inMsg.getContent(List.class));
+                                List<Object> resList = CastUtils.cast(inMsg.getContent(List.class));
                                 Object[] result = resList == null ? null : resList.toArray();
                                 callback.handleResponse(ctx, result);
                                 return;
diff --git a/core/src/main/java/org/apache/cxf/helpers/FileUtils.java b/core/src/main/java/org/apache/cxf/helpers/FileUtils.java
index 963b9b5..afef529 100644
--- a/core/src/main/java/org/apache/cxf/helpers/FileUtils.java
+++ b/core/src/main/java/org/apache/cxf/helpers/FileUtils.java
@@ -29,6 +29,7 @@ import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Random;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -36,7 +37,7 @@ import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.SystemPropertyAction;
 
 public final class FileUtils {
-    private static final int RETRY_SLEEP_MILLIS = 10;
+    private static final long RETRY_SLEEP_MILLIS = 10L;
     private static File defaultTempDir;
     private static Thread shutdownHook;
     private static final char[] ILLEGAL_CHARACTERS
@@ -161,19 +162,15 @@ public final class FileUtils {
             f.deleteOnExit();
             newTmpDir = f;
         } catch (IOException ex) {
-            int x = (int)(Math.random() * 1000000);
-            File f = new File(checkExists, "cxf-tmp-" + x);
-            int count = 0;
-            while (!f.mkdir()) {
-
+            Random r = new Random();
+            File f = new File(checkExists, "cxf-tmp-" + r.nextInt());
+            for (int count = 0; !f.mkdir(); count++) {
                 if (count > 10000) {
                     throw new RuntimeException("Could not create a temporary directory in "
                                                + s + ",  please set java.io.tempdir"
                                                + " to a writable directory");
                 }
-                x = (int)(Math.random() * 1000000);
-                f = new File(checkExists, "cxf-tmp-" + x);
-                count++;
+                f = new File(checkExists, "cxf-tmp-" + r.nextInt());
             }
             newTmpDir = f;
         }
@@ -269,20 +266,16 @@ public final class FileUtils {
 
     public static File createTempFile(String prefix, String suffix, File parentDir,
                                boolean deleteOnExit) throws IOException {
-        File result = null;
         File parent = (parentDir == null)
             ? getDefaultTempDir()
             : parentDir;
 
-        if (suffix == null) {
-            suffix = ".tmp";
-        }
         if (prefix == null) {
             prefix = "cxf";
         } else if (prefix.length() < 3) {
             prefix = prefix + "cxf";
         }
-        result = Files.createTempFile(parent.toPath(), prefix, suffix).toFile();
+        File result = Files.createTempFile(parent.toPath(), prefix, suffix).toFile();
 
         //if parentDir is null, we're in our default dir
         //which will get completely wiped on exit from our exit
diff --git a/core/src/main/java/org/apache/cxf/helpers/ServiceUtils.java b/core/src/main/java/org/apache/cxf/helpers/ServiceUtils.java
index b181b85..01d123e 100644
--- a/core/src/main/java/org/apache/cxf/helpers/ServiceUtils.java
+++ b/core/src/main/java/org/apache/cxf/helpers/ServiceUtils.java
@@ -332,19 +332,7 @@ public final class ServiceUtils {
         }
 
         // replace periods with underscores
-        if (word.indexOf('.') != -1) {
-            char[] buf = word.toCharArray();
-
-            for (int i = 0; i < word.length(); i++) {
-                if (buf[i] == '.') {
-                    buf[i] = '_';
-                }
-            }
-
-            word = new String(buf);
-        }
-
-        sb.append(word);
+        sb.append(word.replace('.', '_'));
     }
 
 }
diff --git a/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
index 08dabd9..7f9696c 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
@@ -157,15 +157,14 @@ public abstract class AbstractInDatabindingInterceptor extends AbstractPhaseInte
         MessagePartInfo lastChoice = null;
         BindingOperationInfo lastBoi = null;
         BindingMessageInfo lastMsgInfo = null;
-        BindingMessageInfo msgInfo = null;
-        BindingOperationInfo boi = null;
         for (Iterator<OperationInfo> itr = operations.iterator(); itr.hasNext();) {
             OperationInfo op = itr.next();
 
-            boi = ep.getEndpointInfo().getBinding().getOperation(op);
+            final BindingOperationInfo boi = ep.getEndpointInfo().getBinding().getOperation(op);
             if (boi == null) {
                 continue;
             }
+            final BindingMessageInfo msgInfo;
             if (client) {
                 msgInfo = boi.getOutput();
             } else {
diff --git a/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java b/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java
index 7c60db7..e6b9f97 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java
@@ -149,7 +149,7 @@ public class ClientFaultConverter extends AbstractInDatabindingInterceptor {
         Service s = msg.getExchange().getService();
         DataBinding dataBinding = s.getDataBinding();
 
-        Object e = null;
+        Object e;
         if (isDOMSupported(dataBinding)) {
             DataReader<Node> reader = this.getNodeDataReader(msg);
             reader.setProperty(DataReader.FAULT, fault);
diff --git a/core/src/main/java/org/apache/cxf/interceptor/OneWayProcessorInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/OneWayProcessorInterceptor.java
index 9ca7dda..642a270 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/OneWayProcessorInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/OneWayProcessorInterceptor.java
@@ -140,7 +140,7 @@ public class OneWayProcessorInterceptor extends AbstractPhaseInterceptor<Message
                         //wait a few milliseconds for the background thread to start processing
                         //Mostly just to make an attempt at keeping the ordering of the
                         //messages coming in from a client.  Not guaranteed though.
-                        lock.wait(20);
+                        lock.wait(20L);
                     }
                 } catch (RejectedExecutionException e) {
                     LOG.warning(
diff --git a/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java b/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java
index 1e6ddbd..9d25b71 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/security/DefaultSecurityContext.java
@@ -47,12 +47,12 @@ public class DefaultSecurityContext implements LoginSecurityContext {
     static {
         try {
             javaGroup = Class.forName("java.security.acl.Group");
-        } catch (Throwable e) {
+        } catch (Exception e) {
             javaGroup = null;
         }
         try {
             karafGroup = Class.forName("org.apache.karaf.jaas.boot.principal.Group");
-        } catch (Throwable e) {
+        } catch (Exception e) {
             karafGroup = null;
         }
     }
@@ -124,8 +124,7 @@ public class DefaultSecurityContext implements LoginSecurityContext {
             return true;
         }
 
-        Enumeration<? extends Principal> members = null;
-        
+        Enumeration<? extends Principal> members;
         try {
             Method m = ReflectionUtil.getMethod(principal.getClass(), "members");
             @SuppressWarnings("unchecked")
diff --git a/core/src/main/java/org/apache/cxf/io/CachedOutputStream.java b/core/src/main/java/org/apache/cxf/io/CachedOutputStream.java
index 76ac2a7..fcdc928 100644
--- a/core/src/main/java/org/apache/cxf/io/CachedOutputStream.java
+++ b/core/src/main/java/org/apache/cxf/io/CachedOutputStream.java
@@ -586,8 +586,7 @@ public class CachedOutputStream extends OutputStream {
 
     public static void setDefaultThreshold(int i) {
         if (i == -1) {
-            String s = SystemPropertyAction.getProperty(CachedConstants.THRESHOLD_SYS_PROP, "-1");
-            i = Integer.parseInt(s);
+            i = SystemPropertyAction.getInteger(CachedConstants.THRESHOLD_SYS_PROP, -1);
             if (i <= 0) {
                 i = 128 * 1024;
             } else {
@@ -595,7 +594,6 @@ public class CachedOutputStream extends OutputStream {
             }
         }
         defaultThreshold = i;
-
     }
 
     /**
diff --git a/core/src/main/java/org/apache/cxf/io/CachedWriter.java b/core/src/main/java/org/apache/cxf/io/CachedWriter.java
index 6d8f09e..07ad64d 100644
--- a/core/src/main/java/org/apache/cxf/io/CachedWriter.java
+++ b/core/src/main/java/org/apache/cxf/io/CachedWriter.java
@@ -586,12 +586,11 @@ public class CachedWriter extends Writer {
 
     public static void setDefaultThreshold(int i) {
         if (i == -1) {
-            String s = SystemPropertyAction.getProperty(CachedConstants.THRESHOLD_SYS_PROP);
-            if (s == null) {
+            i = SystemPropertyAction.getInteger(CachedConstants.THRESHOLD_SYS_PROP, -1);
+            if (i == -1) {
                 // lookup the deprecated property
-                s = SystemPropertyAction.getProperty("org.apache.cxf.io.CachedWriter.Threshold", "-1");
+                i = SystemPropertyAction.getInteger("org.apache.cxf.io.CachedWriter.Threshold", -1);
             }
-            i = Integer.parseInt(s);
             if (i <= 0) {
                 i = 64 * 1024;
             }
diff --git a/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java b/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java
index ae2ca8b..8088b56 100644
--- a/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java
+++ b/core/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java
@@ -102,9 +102,6 @@ public class DefaultResourceManager implements ResourceManager {
         if (!firstCalled) {
             onFirstResolve();
         }
-        if (resolvers == null) {
-            resolvers = registeredResolvers;
-        }
 
         if (LOG.isLoggable(Level.FINE)) {
             LOG.fine("resolving resource <" + name + ">" + (asStream ? " as stream "
@@ -113,7 +110,7 @@ public class DefaultResourceManager implements ResourceManager {
 
         T ret = null;
 
-        for (ResourceResolver rr : resolvers) {
+        for (ResourceResolver rr : resolvers != null ? resolvers : registeredResolvers) {
             if (asStream) {
                 ret = type.cast(rr.getAsStream(name));
             } else {
diff --git a/core/src/main/java/org/apache/cxf/resource/URIResolver.java b/core/src/main/java/org/apache/cxf/resource/URIResolver.java
index e876939..8774245 100644
--- a/core/src/main/java/org/apache/cxf/resource/URIResolver.java
+++ b/core/src/main/java/org/apache/cxf/resource/URIResolver.java
@@ -133,15 +133,11 @@ public class URIResolver {
     }
 
     private void tryFileSystem(String baseUriStr, String uriStr) throws IOException, MalformedURLException {
-        try {
-            URI relative;
-
-            String orig = uriStr;
-
-            // It is possible that spaces have been encoded.  We should decode them first.
-            uriStr = uriStr.replaceAll("%20", " ");
+        // It is possible that spaces have been encoded.  We should decode them first.
+        String fileStr = uriStr.replace("%20", " ");
 
-            final File uriFileTemp = new File(uriStr);
+        try {
+            final File uriFileTemp = new File(fileStr);
 
             File uriFile = new File(AccessController.doPrivileged(new PrivilegedAction<String>() {
                 @Override
@@ -151,7 +147,7 @@ public class URIResolver {
             }));
             if (!SecurityActions.fileExists(uriFile, CXFPermissions.RESOLVE_URI)) {
                 try {
-                    URI urif = new URI(URLDecoder.decode(orig, "ASCII"));
+                    URI urif = new URI(URLDecoder.decode(uriStr, "ASCII"));
                     if ("file".equals(urif.getScheme()) && urif.isAbsolute()) {
                         File f2 = new File(urif);
                         if (f2.exists()) {
@@ -162,8 +158,9 @@ public class URIResolver {
                     //ignore
                 }
             }
+            final URI relative;
             if (!SecurityActions.fileExists(uriFile, CXFPermissions.RESOLVE_URI)) {
-                relative = new URI(uriStr.replaceAll(" ", "%20"));
+                relative = new URI(uriStr.replace(" ", "%20"));
             } else {
                 relative = uriFile.getAbsoluteFile().toURI();
             }
@@ -219,15 +216,15 @@ public class URIResolver {
                                  ? base.toString().substring(5) : base.toString());
                 }
             } else {
-                tryClasspath(uriStr.startsWith("file:")
-                             ? uriStr.substring(5) : uriStr);
+                tryClasspath(fileStr.startsWith("file:")
+                             ? fileStr.substring(5) : fileStr);
             }
         } catch (URISyntaxException e) {
             // do nothing
         }
 
         if (is == null && baseUriStr != null && baseUriStr.startsWith("classpath:")) {
-            tryClasspath(baseUriStr + uriStr);
+            tryClasspath(baseUriStr + fileStr);
         }
         if (is == null && uri != null && "file".equals(uri.getScheme())) {
             try {
@@ -245,11 +242,11 @@ public class URIResolver {
             try {
                 is = Files.newInputStream(file.toPath());
             } catch (FileNotFoundException e) {
-                throw new RuntimeException("File was deleted! " + uriStr, e);
+                throw new RuntimeException("File was deleted! " + fileStr, e);
             }
             url = file.toURI().toURL();
         } else if (is == null) {
-            tryClasspath(uriStr);
+            tryClasspath(fileStr);
         }
     }
 
diff --git a/core/src/main/java/org/apache/cxf/service/factory/AnnotationsFactoryBeanListener.java b/core/src/main/java/org/apache/cxf/service/factory/AnnotationsFactoryBeanListener.java
index c63ad24..5346f06 100644
--- a/core/src/main/java/org/apache/cxf/service/factory/AnnotationsFactoryBeanListener.java
+++ b/core/src/main/java/org/apache/cxf/service/factory/AnnotationsFactoryBeanListener.java
@@ -224,7 +224,7 @@ public class AnnotationsFactoryBeanListener implements FactoryBeanListener {
             }
             String ref = prop.ref();
             Class<?> cls = prop.beanClass();
-            Object obj = null;
+            final Object obj;
             String[] s = prop.value();
             if (!StringUtils.isEmpty(ref)) {
                 obj = bus.getExtension(ConfiguredBeanLocator.class).getBeanOfType(ref, cls);
@@ -248,7 +248,7 @@ public class AnnotationsFactoryBeanListener implements FactoryBeanListener {
                 try {
                     return cls.getConstructor(Endpoint.class).newInstance(ep);
                 } catch (NoSuchMethodException e2) {
-                    return cls.newInstance();
+                    return cls.getConstructor().newInstance();
                 }
             }
         } catch (Exception ex) {
@@ -265,7 +265,7 @@ public class AnnotationsFactoryBeanListener implements FactoryBeanListener {
                         .resolveResource(annotation.ref(), annotation.value()));
                 }
 
-                factory.setDataBinding(annotation.value().newInstance());
+                factory.setDataBinding(annotation.value().getConstructor().newInstance());
             } catch (Exception e) {
                 //REVISIT - log a warning
             }
diff --git a/core/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java b/core/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java
index 3471833..587f283 100644
--- a/core/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java
+++ b/core/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java
@@ -88,7 +88,7 @@ public class SimpleMethodDispatcher
         BindingOperationInfo unwrappedOp = bop.getUnwrappedOperation();
         if (unwrappedOp != null
             && unwrappedOp.getOperationInfo().equals(o.getUnwrappedOperation())) {
-            bop = unwrappedOp;
+            return unwrappedOp;
         }
         return bop;
     }
diff --git a/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java b/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java
index a94357f..9c97ef6 100644
--- a/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java
+++ b/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java
@@ -228,9 +228,8 @@ public abstract class AbstractInvoker implements Invoker {
      */
     private static Method matchMethod(Method methodToMatch, Object targetObject) {
         if (isJdkDynamicProxy(targetObject)) {
-            Class<?>[] interfaces = targetObject.getClass().getInterfaces();
-            for (int i = 0; i < interfaces.length; i++) {
-                Method m = getMostSpecificMethod(methodToMatch, interfaces[i]);
+            for (Class<?> iface : targetObject.getClass().getInterfaces()) {
+                Method m = getMostSpecificMethod(methodToMatch, iface);
                 if (!methodToMatch.equals(m)) {
                     return m;
                 }
diff --git a/core/src/main/java/org/apache/cxf/service/invoker/SessionFactory.java b/core/src/main/java/org/apache/cxf/service/invoker/SessionFactory.java
index 689c17a..52a26dd 100644
--- a/core/src/main/java/org/apache/cxf/service/invoker/SessionFactory.java
+++ b/core/src/main/java/org/apache/cxf/service/invoker/SessionFactory.java
@@ -51,7 +51,7 @@ public class SessionFactory implements Factory {
     /** {@inheritDoc}*/
     public Object create(Exchange e) throws Throwable {
         Service serv = e.getService();
-        Object o = null;
+        Object o;
         synchronized (serv) {
             o = e.getSession().get(serv.getName().toString());
             if (o == null) {
diff --git a/core/src/main/java/org/apache/cxf/service/model/AbstractMessageContainer.java b/core/src/main/java/org/apache/cxf/service/model/AbstractMessageContainer.java
index b9fc265..f0b0187 100644
--- a/core/src/main/java/org/apache/cxf/service/model/AbstractMessageContainer.java
+++ b/core/src/main/java/org/apache/cxf/service/model/AbstractMessageContainer.java
@@ -182,13 +182,8 @@ public abstract class AbstractMessageContainer extends AbstractPropertiesHolder
         if (n == -1) {
             return null;
         }
-        for (MessagePartInfo mpi : getMessageParts()) {
-            if (n == 0) {
-                return mpi;
-            }
-            n--;
-        }
-        return null;
+        List<MessagePartInfo> mpis = getMessageParts();
+        return n < mpis.size() ? mpis.get(n) : null;
     }
 
 
diff --git a/core/src/main/java/org/apache/cxf/service/model/AbstractPropertiesHolder.java b/core/src/main/java/org/apache/cxf/service/model/AbstractPropertiesHolder.java
index d90a8ac..2357243 100644
--- a/core/src/main/java/org/apache/cxf/service/model/AbstractPropertiesHolder.java
+++ b/core/src/main/java/org/apache/cxf/service/model/AbstractPropertiesHolder.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicReference;
 
@@ -263,13 +264,8 @@ public abstract class AbstractPropertiesHolder implements Extensible {
     }
 
 
-
     protected static final boolean equals(Object o1, Object o2) {
-        if (o1 == null && o2 != null
-            || o1 != null && o2 == null) {
-            return false;
-        }
-        return o1 == null || o1.equals(o2);
+        return Objects.equals(o1, o2);
     }
 
 }
diff --git a/core/src/main/java/org/apache/cxf/service/model/BindingInfo.java b/core/src/main/java/org/apache/cxf/service/model/BindingInfo.java
index 8af2cf4..2c9b9ed 100644
--- a/core/src/main/java/org/apache/cxf/service/model/BindingInfo.java
+++ b/core/src/main/java/org/apache/cxf/service/model/BindingInfo.java
@@ -72,16 +72,14 @@ public class BindingInfo extends AbstractDescriptionElement implements NamedItem
         return name;
     }
 
-    private boolean nameEquals(String a, String b, String def) {
+    private static boolean nameEquals(String a, String b, String def) {
         if (a == null) {
             // in case of input/output itself is empty
             return true;
         }
-        if (b == null) {
-            b = def;
-        }
-        return "".equals(a) ? "".equals(b) : a.equals(b);
+        return a.isEmpty() ? b.isEmpty() : a.equals(b != null ? b : def);
     }
+
     public BindingOperationInfo buildOperation(QName opName, String inName, String outName) {
         for (OperationInfo op : getInterface().getOperations()) {
             if (opName.equals(op.getName())
diff --git a/core/src/main/java/org/apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java b/core/src/main/java/org/apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java
index c0a9e4ef..3cb0c38 100644
--- a/core/src/main/java/org/apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java
+++ b/core/src/main/java/org/apache/cxf/staxutils/OverlayW3CDOMStreamWriter.java
@@ -94,7 +94,7 @@ public class OverlayW3CDOMStreamWriter extends W3CDOMStreamWriter {
         isOverlaidStack.add(0, isOverlaid);
         if (isOverlaid) {
             Element nd = getCurrentNode();
-            Node nd2 = null;
+            Node nd2;
             if (nd == null) {
                 nd2 = getDocument().getDocumentElement();
             } else {
@@ -135,7 +135,7 @@ public class OverlayW3CDOMStreamWriter extends W3CDOMStreamWriter {
         isOverlaidStack.add(0, isOverlaid);
         if (isOverlaid) {
             Element nd = getCurrentNode();
-            Node nd2 = null;
+            Node nd2;
             if (nd == null) {
                 nd2 = getDocument().getDocumentElement();
             } else {
@@ -176,7 +176,7 @@ public class OverlayW3CDOMStreamWriter extends W3CDOMStreamWriter {
             isOverlaidStack.add(0, isOverlaid);
             if (isOverlaid) {
                 Element nd = getCurrentNode();
-                Node nd2 = null;
+                Node nd2;
                 if (nd == null) {
                     nd2 = getDocument().getDocumentElement();
                 } else {
diff --git a/core/src/main/java/org/apache/cxf/staxutils/PropertiesExpandingStreamReader.java b/core/src/main/java/org/apache/cxf/staxutils/PropertiesExpandingStreamReader.java
index 8cfc89c..5a2a62c 100644
--- a/core/src/main/java/org/apache/cxf/staxutils/PropertiesExpandingStreamReader.java
+++ b/core/src/main/java/org/apache/cxf/staxutils/PropertiesExpandingStreamReader.java
@@ -24,6 +24,8 @@ import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.util.StreamReaderDelegate;
 
+import org.apache.cxf.common.util.StringUtils;
+
 /**
  * A StreamReaderDelegate that expands property references in element and attribute values.
  *
@@ -40,7 +42,7 @@ public class PropertiesExpandingStreamReader extends StreamReaderDelegate {
     }
 
     protected String expandProperty(String value) {
-        if (isEmpty(value)) {
+        if (StringUtils.isEmpty(value)) {
             return value;
         }
 
@@ -49,14 +51,10 @@ public class PropertiesExpandingStreamReader extends StreamReaderDelegate {
             final int endIndx = value.lastIndexOf(DELIMITER);
             if (endIndx > -1 && startIndx + 1 < endIndx) {
                 final String propName = value.substring(startIndx + 1, endIndx);
-                if (!isEmpty(propName)) {
+                if (!StringUtils.isEmpty(propName)) {
                     final String envValue = props.get(propName);
-                    if (!isEmpty(envValue)) {
-                        StringBuilder sb = new StringBuilder();
-                        sb.append(value.substring(0, startIndx));
-                        sb.append(envValue);
-                        sb.append(value.substring(endIndx + 1));
-                        value = sb.toString();
+                    if (!StringUtils.isEmpty(envValue)) {
+                        return value.substring(0, startIndx) + envValue + value.substring(endIndx + 1);
                     }
                 }
             }
@@ -65,18 +63,6 @@ public class PropertiesExpandingStreamReader extends StreamReaderDelegate {
         return value;
     }
 
-    private static boolean isEmpty(String str) {
-        if (str != null) {
-            int len = str.length();
-            for (int x = 0; x < len; ++x) {
-                if (str.charAt(x) > ' ') {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
     @Override
     public String getElementText() throws XMLStreamException {
         return expandProperty(super.getElementText());
diff --git a/core/src/main/java/org/apache/cxf/staxutils/StaxSource.java b/core/src/main/java/org/apache/cxf/staxutils/StaxSource.java
index 5dea29b..f740584 100644
--- a/core/src/main/java/org/apache/cxf/staxutils/StaxSource.java
+++ b/core/src/main/java/org/apache/cxf/staxutils/StaxSource.java
@@ -110,17 +110,12 @@ public class StaxSource extends SAXSource implements XMLReader {
                     String uri = streamReader.getNamespaceURI();
                     String localName = streamReader.getLocalName();
                     String prefix = streamReader.getPrefix();
-                    String qname = prefix != null && prefix.length() > 0
-                        ? prefix + ":" + localName : localName;
+                    String qname = prefix != null && !prefix.isEmpty()
+                        ? prefix + ':' + localName : localName;
                     contentHandler.endElement(uri, localName, qname);
                     // namespaces
                     for (int i = 0; i < streamReader.getNamespaceCount(); i++) {
-                        String nsPrefix = streamReader.getNamespacePrefix(i);
-                        String nsUri = streamReader.getNamespaceURI(i);
-                        if (nsUri == null) {
-                            nsUri = "";
-                        }
-                        contentHandler.endPrefixMapping(nsPrefix);
+                        contentHandler.endPrefixMapping(streamReader.getNamespacePrefix(i));
                     }
                     break;
                 }
@@ -138,8 +133,8 @@ public class StaxSource extends SAXSource implements XMLReader {
                     String uri = streamReader.getNamespaceURI();
                     String localName = streamReader.getLocalName();
                     String prefix = streamReader.getPrefix();
-                    String qname = prefix != null && prefix.length() > 0
-                        ? prefix + ":" + localName : localName;
+                    String qname = prefix != null && !prefix.isEmpty()
+                        ? prefix + ':' + localName : localName;
                     // namespaces
                     for (int i = 0; i < streamReader.getNamespaceCount(); i++) {
                         String nsPrefix = streamReader.getNamespacePrefix(i);
@@ -176,8 +171,8 @@ public class StaxSource extends SAXSource implements XMLReader {
 
     protected String getQualifiedName() {
         String prefix = streamReader.getPrefix();
-        if (prefix != null && prefix.length() > 0) {
-            return prefix + ":" + streamReader.getLocalName();
+        if (prefix != null && !prefix.isEmpty()) {
+            return prefix + ':' + streamReader.getLocalName();
         }
         return streamReader.getLocalName();
     }
diff --git a/core/src/main/java/org/apache/cxf/staxutils/W3CDOMStreamReader.java b/core/src/main/java/org/apache/cxf/staxutils/W3CDOMStreamReader.java
index d19d255..072a9b2 100644
--- a/core/src/main/java/org/apache/cxf/staxutils/W3CDOMStreamReader.java
+++ b/core/src/main/java/org/apache/cxf/staxutils/W3CDOMStreamReader.java
@@ -127,13 +127,12 @@ public class W3CDOMStreamReader extends AbstractDOMStreamReader<Node, Node> {
                 if (name != null && "xmlns".equals(name)) {
                     frame.uris.add(value);
                     frame.prefixes.add("");
-                } else if (prefix.length() > 0 && "xmlns".equals(prefix)) {
+                } else if (!prefix.isEmpty() && "xmlns".equals(prefix)) {
                     frame.uris.add(value);
                     frame.prefixes.add(localName);
                 } else if (name.startsWith("xmlns:")) {
-                    prefix = name.substring(6);
                     frame.uris.add(value);
-                    frame.prefixes.add(prefix);
+                    frame.prefixes.add(name.substring(6));
                 } else {
                     frame.attributes.add(node);
                 }
diff --git a/core/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java b/core/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java
index e0e528b..cf8cf7c 100644
--- a/core/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java
+++ b/core/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java
@@ -140,7 +140,7 @@ public class OutTransformWriter extends DelegatingXMLStreamWriter {
 
         uri = value != null ? value : uri;
 
-        if (writtenUris.get(0).contains(uri) && "".equals(namespaceContext.getPrefix(uri))) {
+        if (writtenUris.get(0).contains(uri) && namespaceContext.getPrefix(uri).isEmpty()) {
             return;
         }
         super.writeDefaultNamespace(uri);
@@ -159,9 +159,7 @@ public class OutTransformWriter extends DelegatingXMLStreamWriter {
             return;
         }
 
-        uri = value != null ? value : uri;
-
-        super.setDefaultNamespace(uri);
+        super.setDefaultNamespace(value != null ? value : uri);
     }
 
     @Override
@@ -457,7 +455,7 @@ public class OutTransformWriter extends DelegatingXMLStreamWriter {
             local = expected.getLocalPart();
         }
         if (!attributesToElements) {
-            if (uri.length() > 0) {
+            if (!uri.isEmpty()) {
                 super.writeAttribute(uri, local, value);
             } else {
                 super.writeAttribute(local, value);
diff --git a/core/src/main/java/org/apache/cxf/staxutils/transform/TransformUtils.java b/core/src/main/java/org/apache/cxf/staxutils/transform/TransformUtils.java
index 49d9aca..04a146f 100644
--- a/core/src/main/java/org/apache/cxf/staxutils/transform/TransformUtils.java
+++ b/core/src/main/java/org/apache/cxf/staxutils/transform/TransformUtils.java
@@ -55,8 +55,7 @@ public final class TransformUtils {
                                                                 String defaultNamespace) {
         if (outElementsMap != null || outDropElements != null
             || outAppendMap != null || attributesToElements) {
-            writer = createNewWriterIfNeeded(writer, os);
-            writer = new OutTransformWriter(writer, outElementsMap, outAppendMap,
+            writer = new OutTransformWriter(createNewWriterIfNeeded(writer, os), outElementsMap, outAppendMap,
                                             outDropElements, null, attributesToElements, defaultNamespace);
         }
         return writer;
@@ -73,8 +72,7 @@ public final class TransformUtils {
                                                                 String defaultNamespace) {
         if (outElementsMap != null || outDropElements != null
             || outAppendMap != null || attributesToElements) {
-            writer = createNewWriterIfNeeded(writer, os);
-            writer = new OutTransformWriter(writer, outElementsMap, outAppendMap,
+            writer = new OutTransformWriter(createNewWriterIfNeeded(writer, os), outElementsMap, outAppendMap,
                                             outDropElements, outAttributesMap, attributesToElements, defaultNamespace);
         }
         return writer;
@@ -166,7 +164,7 @@ public final class TransformUtils {
     }
 
     static boolean isEmptyQName(QName qname) {
-        return XMLConstants.NULL_NS_URI.equals(qname.getNamespaceURI()) && "".equals(qname.getLocalPart());
+        return XMLConstants.NULL_NS_URI.equals(qname.getNamespaceURI()) && qname.getLocalPart().isEmpty();
     }
 
     static ParsingEvent createStartElementEvent(QName name) {
diff --git a/core/src/main/java/org/apache/cxf/staxutils/validation/Stax2ValidationUtils.java b/core/src/main/java/org/apache/cxf/staxutils/validation/Stax2ValidationUtils.java
index a2ea01c..1dccdc4 100644
--- a/core/src/main/java/org/apache/cxf/staxutils/validation/Stax2ValidationUtils.java
+++ b/core/src/main/java/org/apache/cxf/staxutils/validation/Stax2ValidationUtils.java
@@ -148,7 +148,7 @@ class Stax2ValidationUtils {
                         continue;
                     }
 
-                    if (sch.getTargetNamespace() == null && sch.getExternals().size() > 0) {
+                    if (sch.getTargetNamespace() == null && !sch.getExternals().isEmpty()) {
                         for (XmlSchemaExternal xmlSchemaExternal : sch.getExternals()) {
                             addSchema(sources, xmlSchemaExternal.getSchema(),
                                     getElement(xmlSchemaExternal.getSchema().getSourceURI()));
diff --git a/core/src/main/java/org/apache/cxf/transport/AbstractObservable.java b/core/src/main/java/org/apache/cxf/transport/AbstractObservable.java
index 75eaa1d..6efe3f0 100644
--- a/core/src/main/java/org/apache/cxf/transport/AbstractObservable.java
+++ b/core/src/main/java/org/apache/cxf/transport/AbstractObservable.java
@@ -97,7 +97,7 @@ public abstract class AbstractObservable implements Observable {
     protected static EndpointReferenceType getTargetReference(EndpointInfo ei,
                                                               EndpointReferenceType t,
                                                               Bus bus) {
-        EndpointReferenceType ref = null;
+        final EndpointReferenceType ref;
         if (null == t) {
             ref = new EndpointReferenceType();
             AttributedURIType address = new AttributedURIType();
diff --git a/core/src/main/java/org/apache/cxf/ws/addressing/EndpointReferenceUtils.java b/core/src/main/java/org/apache/cxf/ws/addressing/EndpointReferenceUtils.java
index 46b9131..24a2adf 100644
--- a/core/src/main/java/org/apache/cxf/ws/addressing/EndpointReferenceUtils.java
+++ b/core/src/main/java/org/apache/cxf/ws/addressing/EndpointReferenceUtils.java
@@ -45,7 +45,6 @@ import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.transform.Source;
-import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamSource;
 import javax.xml.validation.Schema;
@@ -515,11 +514,11 @@ public final class EndpointReferenceUtils {
                     }
 
                     if (doTransform) {
-                        DOMResult domResult = new DOMResult();
-                        domResult.setSystemId(source.getSystemId());
+//                        DOMResult domResult = new DOMResult();
+//                        domResult.setSystemId(source.getSystemId());
                         node = StaxUtils.read(source);
 
-                        node = domResult.getNode();
+//                        node = domResult.getNode();
                     }
 
                     if (null != node) {
@@ -548,9 +547,6 @@ public final class EndpointReferenceUtils {
 
 
     private static Schema createSchema(ServiceInfo serviceInfo, Bus b) {
-        if (b == null) {
-            b = BusFactory.getThreadDefaultBus(false);
-        }
         Schema schema = serviceInfo.getProperty(Schema.class.getName(), Schema.class);
         if (schema == null) {
             SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
@@ -571,18 +567,18 @@ public final class EndpointReferenceUtils {
                         baseURI = si.getSystemId();
                     }
                     DOMSource ds = new DOMSource(el, baseURI);
-                    schemaSourcesMap2.put(si.getSystemId() + ":" + si.getNamespaceURI(), ds);
+                    schemaSourcesMap2.put(si.getSystemId() + ':' + si.getNamespaceURI(), ds);
                     LoadingByteArrayOutputStream out = new LoadingByteArrayOutputStream();
                     writer = StaxUtils.createXMLStreamWriter(out);
                     StaxUtils.copy(el, writer);
                     writer.flush();
-                    schemaSourcesMap.put(si.getSystemId() + ":" + si.getNamespaceURI(), out.toByteArray());
+                    schemaSourcesMap.put(si.getSystemId() + ':' + si.getNamespaceURI(), out.toByteArray());
                 }
 
 
                 for (XmlSchema sch : serviceInfo.getXmlSchemaCollection().getXmlSchemas()) {
                     if (sch.getSourceURI() != null
-                        && !schemaSourcesMap.containsKey(sch.getSourceURI() + ":"
+                        && !schemaSourcesMap.containsKey(sch.getSourceURI() + ':'
                                                          + sch.getTargetNamespace())) {
 
                         InputStream ins = null;
@@ -601,17 +597,17 @@ public final class EndpointReferenceUtils {
                             IOUtils.copyAndCloseInput(ins, out);
                         }
 
-                        schemaSourcesMap.put(sch.getSourceURI() + ":"
+                        schemaSourcesMap.put(sch.getSourceURI() + ':'
                                              + sch.getTargetNamespace(), out.toByteArray());
 
                         Source source = new StreamSource(out.createInputStream(), sch.getSourceURI());
-                        schemaSourcesMap2.put(sch.getSourceURI() + ":"
+                        schemaSourcesMap2.put(sch.getSourceURI() + ':'
                                               + sch.getTargetNamespace(), source);
                     }
                 }
 
-
-                factory.setResourceResolver(new SchemaLSResourceResolver(schemaSourcesMap, b));
+                factory.setResourceResolver(new SchemaLSResourceResolver(schemaSourcesMap,
+                        b != null ? b : BusFactory.getThreadDefaultBus(false)));
                 schema = factory.newSchema(schemaSourcesMap2.values()
                                            .toArray(new Source[schemaSourcesMap2.size()]));
 
diff --git a/core/src/test/java/org/apache/cxf/attachment/LazyDataSourceTest.java b/core/src/test/java/org/apache/cxf/attachment/LazyDataSourceTest.java
new file mode 100644
index 0000000..8d5355b
--- /dev/null
+++ b/core/src/test/java/org/apache/cxf/attachment/LazyDataSourceTest.java
@@ -0,0 +1,67 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.attachment;
+
+import java.util.Collections;
+
+import javax.activation.DataHandler;
+import javax.activation.DataSource;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+public class LazyDataSourceTest {
+
+    private static final String ID_1 = "id1";
+    private static final String ID_2 = "id2";
+
+    @Test
+    public void testNoDataSource() throws Exception {
+        DataSource ds = new LazyDataSource(ID_1,
+                Collections.singleton(new AttachmentImpl(ID_1, new DataHandler((DataSource) null) {
+                    @Override
+                    public DataSource getDataSource() {
+                        return null;
+                    }
+                })));
+        try {
+            ds.getContentType();
+            fail();
+        } catch (IllegalStateException e) {
+            String message = e.getMessage();
+            assertTrue(message, message.contains(ID_1));
+        }
+    }
+
+    @Test
+    public void testNoAttachment() throws Exception {
+        DataSource ds = new LazyDataSource(ID_1, Collections.singleton(new AttachmentImpl(ID_2)));
+        try {
+            ds.getName();
+            fail();
+        } catch (IllegalStateException e) {
+            String message = e.getMessage();
+            assertTrue(message, message.contains(ID_1));
+            assertTrue(message, message.contains(ID_2));
+        }
+    }
+
+}
diff --git a/core/src/test/java/org/apache/cxf/common/jaxb/JAXBUtilsTest.java b/core/src/test/java/org/apache/cxf/common/jaxb/JAXBUtilsTest.java
index 44e6d5e..1becfc9 100644
--- a/core/src/test/java/org/apache/cxf/common/jaxb/JAXBUtilsTest.java
+++ b/core/src/test/java/org/apache/cxf/common/jaxb/JAXBUtilsTest.java
@@ -30,6 +30,8 @@ import com.sun.xml.bind.v2.runtime.MarshallerImpl;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
 
 public class JAXBUtilsTest {
 
@@ -48,4 +50,17 @@ public class JAXBUtilsTest {
         JAXBUtils.setEscapeHandler(m, mockHandler);
         assertEquals(mockHandler, m.getProperty("com.sun.xml.bind.characterEscapeHandler"));
     }
-}
\ No newline at end of file
+
+    @Test
+    public void getValidClass() {
+        assertSame(Character.UnicodeScript.class, JAXBUtils.getValidClass(Character.UnicodeScript.class));
+        assertSame(String[].class, JAXBUtils.getValidClass(String[].class));
+        assertNull(JAXBUtils.getValidClass(Object.class));
+        assertNull(JAXBUtils.getValidClass(String.class));
+        assertNull(JAXBUtils.getValidClass(int.class));
+        assertNull(JAXBUtils.getValidClass(Test.class));
+        assertSame(Iterable.class, JAXBUtils.getValidClass(Iterable.class));
+        assertSame(JAXBUtilsTest.class, JAXBUtils.getValidClass(JAXBUtilsTest.class));
+        assertSame(Void.class, JAXBUtils.getValidClass(Void.class));
+    }
+}
diff --git a/core/src/test/java/org/apache/cxf/service/invoker/PooledFactoryTest.java b/core/src/test/java/org/apache/cxf/service/invoker/PooledFactoryTest.java
new file mode 100644
index 0000000..91cd641
--- /dev/null
+++ b/core/src/test/java/org/apache/cxf/service/invoker/PooledFactoryTest.java
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.service.invoker;
+
+import java.util.Collections;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertSame;
+
+public class PooledFactoryTest {
+
+    @Test
+    public void testPooledFactory() throws Throwable {
+        Object existing = new Object();
+        PooledFactory pf = new PooledFactory(Collections.singleton(existing));
+        assertSame(existing, pf.create(null));
+        pf.release(null, existing);
+        assertSame(existing, pf.create(null));
+    }
+
+}
diff --git a/core/src/test/java/org/apache/cxf/staxutils/PropertiesExpandingStreamReaderTest.java b/core/src/test/java/org/apache/cxf/staxutils/PropertiesExpandingStreamReaderTest.java
index 123b8a2..f8a1ab5 100644
--- a/core/src/test/java/org/apache/cxf/staxutils/PropertiesExpandingStreamReaderTest.java
+++ b/core/src/test/java/org/apache/cxf/staxutils/PropertiesExpandingStreamReaderTest.java
@@ -19,7 +19,6 @@
 
 package org.apache.cxf.staxutils;
 
-import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -42,7 +41,7 @@ public class PropertiesExpandingStreamReaderTest {
         map.put("bar", "BAR-VALUE");
         map.put("blah", "BLAH-VALUE");
         XMLStreamReader reader = new PropertiesExpandingStreamReader(
-            StaxUtils.createXMLStreamReader(getTestStream("./resources/sysprops.xml")), map);
+            StaxUtils.createXMLStreamReader(getClass().getResourceAsStream("resources/sysprops.xml")), map);
         Document doc = StaxUtils.read(reader);
         Element abc = DOMUtils.getChildrenWithName(doc.getDocumentElement(),
             "http://foo/bar", "abc").iterator().next();
@@ -53,7 +52,4 @@ public class PropertiesExpandingStreamReaderTest {
         assertEquals("BLAH-VALUE2", def.getAttribute("myAttr"));
     }
 
-    private InputStream getTestStream(String resource) {
-        return getClass().getResourceAsStream(resource);
-    }
-}
\ No newline at end of file
+}