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 <[email protected]> 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 +}
