From f56a6e71f6a4605a50c607ca07e16e6565904352 Mon Sep 17 00:00:00 2001 From: Josh Cummings Date: Tue, 9 May 2023 12:41:35 -0600 Subject: [PATCH] Address JavaFormat Violations in Core Issue gh-743 --- .../springframework/ldap/NamingException.java | 7 +- .../ldap/config/ContextSourceParser.java | 127 +++--- .../config/DefaultRenamingStrategyParser.java | 4 +- .../ldap/config/LdapTemplateParser.java | 22 +- .../ldap/config/TransactionManagerParser.java | 9 +- ...AndResponseControlDirContextProcessor.java | 10 +- .../ldap/control/PagedResult.java | 16 +- .../ldap/control/PagedResultsCookie.java | 11 +- .../control/PagedResultsRequestControl.java | 10 +- .../core/AttributesMapperCallbackHandler.java | 6 +- ...CollectingAuthenticationErrorCallback.java | 2 +- .../core/ContextMapperCallbackHandler.java | 2 +- .../ldap/core/ContextSource.java | 2 +- .../ldap/core/DefaultLdapClient.java | 376 +++++++++--------- .../ldap/core/DirContextAdapter.java | 75 ++-- .../ldap/core/DistinguishedName.java | 19 +- .../ldap/core/LdapAttributes.java | 4 +- .../springframework/ldap/core/LdapClient.java | 2 +- .../springframework/ldap/core/LdapRdn.java | 10 +- .../ldap/core/LdapRdnComponent.java | 2 +- .../ldap/core/LdapTemplate.java | 258 ++++++------ .../ldap/core/NameAwareAttribute.java | 23 +- .../ldap/core/NameAwareAttributes.java | 11 +- .../core/support/AbstractContextSource.java | 28 +- ...ctTlsDirContextAuthenticationStrategy.java | 4 +- .../core/support/DefaultDirObjectFactory.java | 6 +- ...atingBaseLdapPathContextSourceSupport.java | 4 +- .../support/LookupAttemptingCallback.java | 4 +- .../ldap/core/support/RangeOption.java | 19 +- .../core/support/SingleContextSource.java | 10 +- .../ldap/filter/BinaryLogicalFilter.java | 11 +- .../ldap/filter/CompareFilter.java | 16 +- .../springframework/ldap/filter/Filter.java | 2 +- .../ldap/filter/HardcodedFilter.java | 11 +- .../ldap/filter/NotFilter.java | 11 +- .../ldap/filter/NotPresentFilter.java | 13 +- .../ldap/filter/PresentFilter.java | 13 +- .../ldap/odm/annotations/package-info.java | 2 +- .../ldap/odm/core/impl/AttributeMetaData.java | 8 +- .../impl/DefaultObjectDirectoryMapper.java | 46 +-- .../ldap/odm/core/impl/package-info.java | 2 +- .../ldap/odm/core/package-info.java | 2 +- .../ConversionServiceConverterManager.java | 4 +- .../impl/ConverterManagerFactoryBean.java | 118 +++--- .../impl/ConverterManagerImpl.java | 4 +- .../impl/converters/package-info.java | 2 +- .../ldap/pool/DelegatingContext.java | 8 +- .../ldap/pool/DelegatingDirContext.java | 4 +- .../ldap/pool/DelegatingLdapContext.java | 4 +- .../DirContextPoolableObjectFactory.java | 12 +- .../factory/MutablePoolingContextSource.java | 4 +- .../pool/factory/PoolingContextSource.java | 8 +- .../DefaultDirContextValidator.java | 4 +- .../ldap/pool2/DelegatingContext.java | 8 +- .../ldap/pool2/DelegatingDirContext.java | 4 +- .../ldap/pool2/DelegatingLdapContext.java | 4 +- .../DirContextPoolableObjectFactory.java | 12 +- .../factory/MutablePooledContextSource.java | 4 +- .../pool2/factory/PooledContextSource.java | 8 +- .../DefaultDirContextValidator.java | 4 +- .../ldap/query/DefaultContainerCriteria.java | 23 +- .../ldap/support/LdapEncoder.java | 9 +- .../ldap/support/LdapNameBuilder.java | 8 +- .../ldap/support/LdapUtils.java | 82 ++-- .../compensating/BindOperationExecutor.java | 4 +- .../ModifyAttributesOperationExecutor.java | 2 +- .../compensating/RebindOperationExecutor.java | 4 +- .../compensating/RenameOperationExecutor.java | 2 +- .../compensating/UnbindOperationExecutor.java | 2 +- ...SourceAndDataSourceTransactionManager.java | 50 +-- ...tSourceAndHibernateTransactionManager.java | 48 +-- .../ContextSourceTransactionManager.java | 2 +- ...ntextSourceTransactionManagerDelegate.java | 4 +- ...ctionAwareDirContextInvocationHandler.java | 6 +- .../DefaultTempEntryRenamingStrategy.java | 4 +- ...erentSubtreeTempEntryRenamingStrategy.java | 4 +- ...ompensatingTransactionManagerDelegate.java | 4 +- .../CompensatingTransactionHolderSupport.java | 2 +- .../CompensatingTransactionObject.java | 2 +- .../support/CompensatingTransactionUtils.java | 4 +- ...mpensatingTransactionOperationManager.java | 8 +- 81 files changed, 879 insertions(+), 831 deletions(-) diff --git a/core/src/main/java/org/springframework/ldap/NamingException.java b/core/src/main/java/org/springframework/ldap/NamingException.java index 40e387a8..0b4de5a1 100644 --- a/core/src/main/java/org/springframework/ldap/NamingException.java +++ b/core/src/main/java/org/springframework/ldap/NamingException.java @@ -33,7 +33,7 @@ import org.springframework.core.NestedRuntimeException; */ public abstract class NamingException extends NestedRuntimeException { - private Throwable cause; + private final Throwable cause; /** * Overrides {@link NestedRuntimeException#getCause()} since serialization always @@ -47,7 +47,7 @@ public abstract class NamingException extends NestedRuntimeException { // the constructor, we check for the cause being "this" here, as the cause // could still be set to "this" via reflection: for example, by a remoting // deserializer like Hessian's. - return (this.cause == this ? null : this.cause); + return (this.cause != this) ? this.cause : null; } /** @@ -56,6 +56,7 @@ public abstract class NamingException extends NestedRuntimeException { */ public NamingException(String msg) { super(msg); + this.cause = null; } /** @@ -76,7 +77,7 @@ public abstract class NamingException extends NestedRuntimeException { * a proper subclass of {@link javax.naming.NamingException}. */ public NamingException(Throwable cause) { - this(cause != null ? cause.getMessage() : null, cause); + this((cause != null) ? cause.getMessage() : null, cause); } /** diff --git a/core/src/main/java/org/springframework/ldap/config/ContextSourceParser.java b/core/src/main/java/org/springframework/ldap/config/ContextSourceParser.java index 08331476..7381b939 100644 --- a/core/src/main/java/org/springframework/ldap/config/ContextSourceParser.java +++ b/core/src/main/java/org/springframework/ldap/config/ContextSourceParser.java @@ -40,10 +40,6 @@ import org.springframework.util.ClassUtils; import org.springframework.util.StringUtils; import org.springframework.util.xml.DomUtils; -import static org.springframework.ldap.config.ParserUtils.getBoolean; -import static org.springframework.ldap.config.ParserUtils.getInt; -import static org.springframework.ldap.config.ParserUtils.getString; - /** * @author Mattias Hellborg Arthursson * @author Eddu Melendez @@ -184,12 +180,12 @@ public class ContextSourceParser implements BeanDefinitionParser { .setFactoryMethod("urls").addConstructorArgValue(url); builder.addPropertyValue("urls", urlsBuilder.getBeanDefinition()); - builder.addPropertyValue("base", getString(element, ATT_BASE, "")); - builder.addPropertyValue("referral", getString(element, ATT_REFERRAL, null)); + builder.addPropertyValue("base", ParserUtils.getString(element, ATT_BASE, "")); + builder.addPropertyValue("referral", ParserUtils.getString(element, ATT_REFERRAL, null)); - boolean anonymousReadOnly = getBoolean(element, ATT_ANONYMOUS_READ_ONLY, false); + boolean anonymousReadOnly = ParserUtils.getBoolean(element, ATT_ANONYMOUS_READ_ONLY, false); builder.addPropertyValue("anonymousReadOnly", anonymousReadOnly); - boolean nativePooling = getBoolean(element, ATT_NATIVE_POOLING, false); + boolean nativePooling = ParserUtils.getBoolean(element, ATT_NATIVE_POOLING, false); builder.addPropertyValue("pooled", nativePooling); String authStrategyRef = element.getAttribute(ATT_AUTHENTICATION_STRATEGY_REF); @@ -224,7 +220,7 @@ public class ContextSourceParser implements BeanDefinitionParser { actualContextSourceDefinition = proxyBuilder.getBeanDefinition(); } - String id = getString(element, AbstractBeanDefinitionParser.ID_ATTRIBUTE, DEFAULT_ID); + String id = ParserUtils.getString(element, AbstractBeanDefinitionParser.ID_ATTRIBUTE, DEFAULT_ID); parserContext.registerBeanComponent(new BeanComponentDefinition(actualContextSourceDefinition, id)); return actualContextSourceDefinition; @@ -255,10 +251,10 @@ public class ContextSourceParser implements BeanDefinitionParser { populatePoolConfigProperties(builder, pooling2Element); - boolean testOnBorrow = getBoolean(pooling2Element, ATT_TEST_ON_BORROW, false); - boolean testOnReturn = getBoolean(pooling2Element, ATT_TEST_ON_RETURN, false); - boolean testWhileIdle = getBoolean(pooling2Element, ATT_TEST_WHILE_IDLE, false); - boolean testOnCreate = getBoolean(pooling2Element, ATT_TEST_ON_CREATE, false); + boolean testOnBorrow = ParserUtils.getBoolean(pooling2Element, ATT_TEST_ON_BORROW, false); + boolean testOnReturn = ParserUtils.getBoolean(pooling2Element, ATT_TEST_ON_RETURN, false); + boolean testWhileIdle = ParserUtils.getBoolean(pooling2Element, ATT_TEST_WHILE_IDLE, false); + boolean testOnCreate = ParserUtils.getBoolean(pooling2Element, ATT_TEST_ON_CREATE, false); if (testOnBorrow || testOnCreate || testWhileIdle || testOnReturn) { populatePoolValidationProperties(builder, pooling2Element); @@ -271,27 +267,28 @@ public class ContextSourceParser implements BeanDefinitionParser { builder.addPropertyValue("contextSource", targetContextSourceDefinition); builder.addPropertyValue("maxActive", - getString(poolingElement, ATT_MAX_ACTIVE, String.valueOf(DEFAULT_MAX_ACTIVE))); + ParserUtils.getString(poolingElement, ATT_MAX_ACTIVE, String.valueOf(DEFAULT_MAX_ACTIVE))); builder.addPropertyValue("maxTotal", - getString(poolingElement, ATT_MAX_TOTAL, String.valueOf(DEFAULT_MAX_TOTAL))); + ParserUtils.getString(poolingElement, ATT_MAX_TOTAL, String.valueOf(DEFAULT_MAX_TOTAL))); builder.addPropertyValue("maxIdle", - getString(poolingElement, ATT_MAX_IDLE, String.valueOf(DEFAULT_MAX_IDLE))); + ParserUtils.getString(poolingElement, ATT_MAX_IDLE, String.valueOf(DEFAULT_MAX_IDLE))); builder.addPropertyValue("minIdle", - getString(poolingElement, ATT_MIN_IDLE, String.valueOf(DEFAULT_MIN_IDLE))); + ParserUtils.getString(poolingElement, ATT_MIN_IDLE, String.valueOf(DEFAULT_MIN_IDLE))); builder.addPropertyValue("maxWait", - getString(poolingElement, ATT_MAX_WAIT, String.valueOf(DEFAULT_MAX_WAIT))); - String whenExhausted = getString(poolingElement, ATT_WHEN_EXHAUSTED, PoolExhaustedAction.BLOCK.name()); + ParserUtils.getString(poolingElement, ATT_MAX_WAIT, String.valueOf(DEFAULT_MAX_WAIT))); + String whenExhausted = ParserUtils.getString(poolingElement, ATT_WHEN_EXHAUSTED, + PoolExhaustedAction.BLOCK.name()); builder.addPropertyValue("whenExhaustedAction", PoolExhaustedAction.valueOf(whenExhausted).getValue()); - builder.addPropertyValue("timeBetweenEvictionRunsMillis", - getString(poolingElement, ATT_EVICTION_RUN_MILLIS, String.valueOf(DEFAULT_EVICTION_RUN_MILLIS))); - builder.addPropertyValue("minEvictableIdleTimeMillis", - getString(poolingElement, ATT_EVICTABLE_TIME_MILLIS, String.valueOf(DEFAULT_EVICTABLE_MILLIS))); - builder.addPropertyValue("numTestsPerEvictionRun", getString(poolingElement, ATT_TESTS_PER_EVICTION_RUN, - String.valueOf(DEFAULT_TESTS_PER_EVICTION_RUN))); + builder.addPropertyValue("timeBetweenEvictionRunsMillis", ParserUtils.getString(poolingElement, + ATT_EVICTION_RUN_MILLIS, String.valueOf(DEFAULT_EVICTION_RUN_MILLIS))); + builder.addPropertyValue("minEvictableIdleTimeMillis", ParserUtils.getString(poolingElement, + ATT_EVICTABLE_TIME_MILLIS, String.valueOf(DEFAULT_EVICTABLE_MILLIS))); + builder.addPropertyValue("numTestsPerEvictionRun", ParserUtils.getString(poolingElement, + ATT_TESTS_PER_EVICTION_RUN, String.valueOf(DEFAULT_TESTS_PER_EVICTION_RUN))); - boolean testOnBorrow = getBoolean(poolingElement, ATT_TEST_ON_BORROW, false); - boolean testOnReturn = getBoolean(poolingElement, ATT_TEST_ON_RETURN, false); - boolean testWhileIdle = getBoolean(poolingElement, ATT_TEST_WHILE_IDLE, false); + boolean testOnBorrow = ParserUtils.getBoolean(poolingElement, ATT_TEST_ON_BORROW, false); + boolean testOnReturn = ParserUtils.getBoolean(poolingElement, ATT_TEST_ON_RETURN, false); + boolean testWhileIdle = ParserUtils.getBoolean(poolingElement, ATT_TEST_WHILE_IDLE, false); if (testOnBorrow || testOnReturn || testWhileIdle) { populatePoolValidationProperties(builder, poolingElement, testOnBorrow, testOnReturn, testWhileIdle); @@ -310,9 +307,9 @@ public class ContextSourceParser implements BeanDefinitionParser { BeanDefinitionBuilder validatorBuilder = BeanDefinitionBuilder .rootBeanDefinition(DefaultDirContextValidator.class); - validatorBuilder.addPropertyValue("base", getString(element, ATT_VALIDATION_QUERY_BASE, "")); + validatorBuilder.addPropertyValue("base", ParserUtils.getString(element, ATT_VALIDATION_QUERY_BASE, "")); validatorBuilder.addPropertyValue("filter", - getString(element, ATT_VALIDATION_QUERY_FILTER, DefaultDirContextValidator.DEFAULT_FILTER)); + ParserUtils.getString(element, ATT_VALIDATION_QUERY_FILTER, DefaultDirContextValidator.DEFAULT_FILTER)); String searchControlsRef = element.getAttribute(ATT_VALIDATION_QUERY_SEARCH_CONTROLS_REF); if (StringUtils.hasText(searchControlsRef)) { validatorBuilder.addPropertyReference("searchControls", searchControlsRef); @@ -320,13 +317,13 @@ public class ContextSourceParser implements BeanDefinitionParser { builder.addPropertyValue("dirContextValidator", validatorBuilder.getBeanDefinition()); builder.addPropertyValue("timeBetweenEvictionRunsMillis", - getString(element, ATT_EVICTION_RUN_MILLIS, String.valueOf(DEFAULT_EVICTION_RUN_MILLIS))); + ParserUtils.getString(element, ATT_EVICTION_RUN_MILLIS, String.valueOf(DEFAULT_EVICTION_RUN_MILLIS))); builder.addPropertyValue("numTestsPerEvictionRun", - getInt(element, ATT_TESTS_PER_EVICTION_RUN, DEFAULT_TESTS_PER_EVICTION_RUN)); + ParserUtils.getInt(element, ATT_TESTS_PER_EVICTION_RUN, DEFAULT_TESTS_PER_EVICTION_RUN)); builder.addPropertyValue("minEvictableIdleTimeMillis", - getString(element, ATT_EVICTABLE_TIME_MILLIS, String.valueOf(DEFAULT_EVICTABLE_MILLIS))); + ParserUtils.getString(element, ATT_EVICTABLE_TIME_MILLIS, String.valueOf(DEFAULT_EVICTABLE_MILLIS))); - String nonTransientExceptions = getString(element, ATT_NON_TRANSIENT_EXCEPTIONS, + String nonTransientExceptions = ParserUtils.getString(element, ATT_NON_TRANSIENT_EXCEPTIONS, CommunicationException.class.getName()); String[] strings = StringUtils.commaDelimitedListToStringArray(nonTransientExceptions); Set> nonTransientExceptionClasses = new HashSet>(); @@ -334,8 +331,8 @@ public class ContextSourceParser implements BeanDefinitionParser { try { nonTransientExceptionClasses.add(ClassUtils.getDefaultClassLoader().loadClass(className)); } - catch (ClassNotFoundException e) { - throw new IllegalArgumentException(String.format("%s is not a valid class name", className), e); + catch (ClassNotFoundException ex) { + throw new IllegalArgumentException(String.format("%s is not a valid class name", className), ex); } } @@ -346,8 +343,8 @@ public class ContextSourceParser implements BeanDefinitionParser { BeanDefinitionBuilder validatorBuilder = BeanDefinitionBuilder .rootBeanDefinition(org.springframework.ldap.pool2.validation.DefaultDirContextValidator.class); - validatorBuilder.addPropertyValue("base", getString(element, ATT_VALIDATION_QUERY_BASE, "")); - validatorBuilder.addPropertyValue("filter", getString(element, ATT_VALIDATION_QUERY_FILTER, + validatorBuilder.addPropertyValue("base", ParserUtils.getString(element, ATT_VALIDATION_QUERY_BASE, "")); + validatorBuilder.addPropertyValue("filter", ParserUtils.getString(element, ATT_VALIDATION_QUERY_FILTER, org.springframework.ldap.pool2.validation.DefaultDirContextValidator.DEFAULT_FILTER)); String searchControlsRef = element.getAttribute(ATT_VALIDATION_QUERY_SEARCH_CONTROLS_REF); if (StringUtils.hasText(searchControlsRef)) { @@ -355,7 +352,7 @@ public class ContextSourceParser implements BeanDefinitionParser { } builder.addPropertyValue("dirContextValidator", validatorBuilder.getBeanDefinition()); - String nonTransientExceptions = getString(element, ATT_NON_TRANSIENT_EXCEPTIONS, + String nonTransientExceptions = ParserUtils.getString(element, ATT_NON_TRANSIENT_EXCEPTIONS, CommunicationException.class.getName()); String[] strings = StringUtils.commaDelimitedListToStringArray(nonTransientExceptions); Set> nonTransientExceptionClasses = new HashSet>(); @@ -363,8 +360,8 @@ public class ContextSourceParser implements BeanDefinitionParser { try { nonTransientExceptionClasses.add(ClassUtils.getDefaultClassLoader().loadClass(className)); } - catch (ClassNotFoundException e) { - throw new IllegalArgumentException(String.format("%s is not a valid class name", className), e); + catch (ClassNotFoundException ex) { + throw new IllegalArgumentException(String.format("%s is not a valid class name", className), ex); } } @@ -375,36 +372,38 @@ public class ContextSourceParser implements BeanDefinitionParser { BeanDefinitionBuilder configBuilder = BeanDefinitionBuilder.rootBeanDefinition(PoolConfig.class); configBuilder.addPropertyValue("maxTotal", - getString(element, ATT_MAX_TOTAL, String.valueOf(DEFAULT_MAX_TOTAL))); + ParserUtils.getString(element, ATT_MAX_TOTAL, String.valueOf(DEFAULT_MAX_TOTAL))); configBuilder.addPropertyValue("maxTotalPerKey", - getString(element, ATT_MAX_TOTAL_PER_KEY, String.valueOf(DEFAULT_MAX_TOTAL_PER_KEY))); + ParserUtils.getString(element, ATT_MAX_TOTAL_PER_KEY, String.valueOf(DEFAULT_MAX_TOTAL_PER_KEY))); configBuilder.addPropertyValue("maxIdlePerKey", - getString(element, ATT_MAX_IDLE_PER_KEY, String.valueOf(DEFAULT_MAX_IDLE_PER_KEY))); + ParserUtils.getString(element, ATT_MAX_IDLE_PER_KEY, String.valueOf(DEFAULT_MAX_IDLE_PER_KEY))); configBuilder.addPropertyValue("minIdlePerKey", - getString(element, ATT_MIN_IDLE_PER_KEY, String.valueOf(DEFAULT_MIN_IDLE_PER_KEY))); + ParserUtils.getString(element, ATT_MIN_IDLE_PER_KEY, String.valueOf(DEFAULT_MIN_IDLE_PER_KEY))); configBuilder.addPropertyValue("evictionPolicyClassName", - getString(element, ATT_EVICTION_POLICY_CLASS, DEFAULT_EVICTION_POLICY_CLASS_NAME)); - configBuilder.addPropertyValue("fairness", getBoolean(element, ATT_FAIRNESS, DEFAULT_FAIRNESS)); - configBuilder.addPropertyValue("jmxEnabled", getBoolean(element, ATT_JMX_ENABLE, DEFAULT_JMX_ENABLE)); - configBuilder.addPropertyValue("jmxNameBase", getString(element, ATT_JMX_NAME_BASE, DEFAULT_JMX_NAME_BASE)); + ParserUtils.getString(element, ATT_EVICTION_POLICY_CLASS, DEFAULT_EVICTION_POLICY_CLASS_NAME)); + configBuilder.addPropertyValue("fairness", ParserUtils.getBoolean(element, ATT_FAIRNESS, DEFAULT_FAIRNESS)); + configBuilder.addPropertyValue("jmxEnabled", + ParserUtils.getBoolean(element, ATT_JMX_ENABLE, DEFAULT_JMX_ENABLE)); + configBuilder.addPropertyValue("jmxNameBase", + ParserUtils.getString(element, ATT_JMX_NAME_BASE, DEFAULT_JMX_NAME_BASE)); configBuilder.addPropertyValue("jmxNamePrefix", - getString(element, ATT_JMX_NAME_PREFIX, DEFAULT_JMX_NAME_PREFIX)); - configBuilder.addPropertyValue("lifo", getBoolean(element, ATT_LIFO, DEFAULT_LIFO)); + ParserUtils.getString(element, ATT_JMX_NAME_PREFIX, DEFAULT_JMX_NAME_PREFIX)); + configBuilder.addPropertyValue("lifo", ParserUtils.getBoolean(element, ATT_LIFO, DEFAULT_LIFO)); configBuilder.addPropertyValue("maxWaitMillis", - getString(element, ATT_MAX_WAIT, String.valueOf(DEFAULT_MAX_WAIT_MILLIS))); - configBuilder.addPropertyValue("blockWhenExhausted", Boolean - .valueOf(getString(element, ATT_BLOCK_WHEN_EXHAUSTED, String.valueOf(DEFAULT_BLOCK_WHEN_EXHAUSTED)))); - configBuilder.addPropertyValue("testOnBorrow", getBoolean(element, ATT_TEST_ON_BORROW, false)); - configBuilder.addPropertyValue("testOnCreate", getBoolean(element, ATT_TEST_ON_CREATE, false)); - configBuilder.addPropertyValue("testOnReturn", getBoolean(element, ATT_TEST_ON_RETURN, false)); - configBuilder.addPropertyValue("testWhileIdle", getBoolean(element, ATT_TEST_WHILE_IDLE, false)); + ParserUtils.getString(element, ATT_MAX_WAIT, String.valueOf(DEFAULT_MAX_WAIT_MILLIS))); + configBuilder.addPropertyValue("blockWhenExhausted", Boolean.valueOf(ParserUtils.getString(element, + ATT_BLOCK_WHEN_EXHAUSTED, String.valueOf(DEFAULT_BLOCK_WHEN_EXHAUSTED)))); + configBuilder.addPropertyValue("testOnBorrow", ParserUtils.getBoolean(element, ATT_TEST_ON_BORROW, false)); + configBuilder.addPropertyValue("testOnCreate", ParserUtils.getBoolean(element, ATT_TEST_ON_CREATE, false)); + configBuilder.addPropertyValue("testOnReturn", ParserUtils.getBoolean(element, ATT_TEST_ON_RETURN, false)); + configBuilder.addPropertyValue("testWhileIdle", ParserUtils.getBoolean(element, ATT_TEST_WHILE_IDLE, false)); configBuilder.addPropertyValue("timeBetweenEvictionRunsMillis", - getString(element, ATT_EVICTION_RUN_MILLIS, String.valueOf(DEFAULT_EVICTION_RUN_MILLIS))); - configBuilder.addPropertyValue("numTestsPerEvictionRun", - getString(element, ATT_TESTS_PER_EVICTION_RUN, String.valueOf(DEFAULT_TESTS_PER_EVICTION_RUN))); + ParserUtils.getString(element, ATT_EVICTION_RUN_MILLIS, String.valueOf(DEFAULT_EVICTION_RUN_MILLIS))); + configBuilder.addPropertyValue("numTestsPerEvictionRun", ParserUtils.getString(element, + ATT_TESTS_PER_EVICTION_RUN, String.valueOf(DEFAULT_TESTS_PER_EVICTION_RUN))); configBuilder.addPropertyValue("minEvictableIdleTimeMillis", - getString(element, ATT_EVICTABLE_TIME_MILLIS, String.valueOf(DEFAULT_EVICTABLE_MILLIS))); - configBuilder.addPropertyValue("softMinEvictableIdleTimeMillis", getString(element, + ParserUtils.getString(element, ATT_EVICTABLE_TIME_MILLIS, String.valueOf(DEFAULT_EVICTABLE_MILLIS))); + configBuilder.addPropertyValue("softMinEvictableIdleTimeMillis", ParserUtils.getString(element, ATT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS, String.valueOf(DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS))); builder.addConstructorArgValue(configBuilder.getBeanDefinition()); @@ -412,9 +411,11 @@ public class ContextSourceParser implements BeanDefinitionParser { static class UrlsFactory { + // CHECKSTYLE:OFF public static String[] urls(String value) { return StringUtils.commaDelimitedListToStringArray(value); } + // CHECKSTYLE:ON } diff --git a/core/src/main/java/org/springframework/ldap/config/DefaultRenamingStrategyParser.java b/core/src/main/java/org/springframework/ldap/config/DefaultRenamingStrategyParser.java index 5be60836..87d7d91f 100644 --- a/core/src/main/java/org/springframework/ldap/config/DefaultRenamingStrategyParser.java +++ b/core/src/main/java/org/springframework/ldap/config/DefaultRenamingStrategyParser.java @@ -25,8 +25,6 @@ import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.ldap.transaction.compensating.support.DefaultTempEntryRenamingStrategy; -import static org.springframework.ldap.config.ParserUtils.getString; - /** * @author Mattias Hellborg Arthursson */ @@ -40,7 +38,7 @@ public class DefaultRenamingStrategyParser implements BeanDefinitionParser { .rootBeanDefinition(DefaultTempEntryRenamingStrategy.class); builder.addPropertyValue("tempSuffix", - getString(element, ATT_TEMP_SUFFIX, DefaultTempEntryRenamingStrategy.DEFAULT_TEMP_SUFFIX)); + ParserUtils.getString(element, ATT_TEMP_SUFFIX, DefaultTempEntryRenamingStrategy.DEFAULT_TEMP_SUFFIX)); AbstractBeanDefinition beanDefinition = builder.getBeanDefinition(); parserContext.getContainingBeanDefinition().getPropertyValues().addPropertyValue("renamingStrategy", diff --git a/core/src/main/java/org/springframework/ldap/config/LdapTemplateParser.java b/core/src/main/java/org/springframework/ldap/config/LdapTemplateParser.java index 7bfbbd5e..0bf676de 100644 --- a/core/src/main/java/org/springframework/ldap/config/LdapTemplateParser.java +++ b/core/src/main/java/org/springframework/ldap/config/LdapTemplateParser.java @@ -28,10 +28,6 @@ import org.springframework.ldap.core.LdapTemplate; import org.springframework.ldap.query.SearchScope; import org.springframework.util.StringUtils; -import static org.springframework.ldap.config.ParserUtils.getBoolean; -import static org.springframework.ldap.config.ParserUtils.getInt; -import static org.springframework.ldap.config.ParserUtils.getString; - /** * @author Mattias Hellborg Arthursson */ @@ -61,22 +57,26 @@ public class LdapTemplateParser implements BeanDefinitionParser { public BeanDefinition parse(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(LdapTemplate.class); - String contextSourceRef = getString(element, ATT_CONTEXT_SOURCE_REF, ContextSourceParser.DEFAULT_ID); + String contextSourceRef = ParserUtils.getString(element, ATT_CONTEXT_SOURCE_REF, + ContextSourceParser.DEFAULT_ID); builder.addPropertyReference("contextSource", contextSourceRef); - builder.addPropertyValue("defaultCountLimit", getInt(element, ATT_COUNT_LIMIT, DEFAULT_COUNT_LIMIT)); - builder.addPropertyValue("defaultTimeLimit", getInt(element, ATT_TIME_LIMIT, DEFAULT_TIME_LIMIT)); + builder.addPropertyValue("defaultCountLimit", + ParserUtils.getInt(element, ATT_COUNT_LIMIT, DEFAULT_COUNT_LIMIT)); + builder.addPropertyValue("defaultTimeLimit", ParserUtils.getInt(element, ATT_TIME_LIMIT, DEFAULT_TIME_LIMIT)); - String searchScope = getString(element, ATT_SEARCH_SCOPE, SearchScope.SUBTREE.toString()); + String searchScope = ParserUtils.getString(element, ATT_SEARCH_SCOPE, SearchScope.SUBTREE.toString()); builder.addPropertyValue("defaultSearchScope", SearchScope.valueOf(searchScope).getId()); - builder.addPropertyValue("ignorePartialResultException", getBoolean(element, ATT_IGNORE_PARTIAL_RESULT, false)); - builder.addPropertyValue("ignoreNameNotFoundException", getBoolean(element, ATT_IGNORE_NAME_NOT_FOUND, false)); + builder.addPropertyValue("ignorePartialResultException", + ParserUtils.getBoolean(element, ATT_IGNORE_PARTIAL_RESULT, false)); + builder.addPropertyValue("ignoreNameNotFoundException", + ParserUtils.getBoolean(element, ATT_IGNORE_NAME_NOT_FOUND, false)); String odmRef = element.getAttribute(ATT_ODM_REF); if (StringUtils.hasText(odmRef)) { builder.addPropertyReference("objectDirectoryMapper", odmRef); } - String id = getString(element, AbstractBeanDefinitionParser.ID_ATTRIBUTE, DEFAULT_ID); + String id = ParserUtils.getString(element, AbstractBeanDefinitionParser.ID_ATTRIBUTE, DEFAULT_ID); BeanDefinition beanDefinition = builder.getBeanDefinition(); parserContext.registerBeanComponent(new BeanComponentDefinition(beanDefinition, id)); diff --git a/core/src/main/java/org/springframework/ldap/config/TransactionManagerParser.java b/core/src/main/java/org/springframework/ldap/config/TransactionManagerParser.java index aad9c001..18b4b870 100644 --- a/core/src/main/java/org/springframework/ldap/config/TransactionManagerParser.java +++ b/core/src/main/java/org/springframework/ldap/config/TransactionManagerParser.java @@ -33,8 +33,6 @@ import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.util.xml.DomUtils; -import static org.springframework.ldap.config.ParserUtils.getString; - /** * @author Mattias Hellborg Arthursson */ @@ -55,7 +53,8 @@ public class TransactionManagerParser implements BeanDefinitionParser { @Override public BeanDefinition parse(Element element, ParserContext parserContext) { - String contextSourceRef = getString(element, ATT_CONTEXT_SOURCE_REF, ContextSourceParser.DEFAULT_ID); + String contextSourceRef = ParserUtils.getString(element, ATT_CONTEXT_SOURCE_REF, + ContextSourceParser.DEFAULT_ID); String dataSourceRef = element.getAttribute(ATT_DATA_SOURCE_REF); String sessionFactoryRef = element.getAttribute(ATT_SESSION_FACTORY_REF); @@ -92,7 +91,7 @@ public class TransactionManagerParser implements BeanDefinitionParser { builder.addPropertyValue("renamingStrategy", parseDifferentSubtreeRenamingStrategy(differentSubtreeChild)); } - String id = getString(element, AbstractBeanDefinitionParser.ID_ATTRIBUTE, DEFAULT_ID); + String id = ParserUtils.getString(element, AbstractBeanDefinitionParser.ID_ATTRIBUTE, DEFAULT_ID); BeanDefinition beanDefinition = builder.getBeanDefinition(); parserContext.registerBeanComponent(new BeanComponentDefinition(beanDefinition, id)); @@ -117,7 +116,7 @@ public class TransactionManagerParser implements BeanDefinitionParser { .rootBeanDefinition(DefaultTempEntryRenamingStrategy.class); builder.addPropertyValue("tempSuffix", - getString(element, ATT_TEMP_SUFFIX, DefaultTempEntryRenamingStrategy.DEFAULT_TEMP_SUFFIX)); + ParserUtils.getString(element, ATT_TEMP_SUFFIX, DefaultTempEntryRenamingStrategy.DEFAULT_TEMP_SUFFIX)); return builder.getBeanDefinition(); } diff --git a/core/src/main/java/org/springframework/ldap/control/AbstractFallbackRequestAndResponseControlDirContextProcessor.java b/core/src/main/java/org/springframework/ldap/control/AbstractFallbackRequestAndResponseControlDirContextProcessor.java index 4a0d620b..a3ff9e73 100644 --- a/core/src/main/java/org/springframework/ldap/control/AbstractFallbackRequestAndResponseControlDirContextProcessor.java +++ b/core/src/main/java/org/springframework/ldap/control/AbstractFallbackRequestAndResponseControlDirContextProcessor.java @@ -110,8 +110,8 @@ public abstract class AbstractFallbackRequestAndResponseControlDirContextProcess this.requestControlClass = Class.forName(this.defaultRequestControl); this.responseControlClass = Class.forName(this.defaultResponseControl); } - catch (ClassNotFoundException e) { - this.log.debug("Default control classes not found - falling back to LdapBP classes", e); + catch (ClassNotFoundException ex) { + this.log.debug("Default control classes not found - falling back to LdapBP classes", ex); try { this.requestControlClass = Class.forName(this.fallbackRequestControl); @@ -119,7 +119,7 @@ public abstract class AbstractFallbackRequestAndResponseControlDirContextProcess } catch (ClassNotFoundException e1) { throw new UncategorizedLdapException( - "Neither default nor fallback classes are available - unable to proceed", e); + "Neither default nor fallback classes are available - unable to proceed", ex); } } } @@ -165,8 +165,8 @@ public abstract class AbstractFallbackRequestAndResponseControlDirContextProcess try { result = (Control) constructor.newInstance(params); } - catch (Exception e) { - ReflectionUtils.handleReflectionException(e); + catch (Exception ex) { + ReflectionUtils.handleReflectionException(ex); } return result; diff --git a/core/src/main/java/org/springframework/ldap/control/PagedResult.java b/core/src/main/java/org/springframework/ldap/control/PagedResult.java index d04b7919..97ba2b08 100644 --- a/core/src/main/java/org/springframework/ldap/control/PagedResult.java +++ b/core/src/main/java/org/springframework/ldap/control/PagedResult.java @@ -60,25 +60,29 @@ public class PagedResult { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } PagedResult that = (PagedResult) o; - if (this.cookie != null ? !this.cookie.equals(that.cookie) : that.cookie != null) + if ((this.cookie != null) ? !this.cookie.equals(that.cookie) : that.cookie != null) { return false; - if (this.resultList != null ? !this.resultList.equals(that.resultList) : that.resultList != null) + } + if ((this.resultList != null) ? !this.resultList.equals(that.resultList) : that.resultList != null) { return false; + } return true; } @Override public int hashCode() { - int result = this.resultList != null ? this.resultList.hashCode() : 0; - result = 31 * result + (this.cookie != null ? this.cookie.hashCode() : 0); + int result = (this.resultList != null) ? this.resultList.hashCode() : 0; + result = 31 * result + ((this.cookie != null) ? this.cookie.hashCode() : 0); return result; } diff --git a/core/src/main/java/org/springframework/ldap/control/PagedResultsCookie.java b/core/src/main/java/org/springframework/ldap/control/PagedResultsCookie.java index 284b5909..e90b69fb 100644 --- a/core/src/main/java/org/springframework/ldap/control/PagedResultsCookie.java +++ b/core/src/main/java/org/springframework/ldap/control/PagedResultsCookie.java @@ -59,22 +59,25 @@ public class PagedResultsCookie { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } PagedResultsCookie that = (PagedResultsCookie) o; - if (!Arrays.equals(this.cookie, that.cookie)) + if (!Arrays.equals(this.cookie, that.cookie)) { return false; + } return true; } @Override public int hashCode() { - return this.cookie != null ? Arrays.hashCode(this.cookie) : 0; + return (this.cookie != null) ? Arrays.hashCode(this.cookie) : 0; } } diff --git a/core/src/main/java/org/springframework/ldap/control/PagedResultsRequestControl.java b/core/src/main/java/org/springframework/ldap/control/PagedResultsRequestControl.java index 3ec365f4..f5a5a8be 100644 --- a/core/src/main/java/org/springframework/ldap/control/PagedResultsRequestControl.java +++ b/core/src/main/java/org/springframework/ldap/control/PagedResultsRequestControl.java @@ -93,8 +93,8 @@ public class PagedResultsRequestControl extends AbstractRequestControlDirContext this.requestControlClass = Class.forName(DEFAULT_REQUEST_CONTROL); this.responseControlClass = Class.forName(DEFAULT_RESPONSE_CONTROL); } - catch (ClassNotFoundException e) { - this.log.debug("Default control classes not found - falling back to LdapBP classes", e); + catch (ClassNotFoundException ex) { + this.log.debug("Default control classes not found - falling back to LdapBP classes", ex); try { this.requestControlClass = Class.forName(LDAPBP_REQUEST_CONTROL); @@ -102,7 +102,7 @@ public class PagedResultsRequestControl extends AbstractRequestControlDirContext } catch (ClassNotFoundException e1) { throw new UncategorizedLdapException( - "Neither default nor fallback classes are available - unable to proceed", e); + "Neither default nor fallback classes are available - unable to proceed", ex); } } @@ -166,8 +166,8 @@ public class PagedResultsRequestControl extends AbstractRequestControlDirContext try { result = (Control) constructor.newInstance(this.pageSize, actualCookie, this.critical); } - catch (Exception e) { - ReflectionUtils.handleReflectionException(e); + catch (Exception ex) { + ReflectionUtils.handleReflectionException(ex); } return result; diff --git a/core/src/main/java/org/springframework/ldap/core/AttributesMapperCallbackHandler.java b/core/src/main/java/org/springframework/ldap/core/AttributesMapperCallbackHandler.java index 2d8c4e29..d403882d 100644 --- a/core/src/main/java/org/springframework/ldap/core/AttributesMapperCallbackHandler.java +++ b/core/src/main/java/org/springframework/ldap/core/AttributesMapperCallbackHandler.java @@ -59,9 +59,9 @@ public class AttributesMapperCallbackHandler extends CollectingNameClassPairC try { return this.mapper.mapFromAttributes(attributes); } - catch (javax.naming.NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (javax.naming.NamingException ex) { + throw LdapUtils.convertLdapException(ex); } } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/core/CollectingAuthenticationErrorCallback.java b/core/src/main/java/org/springframework/ldap/core/CollectingAuthenticationErrorCallback.java index 7ef62c8f..e0a8308f 100644 --- a/core/src/main/java/org/springframework/ldap/core/CollectingAuthenticationErrorCallback.java +++ b/core/src/main/java/org/springframework/ldap/core/CollectingAuthenticationErrorCallback.java @@ -56,4 +56,4 @@ public final class CollectingAuthenticationErrorCallback implements Authenticati return this.error != null; } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/core/ContextMapperCallbackHandler.java b/core/src/main/java/org/springframework/ldap/core/ContextMapperCallbackHandler.java index d5a13259..dfee6f9c 100644 --- a/core/src/main/java/org/springframework/ldap/core/ContextMapperCallbackHandler.java +++ b/core/src/main/java/org/springframework/ldap/core/ContextMapperCallbackHandler.java @@ -65,4 +65,4 @@ public class ContextMapperCallbackHandler extends CollectingNameClassPairCall return this.mapper.mapFromContext(object); } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/core/ContextSource.java b/core/src/main/java/org/springframework/ldap/core/ContextSource.java index e7756773..bcc4858f 100644 --- a/core/src/main/java/org/springframework/ldap/core/ContextSource.java +++ b/core/src/main/java/org/springframework/ldap/core/ContextSource.java @@ -61,4 +61,4 @@ public interface ContextSource { */ DirContext getContext(String principal, String credentials) throws NamingException; -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/core/DefaultLdapClient.java b/core/src/main/java/org/springframework/ldap/core/DefaultLdapClient.java index a8ee6152..3e6e8ec7 100644 --- a/core/src/main/java/org/springframework/ldap/core/DefaultLdapClient.java +++ b/core/src/main/java/org/springframework/ldap/core/DefaultLdapClient.java @@ -182,6 +182,192 @@ class DefaultLdapClient implements LdapClient { this.ignoreSizeLimitExceededException = ignoreSizeLimitExceededException; } + T computeWithReadOnlyContext(ContextExecutor executor) { + DirContext context = this.contextSource.getReadOnlyContext(); + try { + return executor.executeWithContext(context); + } + catch (NamingException ex) { + this.namingExceptionHandler.accept(ex); + return null; + } + finally { + closeContext(context); + } + } + + void runWithReadWriteContext(ContextRunnable runnable) { + DirContext context = this.contextSource.getReadWriteContext(); + try { + runnable.run(context); + } + catch (NamingException ex) { + this.namingExceptionHandler.accept(ex); + } + finally { + closeContext(context); + } + } + + private NamingExceptionFunction function(ContextMapper mapper) { + return (result) -> mapper.mapFromContext(result.getObject()); + } + + private NamingExceptionFunction function(AttributesMapper mapper) { + return (result) -> mapper.mapFromAttributes(result.getAttributes()); + } + + private Enumeration enumeration(NamingEnumeration enumeration) { + return new Enumeration<>() { + @Override + public boolean hasMoreElements() { + try { + return enumeration.hasMore(); + } + catch (NamingException ex) { + DefaultLdapClient.this.namingExceptionHandler.accept(ex); + return false; + } + } + + @Override + public T nextElement() { + try { + return enumeration.next(); + } + catch (NamingException ex) { + DefaultLdapClient.this.namingExceptionHandler.accept(ex); + throw new NoSuchElementException("no such element", ex); + } + } + }; + } + + private final Consumer namingExceptionHandler = (ex) -> { + if (ex instanceof NameNotFoundException) { + if (!this.ignoreNameNotFoundException) { + throw LdapUtils.convertLdapException(ex); + } + this.logger.warn("Base context not found, ignoring: " + ex.getMessage()); + return; + } + if (ex instanceof PartialResultException) { + // Workaround for AD servers not handling referrals correctly. + if (!this.ignorePartialResultException) { + throw LdapUtils.convertLdapException(ex); + } + this.logger.debug("PartialResultException encountered and ignored", ex); + return; + } + if (ex instanceof SizeLimitExceededException) { + if (!this.ignoreSizeLimitExceededException) { + throw LdapUtils.convertLdapException(ex); + } + this.logger.debug("SizeLimitExceededException encountered and ignored", ex); + return; + } + throw LdapUtils.convertLdapException(ex); + }; + + private T toObject(NamingEnumeration results, + NamingExceptionFunction mapper) { + try { + Enumeration enumeration = enumeration(results); + Function function = mapper.wrap(this.namingExceptionHandler); + if (!enumeration.hasMoreElements()) { + return null; + } + T result = function.apply(enumeration.nextElement()); + if (enumeration.hasMoreElements()) { + throw new IncorrectResultSizeDataAccessException(1); + } + return result; + } + finally { + closeNamingEnumeration(results); + } + } + + private List toList(NamingEnumeration results, + NamingExceptionFunction mapper) { + if (results == null) { + return Collections.emptyList(); + } + try { + Enumeration enumeration = enumeration(results); + Function function = mapper.wrap(this.namingExceptionHandler); + List mapped = new ArrayList<>(); + while (enumeration.hasMoreElements()) { + T result = function.apply(enumeration.nextElement()); + if (result != null) { + mapped.add(result); + } + } + return mapped; + } + finally { + closeNamingEnumeration(results); + } + } + + private Stream toStream(NamingEnumeration results, + NamingExceptionFunction mapper) { + if (results == null) { + return Stream.empty(); + } + Enumeration enumeration = enumeration(results); + Function function = mapper.wrap(this.namingExceptionHandler); + return StreamSupport + .stream(Spliterators.spliteratorUnknownSize(enumeration.asIterator(), Spliterator.ORDERED), false) + .map(function::apply).filter(Objects::nonNull).onClose(() -> closeNamingEnumeration(results)); + } + + private void closeContext(DirContext ctx) { + if (ctx != null) { + try { + ctx.close(); + } + catch (Exception ex) { + // Never mind this. + } + } + } + + private void closeNamingEnumeration(NamingEnumeration results) { + if (results != null) { + try { + results.close(); + } + catch (Exception ex) { + // Never mind this. + } + } + } + + interface ContextRunnable { + + void run(DirContext ctx) throws NamingException; + + } + + interface NamingExceptionFunction { + + T apply(S element) throws NamingException; + + default Function wrap(Consumer handler) { + return (s) -> { + try { + return apply(s); + } + catch (NamingException ex) { + handler.accept(ex); + return null; + } + }; + } + + } + private final class DefaultListSpec implements ListSpec { private final Name name; @@ -475,12 +661,12 @@ class DefaultLdapClient implements LdapClient { runWithReadWriteContext((ctx) -> ctx.modifyAttributes(this.name, this.items)); } } - catch (Throwable t) { + catch (Throwable th) { if (renamed) { // attempt to change the name back runWithReadWriteContext((ctx) -> ctx.rename(this.name, this.entry.getDn())); } - throw t; + throw th; } } @@ -533,190 +719,4 @@ class DefaultLdapClient implements LdapClient { } - T computeWithReadOnlyContext(ContextExecutor executor) { - DirContext context = this.contextSource.getReadOnlyContext(); - try { - return executor.executeWithContext(context); - } - catch (NamingException ex) { - this.namingExceptionHandler.accept(ex); - return null; - } - finally { - closeContext(context); - } - } - - void runWithReadWriteContext(ContextRunnable runnable) { - DirContext context = this.contextSource.getReadWriteContext(); - try { - runnable.run(context); - } - catch (NamingException ex) { - this.namingExceptionHandler.accept(ex); - } - finally { - closeContext(context); - } - } - - private NamingExceptionFunction function(ContextMapper mapper) { - return (result) -> mapper.mapFromContext(result.getObject()); - } - - private NamingExceptionFunction function(AttributesMapper mapper) { - return (result) -> mapper.mapFromAttributes(result.getAttributes()); - } - - private Enumeration enumeration(NamingEnumeration enumeration) { - return new Enumeration<>() { - @Override - public boolean hasMoreElements() { - try { - return enumeration.hasMore(); - } - catch (NamingException ex) { - DefaultLdapClient.this.namingExceptionHandler.accept(ex); - return false; - } - } - - @Override - public T nextElement() { - try { - return enumeration.next(); - } - catch (NamingException ex) { - DefaultLdapClient.this.namingExceptionHandler.accept(ex); - throw new NoSuchElementException("no such element", ex); - } - } - }; - } - - private final Consumer namingExceptionHandler = (ex) -> { - if (ex instanceof NameNotFoundException) { - if (!this.ignoreNameNotFoundException) { - throw LdapUtils.convertLdapException(ex); - } - this.logger.warn("Base context not found, ignoring: " + ex.getMessage()); - return; - } - if (ex instanceof PartialResultException) { - // Workaround for AD servers not handling referrals correctly. - if (!this.ignorePartialResultException) { - throw LdapUtils.convertLdapException(ex); - } - this.logger.debug("PartialResultException encountered and ignored", ex); - return; - } - if (ex instanceof SizeLimitExceededException) { - if (!this.ignoreSizeLimitExceededException) { - throw LdapUtils.convertLdapException(ex); - } - this.logger.debug("SizeLimitExceededException encountered and ignored", ex); - return; - } - throw LdapUtils.convertLdapException(ex); - }; - - private T toObject(NamingEnumeration results, - NamingExceptionFunction mapper) { - try { - Enumeration enumeration = enumeration(results); - Function function = mapper.wrap(this.namingExceptionHandler); - if (!enumeration.hasMoreElements()) { - return null; - } - T result = function.apply(enumeration.nextElement()); - if (enumeration.hasMoreElements()) { - throw new IncorrectResultSizeDataAccessException(1); - } - return result; - } - finally { - closeNamingEnumeration(results); - } - } - - private List toList(NamingEnumeration results, - NamingExceptionFunction mapper) { - if (results == null) { - return Collections.emptyList(); - } - try { - Enumeration enumeration = enumeration(results); - Function function = mapper.wrap(this.namingExceptionHandler); - List mapped = new ArrayList<>(); - while (enumeration.hasMoreElements()) { - T result = function.apply(enumeration.nextElement()); - if (result != null) { - mapped.add(result); - } - } - return mapped; - } - finally { - closeNamingEnumeration(results); - } - } - - private Stream toStream(NamingEnumeration results, - NamingExceptionFunction mapper) { - if (results == null) { - return Stream.empty(); - } - Enumeration enumeration = enumeration(results); - Function function = mapper.wrap(this.namingExceptionHandler); - return StreamSupport - .stream(Spliterators.spliteratorUnknownSize(enumeration.asIterator(), Spliterator.ORDERED), false) - .map(function::apply).filter(Objects::nonNull).onClose(() -> closeNamingEnumeration(results)); - } - - private void closeContext(DirContext ctx) { - if (ctx != null) { - try { - ctx.close(); - } - catch (Exception e) { - // Never mind this. - } - } - } - - private void closeNamingEnumeration(NamingEnumeration results) { - if (results != null) { - try { - results.close(); - } - catch (Exception e) { - // Never mind this. - } - } - } - - interface ContextRunnable { - - void run(DirContext ctx) throws NamingException; - - } - - interface NamingExceptionFunction { - - T apply(S element) throws NamingException; - - default Function wrap(Consumer handler) { - return (s) -> { - try { - return apply(s); - } - catch (NamingException ex) { - handler.accept(ex); - return null; - } - }; - } - - } - } diff --git a/core/src/main/java/org/springframework/ldap/core/DirContextAdapter.java b/core/src/main/java/org/springframework/ldap/core/DirContextAdapter.java index 3c5aa2c0..a0c61c5d 100644 --- a/core/src/main/java/org/springframework/ldap/core/DirContextAdapter.java +++ b/core/src/main/java/org/springframework/ldap/core/DirContextAdapter.java @@ -252,8 +252,8 @@ public class DirContextAdapter implements DirContextOperations { tmpList.add(oneAttribute.getID()); } } - catch (NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (NamingException ex) { + throw LdapUtils.convertLdapException(ex); } finally { closeNamingEnumeration(attributesEnumeration); @@ -268,7 +268,7 @@ public class DirContextAdapter implements DirContextOperations { enumeration.close(); } } - catch (NamingException e) { + catch (NamingException ex) { // Never mind this } } @@ -294,8 +294,8 @@ public class DirContextAdapter implements DirContextOperations { collectModifications(oneAttr, tmpList); } } - catch (NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (NamingException ex) { + throw LdapUtils.convertLdapException(ex); } finally { closeNamingEnumeration(attributesEnumeration); @@ -327,7 +327,7 @@ public class DirContextAdapter implements DirContextOperations { try { currentAttribute.initValuesAsNames(); } - catch (IllegalArgumentException e) { + catch (IllegalArgumentException ex) { log.warn("Incompatible attributes; changed attribute has Name values but " + "original cannot be converted to this"); } @@ -413,7 +413,7 @@ public class DirContextAdapter implements DirContextOperations { try { return (a == null || a.size() == 0 || a.get() == null); } - catch (NamingException e) { + catch (NamingException ex) { return true; } } @@ -470,14 +470,16 @@ public class DirContextAdapter implements DirContextOperations { // Check contents of arrays // Order DOES matter, e.g. first names - if (isAttributeUpdated(values, orderMatters, orig)) + if (isAttributeUpdated(values, orderMatters, orig)) { return true; + } if (prev != null) { // Also check against updatedAttrs, since there might have been // a previous update - if (isAttributeUpdated(values, orderMatters, prev)) + if (isAttributeUpdated(values, orderMatters, prev)) { return true; + } } // FALSE since we have compared all values return false; @@ -548,8 +550,8 @@ public class DirContextAdapter implements DirContextOperations { try { return oneAttr.get(); } - catch (NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (NamingException ex) { + throw LdapUtils.convertLdapException(ex); } } @@ -713,8 +715,8 @@ public class DirContextAdapter implements DirContextOperations { } } } - catch (NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (NamingException ex) { + throw LdapUtils.convertLdapException(ex); } finally { closeNamingEnumeration(attributesEnumeration); @@ -733,7 +735,7 @@ public class DirContextAdapter implements DirContextOperations { List objects = collectAttributeValuesAsList(name, String.class); return objects.toArray(new String[objects.size()]); } - catch (NoSuchAttributeException e) { + catch (NoSuchAttributeException ex) { // The attribute does not exist - contract says to return null. return null; } @@ -748,7 +750,7 @@ public class DirContextAdapter implements DirContextOperations { List list = collectAttributeValuesAsList(name, Object.class); return list.toArray(new Object[list.size()]); } - catch (NoSuchAttributeException e) { + catch (NoSuchAttributeException ex) { // The attribute does not exist - contract says to return null. return null; } @@ -770,7 +772,7 @@ public class DirContextAdapter implements DirContextOperations { LdapUtils.collectAttributeValues(this.originalAttrs, name, attrSet, String.class); return attrSet; } - catch (NoSuchAttributeException e) { + catch (NoSuchAttributeException ex) { // The attribute does not exist - contract says to return null. return null; } @@ -1265,8 +1267,8 @@ public class DirContextAdapter implements DirContextOperations { result.addAll(0, this.base); return result.toString(); } - catch (InvalidNameException e) { - throw new org.springframework.ldap.InvalidNameException(e); + catch (InvalidNameException ex) { + throw new org.springframework.ldap.InvalidNameException(ex); } } @@ -1297,25 +1299,34 @@ public class DirContextAdapter implements DirContextOperations { */ @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } DirContextAdapter that = (DirContextAdapter) o; - if (this.updateMode != that.updateMode) + if (this.updateMode != that.updateMode) { return false; - if (this.base != null ? !this.base.equals(that.base) : that.base != null) + } + if ((this.base != null) ? !this.base.equals(that.base) : that.base != null) { return false; - if (this.dn != null ? !this.dn.equals(that.dn) : that.dn != null) + } + if ((this.dn != null) ? !this.dn.equals(that.dn) : that.dn != null) { return false; - if (this.originalAttrs != null ? !this.originalAttrs.equals(that.originalAttrs) : that.originalAttrs != null) + } + if ((this.originalAttrs != null) ? !this.originalAttrs.equals(that.originalAttrs) + : that.originalAttrs != null) { return false; - if (this.referralUrl != null ? !this.referralUrl.equals(that.referralUrl) : that.referralUrl != null) + } + if ((this.referralUrl != null) ? !this.referralUrl.equals(that.referralUrl) : that.referralUrl != null) { return false; - if (this.updatedAttrs != null ? !this.updatedAttrs.equals(that.updatedAttrs) : that.updatedAttrs != null) + } + if ((this.updatedAttrs != null) ? !this.updatedAttrs.equals(that.updatedAttrs) : that.updatedAttrs != null) { return false; + } return true; } @@ -1325,12 +1336,12 @@ public class DirContextAdapter implements DirContextOperations { */ @Override public int hashCode() { - int result = this.originalAttrs != null ? this.originalAttrs.hashCode() : 0; - result = 31 * result + (this.dn != null ? this.dn.hashCode() : 0); - result = 31 * result + (this.base != null ? this.base.hashCode() : 0); + int result = (this.originalAttrs != null) ? this.originalAttrs.hashCode() : 0; + result = 31 * result + ((this.dn != null) ? this.dn.hashCode() : 0); + result = 31 * result + ((this.base != null) ? this.base.hashCode() : 0); result = 31 * result + (this.updateMode ? 1 : 0); - result = 31 * result + (this.updatedAttrs != null ? this.updatedAttrs.hashCode() : 0); - result = 31 * result + (this.referralUrl != null ? this.referralUrl.hashCode() : 0); + result = 31 * result + ((this.updatedAttrs != null) ? this.updatedAttrs.hashCode() : 0); + result = 31 * result + ((this.referralUrl != null) ? this.referralUrl.hashCode() : 0); return result; } @@ -1368,7 +1379,7 @@ public class DirContextAdapter implements DirContextOperations { } } } - catch (NamingException e) { + catch (NamingException ex) { log.warn("Error in toString()"); } builder.append('}'); diff --git a/core/src/main/java/org/springframework/ldap/core/DistinguishedName.java b/core/src/main/java/org/springframework/ldap/core/DistinguishedName.java index 7712876b..7fbfc09a 100644 --- a/core/src/main/java/org/springframework/ldap/core/DistinguishedName.java +++ b/core/src/main/java/org/springframework/ldap/core/DistinguishedName.java @@ -221,11 +221,11 @@ public class DistinguishedName implements Name { try { dn = parser.dn(); } - catch (ParseException e) { - throw new BadLdapGrammarException("Failed to parse DN", e); + catch (ParseException ex) { + throw new BadLdapGrammarException("Failed to parse DN", ex); } - catch (org.springframework.ldap.core.TokenMgrError e) { - throw new BadLdapGrammarException("Failed to parse DN", e); + catch (org.springframework.ldap.core.TokenMgrError ex) { + throw new BadLdapGrammarException("Failed to parse DN", ex); } this.names = dn.names; } @@ -512,9 +512,9 @@ public class DistinguishedName implements Name { result.names = new LinkedList(this.names); return result; } - catch (CloneNotSupportedException e) { + catch (CloneNotSupportedException ex) { LOG.error("CloneNotSupported thrown from superclass - this should not happen"); - throw new UncategorizedLdapException("Fatal error in clone", e); + throw new UncategorizedLdapException("Fatal error in clone", ex); } } @@ -693,8 +693,9 @@ public class DistinguishedName implements Name { LdapRdn longname = (LdapRdn) longiter.previous(); LdapRdn shortname = (LdapRdn) shortiter.previous(); - if (!longname.equals(shortname)) + if (!longname.equals(shortname)) { return false; + } } // if short list ended, all were equal @@ -721,7 +722,7 @@ public class DistinguishedName implements Name { try { distinguishedName = (DistinguishedName) name; } - catch (ClassCastException e) { + catch (ClassCastException ex) { throw new InvalidNameException("Invalid name type"); } @@ -747,7 +748,7 @@ public class DistinguishedName implements Name { try { this.names.add(index, new LdapRdn(string)); } - catch (BadLdapGrammarException e) { + catch (BadLdapGrammarException ex) { throw new InvalidNameException("Failed to parse rdn '" + string + "'"); } return this; diff --git a/core/src/main/java/org/springframework/ldap/core/LdapAttributes.java b/core/src/main/java/org/springframework/ldap/core/LdapAttributes.java index 1320a87d..ff3a4165 100644 --- a/core/src/main/java/org/springframework/ldap/core/LdapAttributes.java +++ b/core/src/main/java/org/springframework/ldap/core/LdapAttributes.java @@ -170,8 +170,8 @@ public class LdapAttributes extends BasicAttributes { } } - catch (NamingException e) { - log.error("Error formating attributes for output.", e); + catch (NamingException ex) { + log.error("Error formating attributes for output.", ex); sb = new StringBuilder(); } diff --git a/core/src/main/java/org/springframework/ldap/core/LdapClient.java b/core/src/main/java/org/springframework/ldap/core/LdapClient.java index c1de86d4..c95af76b 100644 --- a/core/src/main/java/org/springframework/ldap/core/LdapClient.java +++ b/core/src/main/java/org/springframework/ldap/core/LdapClient.java @@ -548,4 +548,4 @@ public interface LdapClient { } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/core/LdapRdn.java b/core/src/main/java/org/springframework/ldap/core/LdapRdn.java index 17ab533d..58de52c0 100644 --- a/core/src/main/java/org/springframework/ldap/core/LdapRdn.java +++ b/core/src/main/java/org/springframework/ldap/core/LdapRdn.java @@ -62,11 +62,11 @@ public class LdapRdn implements Serializable, Comparable { try { rdn = parser.rdn(); } - catch (ParseException e) { - throw new BadLdapGrammarException("Failed to parse Rdn", e); + catch (ParseException ex) { + throw new BadLdapGrammarException("Failed to parse Rdn", ex); } - catch (org.springframework.ldap.core.TokenMgrError e) { - throw new BadLdapGrammarException("Failed to parse Rdn", e); + catch (org.springframework.ldap.core.TokenMgrError ex) { + throw new BadLdapGrammarException("Failed to parse Rdn", ex); } this.components = rdn.components; } @@ -292,4 +292,4 @@ public class LdapRdn implements Serializable, Comparable { return immutableRdn; } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/core/LdapRdnComponent.java b/core/src/main/java/org/springframework/ldap/core/LdapRdnComponent.java index a0c92844..3a55f723 100644 --- a/core/src/main/java/org/springframework/ldap/core/LdapRdnComponent.java +++ b/core/src/main/java/org/springframework/ldap/core/LdapRdnComponent.java @@ -175,7 +175,7 @@ public class LdapRdnComponent implements Comparable, Serializable { URI valueUri = new URI(null, null, this.value, null); return this.key + "=" + valueUri.toString(); } - catch (URISyntaxException e) { + catch (URISyntaxException ex) { // This should really never happen... return this.key + "=" + "value"; } diff --git a/core/src/main/java/org/springframework/ldap/core/LdapTemplate.java b/core/src/main/java/org/springframework/ldap/core/LdapTemplate.java index 7012d9f8..95cce37b 100644 --- a/core/src/main/java/org/springframework/ldap/core/LdapTemplate.java +++ b/core/src/main/java/org/springframework/ldap/core/LdapTemplate.java @@ -347,7 +347,7 @@ public class LdapTemplate implements LdapOperations, InitializingBean { DirContext ctx = this.contextSource.getReadOnlyContext(); NamingEnumeration results = null; - RuntimeException ex = null; + RuntimeException exception = null; try { processor.preProcess(ctx); results = se.executeSearch(ctx); @@ -357,53 +357,53 @@ public class LdapTemplate implements LdapOperations, InitializingBean { handler.handleNameClassPair(result); } } - catch (NameNotFoundException e) { + catch (NameNotFoundException ex) { // It is possible to ignore errors caused by base not found if (this.ignoreNameNotFoundException) { - LOG.warn("Base context not found, ignoring: " + e.getMessage()); + LOG.warn("Base context not found, ignoring: " + ex.getMessage()); } else { - ex = LdapUtils.convertLdapException(e); + exception = LdapUtils.convertLdapException(ex); } } - catch (PartialResultException e) { + catch (PartialResultException ex) { // Workaround for AD servers not handling referrals correctly. if (this.ignorePartialResultException) { - LOG.debug("PartialResultException encountered and ignored", e); + LOG.debug("PartialResultException encountered and ignored", ex); } else { - ex = LdapUtils.convertLdapException(e); + exception = LdapUtils.convertLdapException(ex); } } - catch (SizeLimitExceededException e) { + catch (SizeLimitExceededException ex) { if (this.ignoreSizeLimitExceededException) { - LOG.debug("SizeLimitExceededException encountered and ignored", e); + LOG.debug("SizeLimitExceededException encountered and ignored", ex); } else { - ex = LdapUtils.convertLdapException(e); + exception = LdapUtils.convertLdapException(ex); } } - catch (javax.naming.NamingException e) { - ex = LdapUtils.convertLdapException(e); + catch (javax.naming.NamingException ex) { + exception = LdapUtils.convertLdapException(ex); } finally { try { processor.postProcess(ctx); } - catch (javax.naming.NamingException e) { - if (ex == null) { - ex = LdapUtils.convertLdapException(e); + catch (javax.naming.NamingException ex) { + if (exception == null) { + exception = LdapUtils.convertLdapException(ex); } else { // We already had an exception from above and should ignore // this one. - LOG.debug("Ignoring Exception from postProcess, " + "main exception thrown instead", e); + LOG.debug("Ignoring Exception from postProcess, " + "main exception thrown instead", ex); } } closeContextAndNamingEnumeration(ctx, results); // If we got an exception it should be thrown. - if (ex != null) { - throw ex; + if (exception != null) { + throw exception; } } } @@ -810,8 +810,8 @@ public class LdapTemplate implements LdapOperations, InitializingBean { try { return ce.executeWithContext(ctx); } - catch (javax.naming.NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (javax.naming.NamingException ex) { + throw LdapUtils.convertLdapException(ex); } finally { closeContext(ctx); @@ -1102,14 +1102,14 @@ public class LdapTemplate implements LdapOperations, InitializingBean { LOG.debug("Entry " + name + " deleted"); } } - catch (javax.naming.NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (javax.naming.NamingException ex) { + throw LdapUtils.convertLdapException(ex); } finally { try { enumeration.close(); } - catch (Exception e) { + catch (Exception ex) { // Never mind this } } @@ -1191,7 +1191,7 @@ public class LdapTemplate implements LdapOperations, InitializingBean { try { ctx.close(); } - catch (Exception e) { + catch (Exception ex) { // Never mind this. } } @@ -1207,7 +1207,7 @@ public class LdapTemplate implements LdapOperations, InitializingBean { try { results.close(); } - catch (Exception e) { + catch (Exception ex) { // Never mind this. } } @@ -1237,53 +1237,6 @@ public class LdapTemplate implements LdapOperations, InitializingBean { } } - /** - * Do-nothing implementation of {@link DirContextProcessor}. - * - * @author Mattias Hellborg Arthursson - * @since 2.0 - */ - public static final class NullDirContextProcessor implements DirContextProcessor { - - public void postProcess(DirContext ctx) { - // Do nothing - } - - public void preProcess(DirContext ctx) { - // Do nothing - } - - } - - /** - * A {@link NameClassPairCallbackHandler} that passes the NameClassPairs found to a - * NameClassPairMapper and collects the results in a list. - * - * @author Mattias Hellborg Arthursson - */ - public final static class MappingCollectingNameClassPairCallbackHandler - extends CollectingNameClassPairCallbackHandler { - - private NameClassPairMapper mapper; - - public MappingCollectingNameClassPairCallbackHandler(NameClassPairMapper mapper) { - this.mapper = mapper; - } - - /** - * {@inheritDoc} - */ - public T getObjectFromNameClassPair(NameClassPair nameClassPair) { - try { - return this.mapper.mapFromNameClassPair(nameClassPair); - } - catch (javax.naming.NamingException e) { - throw LdapUtils.convertLdapException(e); - } - } - - } - /** * {@inheritDoc} */ @@ -1446,9 +1399,9 @@ public class LdapTemplate implements LdapOperations, InitializingBean { }, ctx); return AuthenticationStatus.SUCCESS; } - catch (Exception e) { - LOG.debug("Authentication failed for entry with DN '" + entryIdentification.getAbsoluteName() + "'", e); - errorCallback.execute(e); + catch (Exception ex) { + LOG.debug("Authentication failed for entry with DN '" + entryIdentification.getAbsoluteName() + "'", ex); + errorCallback.execute(ex); return AuthenticationStatus.UNDEFINED_FAILURE; } } @@ -1536,49 +1489,6 @@ public class LdapTemplate implements LdapOperations, InitializingBean { return searchForObject(LdapUtils.newLdapName(base), filter, searchControls, mapper); } - private static final class NullAuthenticatedLdapEntryContextCallback - implements AuthenticatedLdapEntryContextCallback, AuthenticatedLdapEntryContextMapper { - - public void executeWithContext(DirContext ctx, LdapEntryIdentification ldapEntryIdentification) { - // Do nothing - } - - @Override - public Object mapWithContext(DirContext ctx, LdapEntryIdentification ldapEntryIdentification) { - return null; - } - - } - - private static final class NullAuthenticationErrorCallback implements AuthenticationErrorCallback { - - public void execute(Exception e) { - // Do nothing - } - - } - - private static final class ReturningAuthenticatedLdapEntryContext - implements AuthenticatedLdapEntryContextCallback { - - private final AuthenticatedLdapEntryContextMapper mapper; - - private T collectedObject; - - private ReturningAuthenticatedLdapEntryContext(AuthenticatedLdapEntryContextMapper mapper) { - this.mapper = mapper; - } - - /** - * {@inheritDoc} - */ - @Override - public void executeWithContext(DirContext ctx, LdapEntryIdentification ldapEntryIdentification) { - this.collectedObject = this.mapper.mapWithContext(ctx, ldapEntryIdentification); - } - - } - /** * {@inheritDoc} */ @@ -1922,28 +1832,28 @@ public class LdapTemplate implements LdapOperations, InitializingBean { try { return supplier.get(); } - catch (NameNotFoundException e) { + catch (NameNotFoundException ex) { // It is possible to ignore errors caused by base not found if (!this.ignoreNameNotFoundException) { - throw LdapUtils.convertLdapException(e); + throw LdapUtils.convertLdapException(ex); } - LOG.warn("Base context not found, ignoring: " + e.getMessage()); + LOG.warn("Base context not found, ignoring: " + ex.getMessage()); } - catch (PartialResultException e) { + catch (PartialResultException ex) { // Workaround for AD servers not handling referrals correctly. if (!this.ignorePartialResultException) { - throw LdapUtils.convertLdapException(e); + throw LdapUtils.convertLdapException(ex); } - LOG.debug("PartialResultException encountered and ignored", e); + LOG.debug("PartialResultException encountered and ignored", ex); } - catch (SizeLimitExceededException e) { + catch (SizeLimitExceededException ex) { if (!this.ignoreSizeLimitExceededException) { - throw LdapUtils.convertLdapException(e); + throw LdapUtils.convertLdapException(ex); } - LOG.debug("SizeLimitExceededException encountered and ignored", e); + LOG.debug("SizeLimitExceededException encountered and ignored", ex); } - catch (javax.naming.NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (javax.naming.NamingException ex) { + throw LdapUtils.convertLdapException(ex); } return null; } @@ -1990,4 +1900,94 @@ public class LdapTemplate implements LdapOperations, InitializingBean { } + private static final class NullAuthenticatedLdapEntryContextCallback + implements AuthenticatedLdapEntryContextCallback, AuthenticatedLdapEntryContextMapper { + + public void executeWithContext(DirContext ctx, LdapEntryIdentification ldapEntryIdentification) { + // Do nothing + } + + @Override + public Object mapWithContext(DirContext ctx, LdapEntryIdentification ldapEntryIdentification) { + return null; + } + + } + + /** + * Do-nothing implementation of {@link DirContextProcessor}. + * + * @author Mattias Hellborg Arthursson + * @since 2.0 + */ + public static final class NullDirContextProcessor implements DirContextProcessor { + + public void postProcess(DirContext ctx) { + // Do nothing + } + + public void preProcess(DirContext ctx) { + // Do nothing + } + + } + + /** + * A {@link NameClassPairCallbackHandler} that passes the NameClassPairs found to a + * NameClassPairMapper and collects the results in a list. + * + * @author Mattias Hellborg Arthursson + */ + public final static class MappingCollectingNameClassPairCallbackHandler + extends CollectingNameClassPairCallbackHandler { + + private NameClassPairMapper mapper; + + public MappingCollectingNameClassPairCallbackHandler(NameClassPairMapper mapper) { + this.mapper = mapper; + } + + /** + * {@inheritDoc} + */ + public T getObjectFromNameClassPair(NameClassPair nameClassPair) { + try { + return this.mapper.mapFromNameClassPair(nameClassPair); + } + catch (javax.naming.NamingException ex) { + throw LdapUtils.convertLdapException(ex); + } + } + + } + + private static final class NullAuthenticationErrorCallback implements AuthenticationErrorCallback { + + public void execute(Exception ex) { + // Do nothing + } + + } + + private static final class ReturningAuthenticatedLdapEntryContext + implements AuthenticatedLdapEntryContextCallback { + + private final AuthenticatedLdapEntryContextMapper mapper; + + private T collectedObject; + + private ReturningAuthenticatedLdapEntryContext(AuthenticatedLdapEntryContextMapper mapper) { + this.mapper = mapper; + } + + /** + * {@inheritDoc} + */ + @Override + public void executeWithContext(DirContext ctx, LdapEntryIdentification ldapEntryIdentification) { + this.collectedObject = this.mapper.mapWithContext(ctx, ldapEntryIdentification); + } + + } + } diff --git a/core/src/main/java/org/springframework/ldap/core/NameAwareAttribute.java b/core/src/main/java/org/springframework/ldap/core/NameAwareAttribute.java index 8cc6fa31..86e2afe3 100644 --- a/core/src/main/java/org/springframework/ldap/core/NameAwareAttribute.java +++ b/core/src/main/java/org/springframework/ldap/core/NameAwareAttribute.java @@ -73,8 +73,8 @@ public final class NameAwareAttribute implements Attribute, Iterable { this.add(incomingValues.next()); } } - catch (NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (NamingException ex) { + throw LdapUtils.convertLdapException(ex); } if (attribute instanceof NameAwareAttribute) { @@ -169,11 +169,11 @@ public final class NameAwareAttribute implements Attribute, Iterable { try { newValuesAsNames.put(LdapUtils.newLdapName(s), s); } - catch (InvalidNameException e) { + catch (InvalidNameException ex) { throw new IllegalArgumentException( "This instance has values that are not valid distinguished names; " + "cannot handle Name values", - e); + ex); } } else if (value instanceof LdapName) { @@ -249,7 +249,7 @@ public final class NameAwareAttribute implements Attribute, Iterable { return value; } - catch (NoSuchElementException e) { + catch (NoSuchElementException ex) { throw new IndexOutOfBoundsException("No value at index i"); } } @@ -273,7 +273,7 @@ public final class NameAwareAttribute implements Attribute, Iterable { } return value; } - catch (NoSuchElementException e) { + catch (NoSuchElementException ex) { throw new IndexOutOfBoundsException("No value at index i"); } } @@ -302,15 +302,18 @@ public final class NameAwareAttribute implements Attribute, Iterable { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } NameAwareAttribute that = (NameAwareAttribute) o; - if (this.id != null ? !this.id.equals(that.id) : that.id != null) + if ((this.id != null) ? !this.id.equals(that.id) : that.id != null) { return false; + } if (this.values.size() != that.values.size()) { return false; } @@ -357,7 +360,7 @@ public final class NameAwareAttribute implements Attribute, Iterable { @Override public int hashCode() { - int result = this.id != null ? this.id.hashCode() : 0; + int result = (this.id != null) ? this.id.hashCode() : 0; int valuesHash = 7; Set myValues = this.values; diff --git a/core/src/main/java/org/springframework/ldap/core/NameAwareAttributes.java b/core/src/main/java/org/springframework/ldap/core/NameAwareAttributes.java index 616ddd07..2fa088ec 100644 --- a/core/src/main/java/org/springframework/ldap/core/NameAwareAttributes.java +++ b/core/src/main/java/org/springframework/ldap/core/NameAwareAttributes.java @@ -111,22 +111,25 @@ public final class NameAwareAttributes implements Attributes { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } NameAwareAttributes that = (NameAwareAttributes) o; - if (this.attributes != null ? !this.attributes.equals(that.attributes) : that.attributes != null) + if ((this.attributes != null) ? !this.attributes.equals(that.attributes) : that.attributes != null) { return false; + } return true; } @Override public int hashCode() { - return this.attributes != null ? this.attributes.hashCode() : 0; + return (this.attributes != null) ? this.attributes.hashCode() : 0; } @Override diff --git a/core/src/main/java/org/springframework/ldap/core/support/AbstractContextSource.java b/core/src/main/java/org/springframework/ldap/core/support/AbstractContextSource.java index 3a30817d..70cdf45f 100644 --- a/core/src/main/java/org/springframework/ldap/core/support/AbstractContextSource.java +++ b/core/src/main/java/org/springframework/ldap/core/support/AbstractContextSource.java @@ -127,8 +127,8 @@ public abstract class AbstractContextSource implements BaseLdapPathContextSource try { this.contextFactory = Class.forName(DEFAULT_CONTEXT_FACTORY); } - catch (ClassNotFoundException e) { - LOG.trace("The default for contextFactory cannot be resolved", e); + catch (ClassNotFoundException ex) { + LOG.trace("The default for contextFactory cannot be resolved", ex); } } @@ -152,9 +152,9 @@ public abstract class AbstractContextSource implements BaseLdapPathContextSource credentials); return processedDirContext; } - catch (NamingException e) { + catch (NamingException ex) { closeContext(ctx); - throw LdapUtils.convertLdapException(e); + throw LdapUtils.convertLdapException(ex); } } @@ -198,8 +198,8 @@ public abstract class AbstractContextSource implements BaseLdapPathContextSource try { this.authenticationStrategy.setupEnvironment(env, principal, credentials); } - catch (NamingException e) { - throw LdapUtils.convertLdapException(e); + catch (NamingException ex) { + throw LdapUtils.convertLdapException(ex); } } @@ -212,8 +212,8 @@ public abstract class AbstractContextSource implements BaseLdapPathContextSource try { ctx.close(); } - catch (Exception e) { - LOG.debug("Exception closing context", e); + catch (Exception ex) { + LOG.debug("Exception closing context", ex); } } } @@ -260,8 +260,8 @@ public abstract class AbstractContextSource implements BaseLdapPathContextSource try { allValues = oneAttribute.getAll(); } - catch (NamingException e) { - throw new UncategorizedLdapException("Unexpected error occurred formatting base URL", e); + catch (NamingException ex) { + throw new UncategorizedLdapException("Unexpected error occurred formatting base URL", ex); } while (allValues.hasMoreElements()) { @@ -298,8 +298,8 @@ public abstract class AbstractContextSource implements BaseLdapPathContextSource URI valueUri = new URI(null, null, ldapEncoded, null); return valueUri.toString(); } - catch (URISyntaxException e) { - throw new UncategorizedLdapException("This really shouldn't happen - report this", e); + catch (URISyntaxException ex) { + throw new UncategorizedLdapException("This really shouldn't happen - report this", ex); } } @@ -357,9 +357,9 @@ public abstract class AbstractContextSource implements BaseLdapPathContextSource return ctx; } - catch (NamingException e) { + catch (NamingException ex) { closeContext(ctx); - throw LdapUtils.convertLdapException(e); + throw LdapUtils.convertLdapException(ex); } } diff --git a/core/src/main/java/org/springframework/ldap/core/support/AbstractTlsDirContextAuthenticationStrategy.java b/core/src/main/java/org/springframework/ldap/core/support/AbstractTlsDirContextAuthenticationStrategy.java index a18f5794..1cfb811a 100755 --- a/core/src/main/java/org/springframework/ldap/core/support/AbstractTlsDirContextAuthenticationStrategy.java +++ b/core/src/main/java/org/springframework/ldap/core/support/AbstractTlsDirContextAuthenticationStrategy.java @@ -151,9 +151,9 @@ public abstract class AbstractTlsDirContextAuthenticationStrategy implements Dir return ctx; } } - catch (IOException e) { + catch (IOException ex) { LdapUtils.closeContext(ctx); - throw new UncategorizedLdapException("Failed to negotiate TLS session", e); + throw new UncategorizedLdapException("Failed to negotiate TLS session", ex); } } else { diff --git a/core/src/main/java/org/springframework/ldap/core/support/DefaultDirObjectFactory.java b/core/src/main/java/org/springframework/ldap/core/support/DefaultDirObjectFactory.java index 66620d1d..8bf24cc5 100644 --- a/core/src/main/java/org/springframework/ldap/core/support/DefaultDirObjectFactory.java +++ b/core/src/main/java/org/springframework/ldap/core/support/DefaultDirObjectFactory.java @@ -83,7 +83,7 @@ public class DefaultDirObjectFactory implements DirObjectFactory { try { ctx.close(); } - catch (Exception e) { + catch (Exception ex) { // Never mind this } @@ -140,9 +140,9 @@ public class DefaultDirObjectFactory implements DirObjectFactory { nameString = pathString; } - catch (URISyntaxException e) { + catch (URISyntaxException ex) { throw new IllegalArgumentException("Supplied name starts with protocol prefix indicating a referral," - + " but is not possible to parse to an URI", e); + + " but is not possible to parse to an URI", ex); } if (LOG.isDebugEnabled()) { LOG.debug("Resulting name after removal of referral information: '" + nameString + "'"); diff --git a/core/src/main/java/org/springframework/ldap/core/support/DelegatingBaseLdapPathContextSourceSupport.java b/core/src/main/java/org/springframework/ldap/core/support/DelegatingBaseLdapPathContextSourceSupport.java index 99b15742..2c58e4fa 100644 --- a/core/src/main/java/org/springframework/ldap/core/support/DelegatingBaseLdapPathContextSourceSupport.java +++ b/core/src/main/java/org/springframework/ldap/core/support/DelegatingBaseLdapPathContextSourceSupport.java @@ -40,11 +40,11 @@ public abstract class DelegatingBaseLdapPathContextSourceSupport implements Base try { return (BaseLdapPathSource) getTarget(); } - catch (ClassCastException e) { + catch (ClassCastException ex) { throw new UnsupportedOperationException( "This operation is not supported on a target ContextSource that does not " + " implement BaseLdapPathContextSource", - e); + ex); } } diff --git a/core/src/main/java/org/springframework/ldap/core/support/LookupAttemptingCallback.java b/core/src/main/java/org/springframework/ldap/core/support/LookupAttemptingCallback.java index fb280832..e6094eaa 100644 --- a/core/src/main/java/org/springframework/ldap/core/support/LookupAttemptingCallback.java +++ b/core/src/main/java/org/springframework/ldap/core/support/LookupAttemptingCallback.java @@ -51,9 +51,9 @@ public class LookupAttemptingCallback try { return (DirContextOperations) ctx.lookup(ldapEntryIdentification.getRelativeName()); } - catch (NamingException e) { + catch (NamingException ex) { // rethrow, because we aren't allowed to throw checked exceptions. - throw LdapUtils.convertLdapException(e); + throw LdapUtils.convertLdapException(ex); } } diff --git a/core/src/main/java/org/springframework/ldap/core/support/RangeOption.java b/core/src/main/java/org/springframework/ldap/core/support/RangeOption.java index 5df2e03e..2db0c1fa 100644 --- a/core/src/main/java/org/springframework/ldap/core/support/RangeOption.java +++ b/core/src/main/java/org/springframework/ldap/core/support/RangeOption.java @@ -133,9 +133,10 @@ class RangeOption implements Comparable { } public int compareTo(RangeOption that) { - if (this.getInitial() != that.getInitial()) + if (this.getInitial() != that.getInitial()) { throw new IllegalStateException("Ranges cannot be compared, range-initial not the same: " + this.toString() + " vs " + that.toString()); + } if (this.getTerminal() == that.getTerminal()) { return 0; @@ -157,22 +158,26 @@ class RangeOption implements Comparable { return -1; } - return this.getTerminal() > that.getTerminal() ? 1 : -1; + return (this.getTerminal() > that.getTerminal()) ? 1 : -1; } @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } RangeOption that = (RangeOption) o; - if (this.initial != that.initial) + if (this.initial != that.initial) { return false; - if (this.terminal != that.terminal) + } + if (this.terminal != that.terminal) { return false; + } return true; } @@ -194,7 +199,7 @@ class RangeOption implements Comparable { } int initial = getTerminal() + 1; - int terminal = pageSize == TERMINAL_END_OF_RANGE ? TERMINAL_END_OF_RANGE : getTerminal() + pageSize; + int terminal = (pageSize != TERMINAL_END_OF_RANGE) ? getTerminal() + pageSize : TERMINAL_END_OF_RANGE; return new RangeOption(initial, terminal); } diff --git a/core/src/main/java/org/springframework/ldap/core/support/SingleContextSource.java b/core/src/main/java/org/springframework/ldap/core/support/SingleContextSource.java index 609e352a..68c4f74b 100644 --- a/core/src/main/java/org/springframework/ldap/core/support/SingleContextSource.java +++ b/core/src/main/java/org/springframework/ldap/core/support/SingleContextSource.java @@ -92,8 +92,8 @@ public class SingleContextSource implements ContextSource, DisposableBean { try { this.ctx.close(); } - catch (javax.naming.NamingException e) { - LOG.warn("Error when closing", e); + catch (javax.naming.NamingException ex) { + LOG.warn("Error when closing", ex); } } @@ -193,7 +193,7 @@ public class SingleContextSource implements ContextSource, DisposableBean { } else if (methodName.equals("equals")) { // Only consider equal when proxies are identical. - return (proxy == args[0] ? Boolean.TRUE : Boolean.FALSE); + return (proxy != args[0]) ? Boolean.FALSE : Boolean.TRUE; } else if (methodName.equals("hashCode")) { // Use hashCode of Connection proxy. @@ -208,8 +208,8 @@ public class SingleContextSource implements ContextSource, DisposableBean { try { return method.invoke(this.target, args); } - catch (InvocationTargetException e) { - throw e.getTargetException(); + catch (InvocationTargetException ex) { + throw ex.getTargetException(); } } diff --git a/core/src/main/java/org/springframework/ldap/filter/BinaryLogicalFilter.java b/core/src/main/java/org/springframework/ldap/filter/BinaryLogicalFilter.java index 0dd0b226..7ffcb7ab 100644 --- a/core/src/main/java/org/springframework/ldap/filter/BinaryLogicalFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/BinaryLogicalFilter.java @@ -66,22 +66,25 @@ public abstract class BinaryLogicalFilter extends AbstractFilter { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } BinaryLogicalFilter that = (BinaryLogicalFilter) o; - if (this.queryList != null ? !this.queryList.equals(that.queryList) : that.queryList != null) + if ((this.queryList != null) ? !this.queryList.equals(that.queryList) : that.queryList != null) { return false; + } return true; } @Override public int hashCode() { - return this.queryList != null ? this.queryList.hashCode() : 0; + return (this.queryList != null) ? this.queryList.hashCode() : 0; } /** diff --git a/core/src/main/java/org/springframework/ldap/filter/CompareFilter.java b/core/src/main/java/org/springframework/ldap/filter/CompareFilter.java index e9027b9a..103e7d5a 100644 --- a/core/src/main/java/org/springframework/ldap/filter/CompareFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/CompareFilter.java @@ -78,25 +78,29 @@ public abstract class CompareFilter extends AbstractFilter { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } CompareFilter that = (CompareFilter) o; - if (this.attribute != null ? !this.attribute.equals(that.attribute) : that.attribute != null) + if ((this.attribute != null) ? !this.attribute.equals(that.attribute) : that.attribute != null) { return false; - if (this.value != null ? !this.value.equals(that.value) : that.value != null) + } + if ((this.value != null) ? !this.value.equals(that.value) : that.value != null) { return false; + } return true; } @Override public int hashCode() { - int result = this.attribute != null ? this.attribute.hashCode() : 0; - result = 31 * result + (this.value != null ? this.value.hashCode() : 0); + int result = (this.attribute != null) ? this.attribute.hashCode() : 0; + result = 31 * result + ((this.value != null) ? this.value.hashCode() : 0); return result; } diff --git a/core/src/main/java/org/springframework/ldap/filter/Filter.java b/core/src/main/java/org/springframework/ldap/filter/Filter.java index 86b44ddd..3c70bf52 100644 --- a/core/src/main/java/org/springframework/ldap/filter/Filter.java +++ b/core/src/main/java/org/springframework/ldap/filter/Filter.java @@ -51,4 +51,4 @@ public interface Filter { */ int hashCode(); -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/filter/HardcodedFilter.java b/core/src/main/java/org/springframework/ldap/filter/HardcodedFilter.java index affb4931..d7c0f020 100644 --- a/core/src/main/java/org/springframework/ldap/filter/HardcodedFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/HardcodedFilter.java @@ -68,22 +68,25 @@ public class HardcodedFilter extends AbstractFilter { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } HardcodedFilter that = (HardcodedFilter) o; - if (this.filter != null ? !this.filter.equals(that.filter) : that.filter != null) + if ((this.filter != null) ? !this.filter.equals(that.filter) : that.filter != null) { return false; + } return true; } @Override public int hashCode() { - return this.filter != null ? this.filter.hashCode() : 0; + return (this.filter != null) ? this.filter.hashCode() : 0; } } diff --git a/core/src/main/java/org/springframework/ldap/filter/NotFilter.java b/core/src/main/java/org/springframework/ldap/filter/NotFilter.java index b0dea625..2e48c12f 100644 --- a/core/src/main/java/org/springframework/ldap/filter/NotFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/NotFilter.java @@ -58,22 +58,25 @@ public class NotFilter extends AbstractFilter { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } NotFilter notFilter = (NotFilter) o; - if (this.filter != null ? !this.filter.equals(notFilter.filter) : notFilter.filter != null) + if ((this.filter != null) ? !this.filter.equals(notFilter.filter) : notFilter.filter != null) { return false; + } return true; } @Override public int hashCode() { - return this.filter != null ? this.filter.hashCode() : 0; + return (this.filter != null) ? this.filter.hashCode() : 0; } } diff --git a/core/src/main/java/org/springframework/ldap/filter/NotPresentFilter.java b/core/src/main/java/org/springframework/ldap/filter/NotPresentFilter.java index 8b0089e2..63f12947 100644 --- a/core/src/main/java/org/springframework/ldap/filter/NotPresentFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/NotPresentFilter.java @@ -56,22 +56,25 @@ public class NotPresentFilter extends AbstractFilter { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } NotPresentFilter that = (NotPresentFilter) o; - if (this.attribute != null ? !this.attribute.equals(that.attribute) : that.attribute != null) + if ((this.attribute != null) ? !this.attribute.equals(that.attribute) : that.attribute != null) { return false; + } return true; } @Override public int hashCode() { - return this.attribute != null ? this.attribute.hashCode() : 0; + return (this.attribute != null) ? this.attribute.hashCode() : 0; } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/filter/PresentFilter.java b/core/src/main/java/org/springframework/ldap/filter/PresentFilter.java index 84d481e8..b3ca179a 100644 --- a/core/src/main/java/org/springframework/ldap/filter/PresentFilter.java +++ b/core/src/main/java/org/springframework/ldap/filter/PresentFilter.java @@ -57,22 +57,25 @@ public class PresentFilter extends AbstractFilter { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } PresentFilter that = (PresentFilter) o; - if (this.attribute != null ? !this.attribute.equals(that.attribute) : that.attribute != null) + if ((this.attribute != null) ? !this.attribute.equals(that.attribute) : that.attribute != null) { return false; + } return true; } @Override public int hashCode() { - return this.attribute != null ? this.attribute.hashCode() : 0; + return (this.attribute != null) ? this.attribute.hashCode() : 0; } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/odm/annotations/package-info.java b/core/src/main/java/org/springframework/ldap/odm/annotations/package-info.java index 8e27d959..ce9d11dd 100755 --- a/core/src/main/java/org/springframework/ldap/odm/annotations/package-info.java +++ b/core/src/main/java/org/springframework/ldap/odm/annotations/package-info.java @@ -23,4 +23,4 @@ * @author Paul Harvey <paul.at.pauls-place.me.uk> */ -package org.springframework.ldap.odm.annotations; \ No newline at end of file +package org.springframework.ldap.odm.annotations; diff --git a/core/src/main/java/org/springframework/ldap/odm/core/impl/AttributeMetaData.java b/core/src/main/java/org/springframework/ldap/odm/core/impl/AttributeMetaData.java index 469fc8b9..2ee4b7e6 100755 --- a/core/src/main/java/org/springframework/ldap/odm/core/impl/AttributeMetaData.java +++ b/core/src/main/java/org/springframework/ldap/odm/core/impl/AttributeMetaData.java @@ -147,11 +147,11 @@ import org.springframework.ldap.odm.annotations.Transient; try { paramType = (ParameterizedType) field.getGenericType(); } - catch (ClassCastException e) { + catch (ClassCastException ex) { throw new MetaDataException( String.format("Can't determine destination type for field %1$s in Entry class %2$s", field, field.getDeclaringClass()), - e); + ex); } Type[] actualParamArguments = paramType.getActualTypeArguments(); if (actualParamArguments.length == 1) { @@ -203,8 +203,8 @@ import org.springframework.ldap.odm.annotations.Transient; try { return (Collection) this.collectionClass.newInstance(); } - catch (Exception e) { - throw new UncategorizedLdapException("Failed to instantiate collection class", e); + catch (Exception ex) { + throw new UncategorizedLdapException("Failed to instantiate collection class", ex); } } diff --git a/core/src/main/java/org/springframework/ldap/odm/core/impl/DefaultObjectDirectoryMapper.java b/core/src/main/java/org/springframework/ldap/odm/core/impl/DefaultObjectDirectoryMapper.java index 1ed6cef3..f3773b6d 100644 --- a/core/src/main/java/org/springframework/ldap/odm/core/impl/DefaultObjectDirectoryMapper.java +++ b/core/src/main/java/org/springframework/ldap/odm/core/impl/DefaultObjectDirectoryMapper.java @@ -95,19 +95,6 @@ public class DefaultObjectDirectoryMapper implements ObjectDirectoryMapper { this.converterManager = converterManager; } - static final class EntityData { - - final ObjectMetaData metaData; - - final Filter ocFilter; - - private EntityData(ObjectMetaData metaData, Filter ocFilter) { - this.metaData = metaData; - this.ocFilter = ocFilter; - } - - } - // A map of managed classes to to meta data about those classes private final ConcurrentMap, EntityData> metaDataMap = new ConcurrentHashMap, EntityData>(); @@ -165,10 +152,10 @@ public class DefaultObjectDirectoryMapper implements ObjectDirectoryMapper { try { managedClass.getConstructor(); } - catch (NoSuchMethodException e) { + catch (NoSuchMethodException ex) { throw new InvalidEntryException( String.format("The class %1$s must have a zero argument constructor to be an Entry", managedClass), - e); + ex); } // Check we have all of the necessary converters for the class @@ -255,9 +242,9 @@ public class DefaultObjectDirectoryMapper implements ObjectDirectoryMapper { } } - catch (IllegalAccessException e) { + catch (IllegalAccessException ex) { throw new InvalidEntryException(String.format("Can't set attribute %1$s", attributeInfo.getName()), - e); + ex); } } } @@ -459,8 +446,8 @@ public class DefaultObjectDirectoryMapper implements ObjectDirectoryMapper { try { return (Name) getIdField(entry).get(entry); } - catch (Exception e) { - throw new InvalidEntryException(String.format("Can't get Id field from Entry %1$s", entry), e); + catch (Exception ex) { + throw new InvalidEntryException(String.format("Can't get Id field from Entry %1$s", entry), ex); } } @@ -473,8 +460,8 @@ public class DefaultObjectDirectoryMapper implements ObjectDirectoryMapper { try { getIdField(entry).set(entry, id); } - catch (Exception e) { - throw new InvalidEntryException(String.format("Can't set Id field on Entry %s to %s", entry, id), e); + catch (Exception ex) { + throw new InvalidEntryException(String.format("Can't set Id field on Entry %s to %s", entry, id), ex); } } @@ -522,9 +509,9 @@ public class DefaultObjectDirectoryMapper implements ObjectDirectoryMapper { AttributeMetaData attributeMetaData = getEntityData(clazz).metaData.getAttribute(field); return attributeMetaData.getName().toString(); } - catch (NoSuchFieldException e) { + catch (NoSuchFieldException ex) { throw new IllegalArgumentException(String.format("Field %s cannot be found in class %s", fieldName, clazz), - e); + ex); } } @@ -543,4 +530,17 @@ public class DefaultObjectDirectoryMapper implements ObjectDirectoryMapper { return true; } + static final class EntityData { + + final ObjectMetaData metaData; + + final Filter ocFilter; + + private EntityData(ObjectMetaData metaData, Filter ocFilter) { + this.metaData = metaData; + this.ocFilter = ocFilter; + } + + } + } diff --git a/core/src/main/java/org/springframework/ldap/odm/core/impl/package-info.java b/core/src/main/java/org/springframework/ldap/odm/core/impl/package-info.java index 3a0a53ce..c1762c52 100755 --- a/core/src/main/java/org/springframework/ldap/odm/core/impl/package-info.java +++ b/core/src/main/java/org/springframework/ldap/odm/core/impl/package-info.java @@ -24,4 +24,4 @@ * * @author Paul Harvey <paul.at.pauls-place.me.uk> */ -package org.springframework.ldap.odm.core.impl; \ No newline at end of file +package org.springframework.ldap.odm.core.impl; diff --git a/core/src/main/java/org/springframework/ldap/odm/core/package-info.java b/core/src/main/java/org/springframework/ldap/odm/core/package-info.java index 5a45fae8..403034b2 100755 --- a/core/src/main/java/org/springframework/ldap/odm/core/package-info.java +++ b/core/src/main/java/org/springframework/ldap/odm/core/package-info.java @@ -23,4 +23,4 @@ * @author Paul Harvey <paul.at.pauls-place.me.uk> */ -package org.springframework.ldap.odm.core; \ No newline at end of file +package org.springframework.ldap.odm.core; diff --git a/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConversionServiceConverterManager.java b/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConversionServiceConverterManager.java index 7761d975..77b0439e 100644 --- a/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConversionServiceConverterManager.java +++ b/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConversionServiceConverterManager.java @@ -45,8 +45,8 @@ public class ConversionServiceConverterManager implements ConverterManager { Class clazz = ClassUtils.forName(DEFAULT_CONVERSION_SERVICE_CLASS, defaultClassLoader); this.conversionService = (GenericConversionService) clazz.newInstance(); } - catch (Exception e) { - ReflectionUtils.handleReflectionException(e); + catch (Exception ex) { + ReflectionUtils.handleReflectionException(ex); } } else { diff --git a/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConverterManagerFactoryBean.java b/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConverterManagerFactoryBean.java index ad4bd40c..650a3786 100755 --- a/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConverterManagerFactoryBean.java +++ b/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConverterManagerFactoryBean.java @@ -97,65 +97,6 @@ public final class ConverterManagerFactoryBean implements FactoryBean { private static final Logger LOG = LoggerFactory.getLogger(ConverterManagerFactoryBean.class); - /** - * Configuration information for a single Converter instance. - */ - public static final class ConverterConfig { - - // The set of classes the Converter will convert from. - private Set> fromClasses = new HashSet>(); - - // The (optional) LDAP syntax. - private String syntax = null; - - // The set of classes the Converter will convert to. - private Set> toClasses = new HashSet>(); - - // The Converter to use. - private Converter converter = null; - - public ConverterConfig() { - } - - /** - * @param fromClasses Comma separated list of classes the {@link Converter} should - * can convert from. - */ - public void setFromClasses(Set> fromClasses) { - this.fromClasses = fromClasses; - } - - /** - * @param toClasses Comma separated list of classes the {@link Converter} can - * convert to. - */ - public void setToClasses(Set> toClasses) { - this.toClasses = toClasses; - - } - - /** - * @param syntax An LDAP syntax supported by the {@link Converter}. - */ - public void setSyntax(String syntax) { - this.syntax = syntax; - } - - /** - * @param converter The {@link Converter} to use. - */ - public void setConverter(Converter converter) { - this.converter = converter; - } - - @Override - public String toString() { - return String.format("fromClasses=%1$s, syntax=%2$s, toClasses=%3$s, converter=%4$s", this.fromClasses, - this.syntax, this.toClasses, this.converter); - } - - } - private Set converterConfigList = null; /** @@ -219,4 +160,63 @@ public final class ConverterManagerFactoryBean implements FactoryBean { return true; } + /** + * Configuration information for a single Converter instance. + */ + public static final class ConverterConfig { + + // The set of classes the Converter will convert from. + private Set> fromClasses = new HashSet>(); + + // The (optional) LDAP syntax. + private String syntax = null; + + // The set of classes the Converter will convert to. + private Set> toClasses = new HashSet>(); + + // The Converter to use. + private Converter converter = null; + + public ConverterConfig() { + } + + /** + * @param fromClasses Comma separated list of classes the {@link Converter} should + * can convert from. + */ + public void setFromClasses(Set> fromClasses) { + this.fromClasses = fromClasses; + } + + /** + * @param toClasses Comma separated list of classes the {@link Converter} can + * convert to. + */ + public void setToClasses(Set> toClasses) { + this.toClasses = toClasses; + + } + + /** + * @param syntax An LDAP syntax supported by the {@link Converter}. + */ + public void setSyntax(String syntax) { + this.syntax = syntax; + } + + /** + * @param converter The {@link Converter} to use. + */ + public void setConverter(Converter converter) { + this.converter = converter; + } + + @Override + public String toString() { + return String.format("fromClasses=%1$s, syntax=%2$s, toClasses=%3$s, converter=%4$s", this.fromClasses, + this.syntax, this.toClasses, this.converter); + } + + } + } diff --git a/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConverterManagerImpl.java b/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConverterManagerImpl.java index 05f9ce69..1ff83294 100755 --- a/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConverterManagerImpl.java +++ b/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/ConverterManagerImpl.java @@ -139,7 +139,7 @@ public final class ConverterManagerImpl implements ConverterManager { try { result = syntaxConverter.convert(source, targetClass); } - catch (Exception e) { + catch (Exception ex) { // Ignore as we may still be able to convert successfully } } @@ -157,7 +157,7 @@ public final class ConverterManagerImpl implements ConverterManager { try { result = nullSyntaxConverter.convert(source, targetClass); } - catch (Exception e) { + catch (Exception ex) { // Handled at the end of the method } } diff --git a/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/converters/package-info.java b/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/converters/package-info.java index 344a23f6..b0f30d09 100755 --- a/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/converters/package-info.java +++ b/core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/converters/package-info.java @@ -21,4 +21,4 @@ * @author Paul Harvey <paul.at.pauls-place.me.uk> */ -package org.springframework.ldap.odm.typeconversion.impl.converters; \ No newline at end of file +package org.springframework.ldap.odm.typeconversion.impl.converters; diff --git a/core/src/main/java/org/springframework/ldap/pool/DelegatingContext.java b/core/src/main/java/org/springframework/ldap/pool/DelegatingContext.java index 1a6392a1..f497ccff 100644 --- a/core/src/main/java/org/springframework/ldap/pool/DelegatingContext.java +++ b/core/src/main/java/org/springframework/ldap/pool/DelegatingContext.java @@ -122,7 +122,7 @@ public class DelegatingContext implements Context { */ public int hashCode() { final Context context = this.getInnermostDelegateContext(); - return (context != null ? context.hashCode() : 0); + return (context != null) ? context.hashCode() : 0; } /** @@ -130,7 +130,7 @@ public class DelegatingContext implements Context { */ public String toString() { final Context context = this.getInnermostDelegateContext(); - return (context != null ? context.toString() : "Context is closed"); + return (context != null) ? context.toString() : "Context is closed"; } // ***** Context Interface Delegates *****// @@ -188,9 +188,9 @@ public class DelegatingContext implements Context { this.keyedObjectPool.invalidateObject(this.dirContextType, context); } } - catch (Exception e) { + catch (Exception ex) { final NamingException namingException = new NamingException("Failed to return delegate Context to pool."); - namingException.setRootCause(e); + namingException.setRootCause(ex); throw namingException; } finally { diff --git a/core/src/main/java/org/springframework/ldap/pool/DelegatingDirContext.java b/core/src/main/java/org/springframework/ldap/pool/DelegatingDirContext.java index af4ae10a..824682c7 100644 --- a/core/src/main/java/org/springframework/ldap/pool/DelegatingDirContext.java +++ b/core/src/main/java/org/springframework/ldap/pool/DelegatingDirContext.java @@ -121,7 +121,7 @@ public class DelegatingDirContext extends DelegatingContext implements DirContex */ public int hashCode() { final DirContext context = this.getInnermostDelegateDirContext(); - return (context != null ? context.hashCode() : 0); + return (context != null) ? context.hashCode() : 0; } /** @@ -129,7 +129,7 @@ public class DelegatingDirContext extends DelegatingContext implements DirContex */ public String toString() { final DirContext context = this.getInnermostDelegateDirContext(); - return (context != null ? context.toString() : "DirContext is closed"); + return (context != null) ? context.toString() : "DirContext is closed"; } // ***** DirContextProxy Interface Methods *****// diff --git a/core/src/main/java/org/springframework/ldap/pool/DelegatingLdapContext.java b/core/src/main/java/org/springframework/ldap/pool/DelegatingLdapContext.java index fd9cf2a8..b145ecf2 100644 --- a/core/src/main/java/org/springframework/ldap/pool/DelegatingLdapContext.java +++ b/core/src/main/java/org/springframework/ldap/pool/DelegatingLdapContext.java @@ -119,7 +119,7 @@ public class DelegatingLdapContext extends DelegatingDirContext implements LdapC */ public int hashCode() { final LdapContext context = this.getInnermostDelegateLdapContext(); - return (context != null ? context.hashCode() : 0); + return (context != null) ? context.hashCode() : 0; } /** @@ -127,7 +127,7 @@ public class DelegatingLdapContext extends DelegatingDirContext implements LdapC */ public String toString() { final LdapContext context = this.getInnermostDelegateLdapContext(); - return (context != null ? context.toString() : "LdapContext is closed"); + return (context != null) ? context.toString() : "LdapContext is closed"; } // ***** LdapContext Interface Delegates *****// diff --git a/core/src/main/java/org/springframework/ldap/pool/factory/DirContextPoolableObjectFactory.java b/core/src/main/java/org/springframework/ldap/pool/factory/DirContextPoolableObjectFactory.java index 7cd88bff..495c95d4 100644 --- a/core/src/main/java/org/springframework/ldap/pool/factory/DirContextPoolableObjectFactory.java +++ b/core/src/main/java/org/springframework/ldap/pool/factory/DirContextPoolableObjectFactory.java @@ -191,8 +191,8 @@ class DirContextPoolableObjectFactory extends BaseKeyedPoolableObjectFactory { final DirContext dirContext = (DirContext) obj; return this.dirContextValidator.validateDirContext(contextType, dirContext); } - catch (Exception e) { - this.logger.warn("Failed to validate '" + obj + "' due to an unexpected exception.", e); + catch (Exception ex) { + this.logger.warn("Failed to validate '" + obj + "' due to an unexpected exception.", ex); return false; } } @@ -214,8 +214,8 @@ class DirContextPoolableObjectFactory extends BaseKeyedPoolableObjectFactory { this.logger.debug("Closed " + key + " DirContext='" + dirContext + "'"); } } - catch (Exception e) { - this.logger.warn("An exception occured while closing '" + obj + "'", e); + catch (Exception ex) { + this.logger.warn("An exception occured while closing '" + obj + "'", ex); } } @@ -254,8 +254,8 @@ class DirContextPoolableObjectFactory extends BaseKeyedPoolableObjectFactory { try { return method.invoke(this.target, args); } - catch (InvocationTargetException e) { - Throwable targetException = e.getTargetException(); + catch (InvocationTargetException ex) { + Throwable targetException = ex.getTargetException(); Class targetExceptionClass = targetException.getClass(); boolean nonTransientEncountered = false; diff --git a/core/src/main/java/org/springframework/ldap/pool/factory/MutablePoolingContextSource.java b/core/src/main/java/org/springframework/ldap/pool/factory/MutablePoolingContextSource.java index f3577ddf..61ac6680 100644 --- a/core/src/main/java/org/springframework/ldap/pool/factory/MutablePoolingContextSource.java +++ b/core/src/main/java/org/springframework/ldap/pool/factory/MutablePoolingContextSource.java @@ -36,8 +36,8 @@ public class MutablePoolingContextSource extends PoolingContextSource { try { dirContext = (DirContext) this.keyedObjectPool.borrowObject(dirContextType); } - catch (Exception e) { - throw new DataAccessResourceFailureException("Failed to borrow DirContext from pool.", e); + catch (Exception ex) { + throw new DataAccessResourceFailureException("Failed to borrow DirContext from pool.", ex); } if (dirContext instanceof LdapContext) { diff --git a/core/src/main/java/org/springframework/ldap/pool/factory/PoolingContextSource.java b/core/src/main/java/org/springframework/ldap/pool/factory/PoolingContextSource.java index d6c5e100..ee59d3bd 100644 --- a/core/src/main/java/org/springframework/ldap/pool/factory/PoolingContextSource.java +++ b/core/src/main/java/org/springframework/ldap/pool/factory/PoolingContextSource.java @@ -404,8 +404,8 @@ public class PoolingContextSource extends DelegatingBaseLdapPathContextSourceSup try { this.keyedObjectPool.close(); } - catch (Exception e) { - this.logger.warn("An exception occured while closing the underlying pool.", e); + catch (Exception ex) { + this.logger.warn("An exception occured while closing the underlying pool.", ex); } } @@ -438,8 +438,8 @@ public class PoolingContextSource extends DelegatingBaseLdapPathContextSourceSup try { dirContext = (DirContext) this.keyedObjectPool.borrowObject(dirContextType); } - catch (Exception e) { - throw new DataAccessResourceFailureException("Failed to borrow DirContext from pool.", e); + catch (Exception ex) { + throw new DataAccessResourceFailureException("Failed to borrow DirContext from pool.", ex); } if (dirContext instanceof LdapContext) { diff --git a/core/src/main/java/org/springframework/ldap/pool/validation/DefaultDirContextValidator.java b/core/src/main/java/org/springframework/ldap/pool/validation/DefaultDirContextValidator.java index f2ed5b99..e9cd7d65 100644 --- a/core/src/main/java/org/springframework/ldap/pool/validation/DefaultDirContextValidator.java +++ b/core/src/main/java/org/springframework/ldap/pool/validation/DefaultDirContextValidator.java @@ -182,8 +182,8 @@ public class DefaultDirContextValidator implements DirContextValidator { return true; } } - catch (Exception e) { - this.logger.debug("DirContext '{}' failed validation with an exception.", dirContext, e); + catch (Exception ex) { + this.logger.debug("DirContext '{}' failed validation with an exception.", dirContext, ex); return false; } finally { diff --git a/core/src/main/java/org/springframework/ldap/pool2/DelegatingContext.java b/core/src/main/java/org/springframework/ldap/pool2/DelegatingContext.java index 7394f66f..8f13a551 100644 --- a/core/src/main/java/org/springframework/ldap/pool2/DelegatingContext.java +++ b/core/src/main/java/org/springframework/ldap/pool2/DelegatingContext.java @@ -124,7 +124,7 @@ public class DelegatingContext implements Context { */ public int hashCode() { final Context context = this.getInnermostDelegateContext(); - return (context != null ? context.hashCode() : 0); + return (context != null) ? context.hashCode() : 0; } /** @@ -132,7 +132,7 @@ public class DelegatingContext implements Context { */ public String toString() { final Context context = this.getInnermostDelegateContext(); - return (context != null ? context.toString() : "Context is closed"); + return (context != null) ? context.toString() : "Context is closed"; } // ***** Context Interface Delegates *****// @@ -190,9 +190,9 @@ public class DelegatingContext implements Context { this.keyedObjectPool.invalidateObject(this.dirContextType, context); } } - catch (Exception e) { + catch (Exception ex) { final NamingException namingException = new NamingException("Failed to return delegate Context to pool."); - namingException.setRootCause(e); + namingException.setRootCause(ex); throw namingException; } finally { diff --git a/core/src/main/java/org/springframework/ldap/pool2/DelegatingDirContext.java b/core/src/main/java/org/springframework/ldap/pool2/DelegatingDirContext.java index a4a67efb..85f8d7d9 100644 --- a/core/src/main/java/org/springframework/ldap/pool2/DelegatingDirContext.java +++ b/core/src/main/java/org/springframework/ldap/pool2/DelegatingDirContext.java @@ -123,7 +123,7 @@ public class DelegatingDirContext extends DelegatingContext implements DirContex */ public int hashCode() { final DirContext context = this.getInnermostDelegateDirContext(); - return (context != null ? context.hashCode() : 0); + return (context != null) ? context.hashCode() : 0; } /** @@ -131,7 +131,7 @@ public class DelegatingDirContext extends DelegatingContext implements DirContex */ public String toString() { final DirContext context = this.getInnermostDelegateDirContext(); - return (context != null ? context.toString() : "DirContext is closed"); + return (context != null) ? context.toString() : "DirContext is closed"; } // ***** DirContextProxy Interface Methods *****// diff --git a/core/src/main/java/org/springframework/ldap/pool2/DelegatingLdapContext.java b/core/src/main/java/org/springframework/ldap/pool2/DelegatingLdapContext.java index 9ca15cd9..eee9cf0e 100644 --- a/core/src/main/java/org/springframework/ldap/pool2/DelegatingLdapContext.java +++ b/core/src/main/java/org/springframework/ldap/pool2/DelegatingLdapContext.java @@ -121,7 +121,7 @@ public class DelegatingLdapContext extends DelegatingDirContext implements LdapC */ public int hashCode() { final LdapContext context = this.getInnermostDelegateLdapContext(); - return (context != null ? context.hashCode() : 0); + return (context != null) ? context.hashCode() : 0; } /** @@ -129,7 +129,7 @@ public class DelegatingLdapContext extends DelegatingDirContext implements LdapC */ public String toString() { final LdapContext context = this.getInnermostDelegateLdapContext(); - return (context != null ? context.toString() : "LdapContext is closed"); + return (context != null) ? context.toString() : "LdapContext is closed"; } // ***** LdapContext Interface Delegates *****// diff --git a/core/src/main/java/org/springframework/ldap/pool2/factory/DirContextPoolableObjectFactory.java b/core/src/main/java/org/springframework/ldap/pool2/factory/DirContextPoolableObjectFactory.java index 34973d51..67718ed4 100644 --- a/core/src/main/java/org/springframework/ldap/pool2/factory/DirContextPoolableObjectFactory.java +++ b/core/src/main/java/org/springframework/ldap/pool2/factory/DirContextPoolableObjectFactory.java @@ -162,9 +162,9 @@ class DirContextPooledObjectFactory extends BaseKeyedPooledObjectFactory targetExceptionClass = targetException.getClass(); boolean nonTransientEncountered = false; diff --git a/core/src/main/java/org/springframework/ldap/pool2/factory/MutablePooledContextSource.java b/core/src/main/java/org/springframework/ldap/pool2/factory/MutablePooledContextSource.java index 9d8be11b..ff702afc 100644 --- a/core/src/main/java/org/springframework/ldap/pool2/factory/MutablePooledContextSource.java +++ b/core/src/main/java/org/springframework/ldap/pool2/factory/MutablePooledContextSource.java @@ -48,8 +48,8 @@ public class MutablePooledContextSource extends PooledContextSource { try { dirContext = (DirContext) this.keyedObjectPool.borrowObject(dirContextType); } - catch (Exception e) { - throw new DataAccessResourceFailureException("Failed to borrow DirContext from pool.", e); + catch (Exception ex) { + throw new DataAccessResourceFailureException("Failed to borrow DirContext from pool.", ex); } if (dirContext instanceof LdapContext) { diff --git a/core/src/main/java/org/springframework/ldap/pool2/factory/PooledContextSource.java b/core/src/main/java/org/springframework/ldap/pool2/factory/PooledContextSource.java index bce15b1d..20a83368 100644 --- a/core/src/main/java/org/springframework/ldap/pool2/factory/PooledContextSource.java +++ b/core/src/main/java/org/springframework/ldap/pool2/factory/PooledContextSource.java @@ -223,8 +223,8 @@ public class PooledContextSource extends DelegatingBaseLdapPathContextSourceSupp try { this.keyedObjectPool.close(); } - catch (Exception e) { - this.logger.warn("An exception occurred while closing the underlying pool.", e); + catch (Exception ex) { + this.logger.warn("An exception occurred while closing the underlying pool.", ex); } } @@ -257,8 +257,8 @@ public class PooledContextSource extends DelegatingBaseLdapPathContextSourceSupp try { dirContext = (DirContext) this.keyedObjectPool.borrowObject(dirContextType); } - catch (Exception e) { - throw new DataAccessResourceFailureException("Failed to borrow DirContext from pool.", e); + catch (Exception ex) { + throw new DataAccessResourceFailureException("Failed to borrow DirContext from pool.", ex); } if (dirContext instanceof LdapContext) { diff --git a/core/src/main/java/org/springframework/ldap/pool2/validation/DefaultDirContextValidator.java b/core/src/main/java/org/springframework/ldap/pool2/validation/DefaultDirContextValidator.java index 59222186..feb7bf57 100644 --- a/core/src/main/java/org/springframework/ldap/pool2/validation/DefaultDirContextValidator.java +++ b/core/src/main/java/org/springframework/ldap/pool2/validation/DefaultDirContextValidator.java @@ -181,8 +181,8 @@ public class DefaultDirContextValidator implements DirContextValidator { return true; } } - catch (Exception e) { - this.logger.debug("DirContext '{}' failed validation with an exception.", dirContext, e); + catch (Exception ex) { + this.logger.debug("DirContext '{}' failed validation with an exception.", dirContext, ex); return false; } finally { diff --git a/core/src/main/java/org/springframework/ldap/query/DefaultContainerCriteria.java b/core/src/main/java/org/springframework/ldap/query/DefaultContainerCriteria.java index d882e89a..767abcd0 100644 --- a/core/src/main/java/org/springframework/ldap/query/DefaultContainerCriteria.java +++ b/core/src/main/java/org/springframework/ldap/query/DefaultContainerCriteria.java @@ -23,9 +23,6 @@ import javax.naming.Name; import org.springframework.ldap.filter.Filter; -import static org.springframework.ldap.query.CriteriaContainerType.AND; -import static org.springframework.ldap.query.CriteriaContainerType.OR; - /** * @author Mattias Hellborg Arthursson * @since 2.0 @@ -55,28 +52,28 @@ class DefaultContainerCriteria implements AppendableContainerCriteria { @Override public ConditionCriteria and(String attribute) { - AND.validateSameType(this.type); - this.type = AND; + CriteriaContainerType.AND.validateSameType(this.type); + this.type = CriteriaContainerType.AND; return new DefaultConditionCriteria(this, attribute); } @Override public ConditionCriteria or(String attribute) { - OR.validateSameType(this.type); - this.type = OR; + CriteriaContainerType.OR.validateSameType(this.type); + this.type = CriteriaContainerType.OR; return new DefaultConditionCriteria(this, attribute); } @Override public ContainerCriteria and(ContainerCriteria nested) { - if (this.type == OR) { - return new DefaultContainerCriteria(this.topQuery).withType(AND).append(this.filter()) + if (this.type == CriteriaContainerType.OR) { + return new DefaultContainerCriteria(this.topQuery).withType(CriteriaContainerType.AND).append(this.filter()) .append(nested.filter()); } else { - this.type = AND; + this.type = CriteriaContainerType.AND; this.filters.add(nested.filter()); return this; } @@ -84,12 +81,12 @@ class DefaultContainerCriteria implements AppendableContainerCriteria { @Override public ContainerCriteria or(ContainerCriteria nested) { - if (this.type == AND) { - return new DefaultContainerCriteria(this.topQuery).withType(OR).append(this.filter()) + if (this.type == CriteriaContainerType.AND) { + return new DefaultContainerCriteria(this.topQuery).withType(CriteriaContainerType.OR).append(this.filter()) .append(nested.filter()); } else { - this.type = OR; + this.type = CriteriaContainerType.OR; this.filters.add(nested.filter()); return this; } diff --git a/core/src/main/java/org/springframework/ldap/support/LdapEncoder.java b/core/src/main/java/org/springframework/ldap/support/LdapEncoder.java index eeb836b8..ea7e0c9c 100644 --- a/core/src/main/java/org/springframework/ldap/support/LdapEncoder.java +++ b/core/src/main/java/org/springframework/ldap/support/LdapEncoder.java @@ -98,8 +98,9 @@ public final class LdapEncoder { */ public static String filterEncode(String value) { - if (value == null) + if (value == null) { return null; + } // make buffer roomy StringBuilder encodedValue = new StringBuilder(value.length() * 2); @@ -142,8 +143,9 @@ public final class LdapEncoder { */ public static String nameEncode(String value) { - if (value == null) + if (value == null) { return null; + } // make buffer roomy StringBuilder encodedValue = new StringBuilder(value.length() * 2); @@ -188,8 +190,9 @@ public final class LdapEncoder { */ static public String nameDecode(String value) throws BadLdapGrammarException { - if (value == null) + if (value == null) { return null; + } // make buffer same size StringBuilder decoded = new StringBuilder(value.length()); diff --git a/core/src/main/java/org/springframework/ldap/support/LdapNameBuilder.java b/core/src/main/java/org/springframework/ldap/support/LdapNameBuilder.java index aa66f521..992872f3 100644 --- a/core/src/main/java/org/springframework/ldap/support/LdapNameBuilder.java +++ b/core/src/main/java/org/springframework/ldap/support/LdapNameBuilder.java @@ -84,8 +84,8 @@ public final class LdapNameBuilder { this.ldapName.add(new Rdn(key, value)); return this; } - catch (InvalidNameException e) { - throw new org.springframework.ldap.InvalidNameException(e); + catch (InvalidNameException ex) { + throw new org.springframework.ldap.InvalidNameException(ex); } } @@ -101,8 +101,8 @@ public final class LdapNameBuilder { this.ldapName.addAll(this.ldapName.size(), name); return this; } - catch (InvalidNameException e) { - throw new org.springframework.ldap.InvalidNameException(e); + catch (InvalidNameException ex) { + throw new org.springframework.ldap.InvalidNameException(ex); } } diff --git a/core/src/main/java/org/springframework/ldap/support/LdapUtils.java b/core/src/main/java/org/springframework/ldap/support/LdapUtils.java index 39e4670f..937ba0a8 100644 --- a/core/src/main/java/org/springframework/ldap/support/LdapUtils.java +++ b/core/src/main/java/org/springframework/ldap/support/LdapUtils.java @@ -307,8 +307,8 @@ public final class LdapUtils { try { handleAttributeValue(attribute.getID(), attribute.get(i), i, callbackHandler); } - catch (javax.naming.NamingException e) { - throw convertLdapException(e); + catch (javax.naming.NamingException ex) { + throw convertLdapException(ex); } } } @@ -319,33 +319,6 @@ public final class LdapUtils { callbackHandler.handleAttributeValue(attributeID, value, i); } - /** - * An {@link AttributeValueCallbackHandler} to collect values in a supplied - * collection. - * - * @author Mattias Hellborg Arthursson - */ - private static final class CollectingAttributeValueCallbackHandler implements AttributeValueCallbackHandler { - - private final Collection collection; - - private final Class clazz; - - public CollectingAttributeValueCallbackHandler(Collection collection, Class clazz) { - Assert.notNull(collection, "Collection must not be null"); - Assert.notNull(clazz, "Clazz parameter must not be null"); - - this.collection = collection; - this.clazz = clazz; - } - - public void handleAttributeValue(String attributeName, Object attributeValue, int index) { - Assert.isTrue(attributeName == null || this.clazz.isAssignableFrom(attributeValue.getClass())); - this.collection.add(this.clazz.cast(attributeValue)); - } - - } - /** * Converts a CompositeName to a String in a way that avoids escaping problems, such * as the dreaded "triple backslash" problem. @@ -387,8 +360,8 @@ public final class LdapUtils { try { return new LdapName(convertCompositeNameToString(compositeName)); } - catch (InvalidNameException e) { - throw convertLdapException(e); + catch (InvalidNameException ex) { + throw convertLdapException(ex); } } else { @@ -396,8 +369,8 @@ public final class LdapUtils { try { result.addAll(0, name); } - catch (InvalidNameException e) { - throw convertLdapException(e); + catch (InvalidNameException ex) { + throw convertLdapException(ex); } return result; @@ -418,8 +391,8 @@ public final class LdapUtils { try { return new LdapName(distinguishedName); } - catch (InvalidNameException e) { - throw convertLdapException(e); + catch (InvalidNameException ex) { + throw convertLdapException(ex); } } @@ -457,8 +430,8 @@ public final class LdapUtils { try { result.remove(0); } - catch (InvalidNameException e) { - throw convertLdapException(e); + catch (InvalidNameException ex) { + throw convertLdapException(ex); } } @@ -483,8 +456,8 @@ public final class LdapUtils { try { result.addAll(0, pathToPrepend); } - catch (InvalidNameException e) { - throw convertLdapException(e); + catch (InvalidNameException ex) { + throw convertLdapException(ex); } return result; @@ -544,8 +517,8 @@ public final class LdapUtils { try { return oneAttribute.get(); } - catch (javax.naming.NamingException e) { - throw convertLdapException(e); + catch (javax.naming.NamingException ex) { + throw convertLdapException(ex); } } } @@ -787,4 +760,31 @@ public final class LdapUtils { return sb.toString(); } + /** + * An {@link AttributeValueCallbackHandler} to collect values in a supplied + * collection. + * + * @author Mattias Hellborg Arthursson + */ + private static final class CollectingAttributeValueCallbackHandler implements AttributeValueCallbackHandler { + + private final Collection collection; + + private final Class clazz; + + public CollectingAttributeValueCallbackHandler(Collection collection, Class clazz) { + Assert.notNull(collection, "Collection must not be null"); + Assert.notNull(clazz, "Clazz parameter must not be null"); + + this.collection = collection; + this.clazz = clazz; + } + + public void handleAttributeValue(String attributeName, Object attributeValue, int index) { + Assert.isTrue(attributeName == null || this.clazz.isAssignableFrom(attributeValue.getClass())); + this.collection.add(this.clazz.cast(attributeValue)); + } + + } + } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/BindOperationExecutor.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/BindOperationExecutor.java index 57fe2937..0071ee42 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/BindOperationExecutor.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/BindOperationExecutor.java @@ -73,8 +73,8 @@ public class BindOperationExecutor implements CompensatingTransactionOperationEx try { this.ldapOperations.unbind(this.dn); } - catch (Exception e) { - log.warn("Failed to rollback, dn:" + this.dn.toString(), e); + catch (Exception ex) { + log.warn("Failed to rollback, dn:" + this.dn.toString(), ex); } } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/ModifyAttributesOperationExecutor.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/ModifyAttributesOperationExecutor.java index aaac9394..93c621a5 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/ModifyAttributesOperationExecutor.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/ModifyAttributesOperationExecutor.java @@ -73,7 +73,7 @@ public class ModifyAttributesOperationExecutor implements CompensatingTransactio log.debug("Rolling back modifyAttributes operation"); this.ldapOperations.modifyAttributes(this.dn, this.compensatingModifications); } - catch (Exception e) { + catch (Exception ex) { log.warn("Failed to rollback ModifyAttributes operation, dn: " + this.dn); } } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/RebindOperationExecutor.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/RebindOperationExecutor.java index fd02f3d6..6b079487 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/RebindOperationExecutor.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/RebindOperationExecutor.java @@ -87,10 +87,10 @@ public class RebindOperationExecutor implements CompensatingTransactionOperation this.ldapOperations.unbind(this.originalDn); this.ldapOperations.rename(this.temporaryDn, this.originalDn); } - catch (Exception e) { + catch (Exception ex) { log.warn( "Failed to rollback operation, dn: " + this.originalDn + "; temporary DN:this. " + this.temporaryDn, - e); + ex); } } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/RenameOperationExecutor.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/RenameOperationExecutor.java index 6d243ea7..3f5af01e 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/RenameOperationExecutor.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/RenameOperationExecutor.java @@ -64,7 +64,7 @@ public class RenameOperationExecutor implements CompensatingTransactionOperation try { this.ldapOperations.rename(this.newDn, this.originalDn); } - catch (Exception e) { + catch (Exception ex) { log.warn("Unable to rollback rename operation. " + "originalDn: " + this.newDn + "; newDn:this. " + this.originalDn); } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/UnbindOperationExecutor.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/UnbindOperationExecutor.java index 062e1b09..011c43b0 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/UnbindOperationExecutor.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/UnbindOperationExecutor.java @@ -66,7 +66,7 @@ public class UnbindOperationExecutor implements CompensatingTransactionOperation try { this.ldapOperations.rename(this.temporaryDn, this.originalDn); } - catch (Exception e) { + catch (Exception ex) { log.warn("Filed to rollback unbind operation, temporaryDn: " + this.temporaryDn + "; originalDn:this. " + this.originalDn); } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndDataSourceTransactionManager.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndDataSourceTransactionManager.java index 813b3976..a4903c59 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndDataSourceTransactionManager.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndDataSourceTransactionManager.java @@ -83,10 +83,10 @@ public class ContextSourceAndDataSourceTransactionManager extends DataSourceTran try { this.ldapManagerDelegate.doBegin(actualTransactionObject.getLdapTransactionObject(), definition); } - catch (TransactionException e) { + catch (TransactionException ex) { // Failed to start LDAP transaction - make sure we clean up properly super.doCleanupAfterCompletion(actualTransactionObject.getDataSourceTransactionObject()); - throw e; + throw ex; } } @@ -162,28 +162,6 @@ public class ContextSourceAndDataSourceTransactionManager extends DataSourceTran this.ldapManagerDelegate.setRenamingStrategy(renamingStrategy); } - private final static class ContextSourceAndDataSourceTransactionObject { - - private Object ldapTransactionObject; - - private Object dataSourceTransactionObject; - - public ContextSourceAndDataSourceTransactionObject(Object ldapTransactionObject, - Object dataSourceTransactionObject) { - this.ldapTransactionObject = ldapTransactionObject; - this.dataSourceTransactionObject = dataSourceTransactionObject; - } - - public Object getDataSourceTransactionObject() { - return this.dataSourceTransactionObject; - } - - public Object getLdapTransactionObject() { - return this.ldapTransactionObject; - } - - } - /* * @see * org.springframework.jdbc.datasource.DataSourceTransactionManager#doSuspend(java. @@ -209,4 +187,26 @@ public class ContextSourceAndDataSourceTransactionManager extends DataSourceTran this.ldapManagerDelegate.checkRenamingStrategy(); } -} \ No newline at end of file + private final static class ContextSourceAndDataSourceTransactionObject { + + private Object ldapTransactionObject; + + private Object dataSourceTransactionObject; + + public ContextSourceAndDataSourceTransactionObject(Object ldapTransactionObject, + Object dataSourceTransactionObject) { + this.ldapTransactionObject = ldapTransactionObject; + this.dataSourceTransactionObject = dataSourceTransactionObject; + } + + public Object getDataSourceTransactionObject() { + return this.dataSourceTransactionObject; + } + + public Object getLdapTransactionObject() { + return this.ldapTransactionObject; + } + + } + +} diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndHibernateTransactionManager.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndHibernateTransactionManager.java index 01bc9809..99ed3877 100755 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndHibernateTransactionManager.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceAndHibernateTransactionManager.java @@ -84,10 +84,10 @@ public class ContextSourceAndHibernateTransactionManager extends HibernateTransa try { this.ldapManagerDelegate.doBegin(actualTransactionObject.getLdapTransactionObject(), definition); } - catch (TransactionException e) { + catch (TransactionException ex) { // Failed to start LDAP transaction - make sure we clean up properly super.doCleanupAfterCompletion(actualTransactionObject.getHibernateTransactionObject()); - throw e; + throw ex; } } @@ -162,28 +162,6 @@ public class ContextSourceAndHibernateTransactionManager extends HibernateTransa this.ldapManagerDelegate.setRenamingStrategy(renamingStrategy); } - private static final class ContextSourceAndHibernateTransactionObject { - - private Object ldapTransactionObject; - - private Object hibernateTransactionObject; - - public ContextSourceAndHibernateTransactionObject(Object ldapTransactionObject, - Object hibernateTransactionObject) { - this.ldapTransactionObject = ldapTransactionObject; - this.hibernateTransactionObject = hibernateTransactionObject; - } - - public Object getHibernateTransactionObject() { - return this.hibernateTransactionObject; - } - - public Object getLdapTransactionObject() { - return this.ldapTransactionObject; - } - - } - /* * @see * org.springframework.orm.hibernate5.HibernateTransactionManager#doSuspend(java.lang. @@ -209,4 +187,26 @@ public class ContextSourceAndHibernateTransactionManager extends HibernateTransa this.ldapManagerDelegate.checkRenamingStrategy(); } + private static final class ContextSourceAndHibernateTransactionObject { + + private Object ldapTransactionObject; + + private Object hibernateTransactionObject; + + public ContextSourceAndHibernateTransactionObject(Object ldapTransactionObject, + Object hibernateTransactionObject) { + this.ldapTransactionObject = ldapTransactionObject; + this.hibernateTransactionObject = hibernateTransactionObject; + } + + public Object getHibernateTransactionObject() { + return this.hibernateTransactionObject; + } + + public Object getLdapTransactionObject() { + return this.ldapTransactionObject; + } + + } + } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManager.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManager.java index 6adc5b07..2dc3a9b8 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManager.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManager.java @@ -185,4 +185,4 @@ public class ContextSourceTransactionManager extends AbstractPlatformTransaction return (txObject.getHolder() != null); } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerDelegate.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerDelegate.java index 76a97002..2b932064 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerDelegate.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/ContextSourceTransactionManagerDelegate.java @@ -111,8 +111,8 @@ public class ContextSourceTransactionManagerDelegate extends AbstractCompensatin LOG.debug("Closing target context"); ctx.close(); } - catch (NamingException e) { - LOG.warn("Failed to close target context", e); + catch (NamingException ex) { + LOG.warn("Failed to close target context", ex); } } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/TransactionAwareDirContextInvocationHandler.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/TransactionAwareDirContextInvocationHandler.java index 02cf995e..6f6f101b 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/TransactionAwareDirContextInvocationHandler.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/manager/TransactionAwareDirContextInvocationHandler.java @@ -70,7 +70,7 @@ public class TransactionAwareDirContextInvocationHandler implements InvocationHa } else if (methodName.equals("equals")) { // Only consider equal when proxies are identical. - return (proxy == args[0] ? Boolean.TRUE : Boolean.FALSE); + return (proxy != args[0]) ? Boolean.FALSE : Boolean.TRUE; } else if (methodName.equals("hashCode")) { // Use hashCode of Connection proxy. @@ -89,8 +89,8 @@ public class TransactionAwareDirContextInvocationHandler implements InvocationHa try { return method.invoke(this.target, args); } - catch (InvocationTargetException e) { - throw e.getTargetException(); + catch (InvocationTargetException ex) { + throw ex.getTargetException(); } } } diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/support/DefaultTempEntryRenamingStrategy.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/support/DefaultTempEntryRenamingStrategy.java index 6b6dbb03..23d449b2 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/support/DefaultTempEntryRenamingStrategy.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/support/DefaultTempEntryRenamingStrategy.java @@ -67,8 +67,8 @@ public class DefaultTempEntryRenamingStrategy implements TempEntryRenamingStrate String leafNode = (String) temporaryName.remove(temporaryName.size() - 1); temporaryName.add(new Rdn(leafNode + this.tempSuffix)); } - catch (InvalidNameException e) { - throw new org.springframework.ldap.InvalidNameException(e); + catch (InvalidNameException ex) { + throw new org.springframework.ldap.InvalidNameException(ex); } return temporaryName; diff --git a/core/src/main/java/org/springframework/ldap/transaction/compensating/support/DifferentSubtreeTempEntryRenamingStrategy.java b/core/src/main/java/org/springframework/ldap/transaction/compensating/support/DifferentSubtreeTempEntryRenamingStrategy.java index 34f005fe..c89b2ef6 100644 --- a/core/src/main/java/org/springframework/ldap/transaction/compensating/support/DifferentSubtreeTempEntryRenamingStrategy.java +++ b/core/src/main/java/org/springframework/ldap/transaction/compensating/support/DifferentSubtreeTempEntryRenamingStrategy.java @@ -83,8 +83,8 @@ public class DifferentSubtreeTempEntryRenamingStrategy implements TempEntryRenam return newName; } - catch (InvalidNameException e) { - throw new org.springframework.ldap.InvalidNameException(e); + catch (InvalidNameException ex) { + throw new org.springframework.ldap.InvalidNameException(ex); } } diff --git a/core/src/main/java/org/springframework/transaction/compensating/support/AbstractCompensatingTransactionManagerDelegate.java b/core/src/main/java/org/springframework/transaction/compensating/support/AbstractCompensatingTransactionManagerDelegate.java index e481da6e..3cedad26 100644 --- a/core/src/main/java/org/springframework/transaction/compensating/support/AbstractCompensatingTransactionManagerDelegate.java +++ b/core/src/main/java/org/springframework/transaction/compensating/support/AbstractCompensatingTransactionManagerDelegate.java @@ -82,8 +82,8 @@ public abstract class AbstractCompensatingTransactionManagerDelegate { TransactionSynchronizationManager.bindResource(getTransactionSynchronizationKey(), contextHolder); } } - catch (Exception e) { - throw new CannotCreateTransactionException("Could not create DirContext instance for transaction", e); + catch (Exception ex) { + throw new CannotCreateTransactionException("Could not create DirContext instance for transaction", ex); } } diff --git a/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionHolderSupport.java b/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionHolderSupport.java index 86ec5b46..5456c3ae 100644 --- a/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionHolderSupport.java +++ b/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionHolderSupport.java @@ -70,4 +70,4 @@ public abstract class CompensatingTransactionHolderSupport extends ResourceHolde this.transactionOperationManager = transactionOperationManager; } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionObject.java b/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionObject.java index abe1e7da..dc42871f 100644 --- a/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionObject.java +++ b/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionObject.java @@ -55,4 +55,4 @@ public class CompensatingTransactionObject { this.holder = holder; } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionUtils.java b/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionUtils.java index 2bd1e4e9..b7aa47ea 100644 --- a/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionUtils.java +++ b/core/src/main/java/org/springframework/transaction/compensating/support/CompensatingTransactionUtils.java @@ -63,8 +63,8 @@ public final class CompensatingTransactionUtils { try { method.invoke(target, args); } - catch (InvocationTargetException e) { - throw e.getTargetException(); + catch (InvocationTargetException ex) { + throw ex.getTargetException(); } } } diff --git a/core/src/main/java/org/springframework/transaction/compensating/support/DefaultCompensatingTransactionOperationManager.java b/core/src/main/java/org/springframework/transaction/compensating/support/DefaultCompensatingTransactionOperationManager.java index 69f91796..6fdacbb2 100644 --- a/core/src/main/java/org/springframework/transaction/compensating/support/DefaultCompensatingTransactionOperationManager.java +++ b/core/src/main/java/org/springframework/transaction/compensating/support/DefaultCompensatingTransactionOperationManager.java @@ -78,8 +78,8 @@ public class DefaultCompensatingTransactionOperationManager implements Compensat try { rollbackOperation.rollback(); } - catch (Exception e) { - throw new TransactionSystemException("Error occurred during rollback", e); + catch (Exception ex) { + throw new TransactionSystemException("Error occurred during rollback", ex); } } } @@ -110,8 +110,8 @@ public class DefaultCompensatingTransactionOperationManager implements Compensat try { operationExecutor.commit(); } - catch (Exception e) { - throw new TransactionSystemException("Error occurred during commit", e); + catch (Exception ex) { + throw new TransactionSystemException("Error occurred during commit", ex); } } }