Commit Graph

8758 Commits

Author SHA1 Message Date
Gary Russell
9d19f66e83 GH-2825: Fix 4.3 Doc rendering
Fixes https://github.com/spring-projects/spring-integration/issues/2825
2019-03-20 14:39:48 -04:00
Artem Bilan
afa98c1aaa GH-2820: Close session in FtpRemFileTempl.exists
Fixes: https://github.com/spring-projects/spring-integration/issues/2820

The current `FtpRemoteFileTemplate.exists()` implementation obtains a
`Session` for the `NLST_AND_DIRS` mode, but doesn't close it.

* Fix the `FtpRemoteFileTemplate.exists()` method to delegate to `super`
for the proper interaction with a `Session`

**Cherry-pick to 5.1.x, 5.0.x & 4.3.x**
2019-03-19 11:32:14 -04:00
Spring Operator
407ad3a578 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://docs.oracle.com/javaee/6/api/ with 1 occurrences migrated to:
  https://docs.oracle.com/javaee/6/api/ ([https](https://docs.oracle.com/javaee/6/api/) result 200).
* http://docs.oracle.com/javase/7/docs/api/ with 1 occurrences migrated to:
  https://docs.oracle.com/javase/7/docs/api/ ([https](https://docs.oracle.com/javase/7/docs/api/) result 200).
* http://docs.spring.io/spring-amqp/docs/current/api/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-amqp/docs/current/api/ ([https](https://docs.spring.io/spring-amqp/docs/current/api/) result 200).
* http://docs.spring.io/spring-data-gemfire/docs/current/api/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-data-gemfire/docs/current/api/ ([https](https://docs.spring.io/spring-data-gemfire/docs/current/api/) result 200).
* http://docs.spring.io/spring-data/data-mongo/docs/current/api/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-data/data-mongo/docs/current/api/ ([https](https://docs.spring.io/spring-data/data-mongo/docs/current/api/) result 200).
* http://docs.spring.io/spring-data/data-redis/docs/current/api/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-data/data-redis/docs/current/api/ ([https](https://docs.spring.io/spring-data/data-redis/docs/current/api/) result 200).
* http://docs.spring.io/spring-social-twitter/docs/current/apidocs/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-social-twitter/docs/current/apidocs/ ([https](https://docs.spring.io/spring-social-twitter/docs/current/apidocs/) result 200).
* http://docs.spring.io/spring-ws/sites/2.0/apidocs/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-ws/sites/2.0/apidocs/ ([https](https://docs.spring.io/spring-ws/sites/2.0/apidocs/) result 200).
* http://docs.spring.io/spring/docs/current/javadoc-api/ with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/ ([https](https://docs.spring.io/spring/docs/current/javadoc-api/) result 200).
* http://spring.io with 1 occurrences migrated to:
  https://spring.io ([https](https://spring.io) result 200).
* http://www.apache.org/licenses/LICENSE-2.0.txt with 1 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0.txt ([https](https://www.apache.org/licenses/LICENSE-2.0.txt) result 200).
2019-03-16 12:53:25 -04:00
Gary Russell
2ded76a69e Fix Zookeeper Issues
- `tryLock()` didn't throw `InterruptedException`
- `putIfAbsent()` use `get()` for current value
2019-03-08 12:41:04 -05:00
Gary Russell
047790ec38 Fix race in TcpOutboundGatewayTests 2019-03-05 13:06:18 -05:00
Artem Bilan
7035699a0b Fix StreamingInboundTests 2019-03-01 15:50:51 -05:00
Artem Bilan
a5ab79e6a7 Remove unused imports 2019-03-01 15:20:24 -05:00
Gary Russell
45789a99b8 GH-2776: Fix Streaming Remote File MessageSource
Fixes https://github.com/spring-projects/spring-integration/issues/2776
Also see https://github.com/spring-projects/spring-integration/issues/2777

- reset the filter for the current file if the fetch fails
- implement `Lifecycle` and clear the `toBeReceived` queue and corresponding
  filter entries

* Polishing - PR Comments **cherry-pick to all supported**

* Polishing

# Conflicts:
#	spring-integration-file/src/test/java/org/springframework/integration/file/remote/StreamingInboundTests.java
#	spring-integration-ftp/src/test/java/org/springframework/integration/ftp/inbound/FtpStreamingMessageSourceTests.java
#	spring-integration-jdbc/src/test/java/org/springframework/integration/jdbc/StoredProcJavaConfigTests.java

# Conflicts:
#	spring-integration-file/src/main/java/org/springframework/integration/file/remote/AbstractRemoteFileStreamingMessageSource.java
#	spring-integration-file/src/test/java/org/springframework/integration/file/remote/StreamingInboundTests.java

# Conflicts:
#	spring-integration-file/src/main/java/org/springframework/integration/file/remote/AbstractRemoteFileStreamingMessageSource.java
#	spring-integration-file/src/test/java/org/springframework/integration/file/remote/StreamingInboundTests.java
#	spring-integration-ftp/src/test/java/org/springframework/integration/ftp/inbound/FtpStreamingMessageSourceTests.java
#	spring-integration-sftp/src/test/java/org/springframework/integration/sftp/inbound/SftpStreamingMessageSourceTests.java
2019-03-01 15:15:04 -05:00
Artem Bilan
442b3d9471 Fix possible NPE when generate correlationData
**Cherry-pick to 4.3.x**

Related to https://github.com/spring-projects/spring-integration/pull/2761

# Conflicts:
#	spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AbstractAmqpOutboundEndpoint.java
2019-02-22 11:03:10 -05:00
Artem Bilan
c3c3f81429 Ignore RedisInboundChannelAdapterTests
https://build.spring.io/browse/INT-MJATS41-1636/

Looks like something is not stable with the latest Spring Data Ingalls-SR18
which is a dependency for IO Platform from Spring Boot 1.5.x
2019-02-22 10:18:46 -05:00
Artem Bilan
44f438d3f2 GH-2752: RequestMapping: react only for our event
Fixes https://github.com/spring-projects/spring-integration/issues/2752

The logic in the `IntegrationRequestMappingHandlerMapping` fully depends
on the application context it has been registered with, therefore any
arbitrary `ContextRefreshedEvent` doesn't fit our requirements.
More over it may cause a problem with missed mappings when parent-child
configuration is used.

**Chery-pick to 5.1.x, 5.0.x & 4.3.x**
2019-02-19 16:13:10 -05:00
Artem Bilan
72aaf0b03f GH-2723: Handle unsupported XML properties
Fixes spring-projects/spring-integration#2723

Not all XML components support all the configuration properties.
For example Saxon HE doesn't support `XMLConstants.ACCESS_EXTERNAL_DTD`
and end up with an exception like:
`IllegalArgumentException: Unknown configuration property http://javax.xml.XMLConstants/property/accessExternalDTD`

* Change `XsltPayloadTransformer` to re-use `TransformerFactoryUtils`
from spring-ws as a centralized source of `TransformerFactory`
configuration.
* Wrap `XMLConstants.ACCESS_EXTERNAL_STYLESHEET` to the `try..catch`
and log INFO about not supported property

**Cherry-pick to 5.0.x & 4.3.x**
2019-01-29 12:38:59 -05:00
Artem Bilan
5dc4b57bd8 Upgrade ActiveMQ to 5.15.8
https://build.spring.io/browse/INT-MJATS41-1609/

There might be possible race condition in the current ActiveMQ client
or broker.

* Upgrade to the latest ActiveMQ since we don't see such a failure on
master
2019-01-28 10:10:47 -05:00
Artem Bilan
54f97f113c INT-2549: Ignore MBean call reply in op-invoc-c-a
JIRA: https://jira.spring.io/browse/INT-2549

* Add `expectReply` property into the `OperationInvokingMessageHandler`
to align the one-way and request-reply behavior with all other similar
components in Spring Integration
* Ignore an operation invocation result in case of `expectReply == false`
and log warning
* Provide some refactoring into the `OperationInvokingMessageHandler`
to fix Sonar complains about complexity

**Cherry-pick to 5.0.x, 4.3.x**

# Conflicts:
#	spring-integration-jmx/src/main/java/org/springframework/integration/jmx/OperationInvokingMessageHandler.java
#	spring-integration-jmx/src/test/java/org/springframework/integration/jmx/OperationInvokingMessageHandlerTests.java

# Conflicts:
#	spring-integration-jmx/src/main/java/org/springframework/integration/jmx/config/OperationInvokingChannelAdapterParser.java
#	spring-integration-jmx/src/main/java/org/springframework/integration/jmx/config/OperationInvokingOutboundGatewayParser.java
2019-01-23 15:56:59 -05:00
Artem Bilan
7242fc8039 INT-4574: JDBC: Add NOT NULL for primary keys (#2698)
* INT-4574: JDBC: Add NOT NULL for primary keys

JIRA: https://jira.spring.io/browse/INT-4574

Some RDBMS don't allow have nullable columns for primary keys

* Add NOT NULL for all the columns involved in primary keys

**Cherry-pick to 4.3.x**

* * Include index generation into the `schema.sql.vpp`

* * Remove redundant blank line from generated scripts

* * Fix INT_CHANNEL_MESSAGE primary generation

# Conflicts:
#	spring-integration-jdbc/src/main/resources/org/springframework/integration/jdbc/schema-mysql.sql
#	spring-integration-jdbc/src/main/resources/org/springframework/integration/jdbc/schema-oracle.sql
#	spring-integration-jdbc/src/main/sql/schema.sql.vpp
2019-01-15 09:18:48 -05:00
Spring Buildmaster
07655ee62b [artifactory-release] Next development version 2019-01-10 21:12:11 +00:00
Spring Buildmaster
9444d91d59 [artifactory-release] Release version 4.3.19.RELEASE 2019-01-10 21:12:07 +00:00
Artem Bilan
b720140faf Allow XML components injection
**Cherry-pick to 5.0.x & 4.3.x**

* Polishing after rebase
* Copyright to 2019

* Rebase and update according upstream deps
* Do not rely on `spring-web` in classpath: use `ClassUtils.forName()`
to load `ServletContextResource` class for checking

# Conflicts:
#	build.gradle
#	spring-integration-xml/src/main/java/org/springframework/integration/xml/selector/XmlValidatingMessageSelector.java
#	spring-integration-xml/src/main/java/org/springframework/integration/xml/transformer/XsltPayloadTransformer.java
#	spring-integration-xml/src/main/java/org/springframework/integration/xml/xpath/XPathUtils.java
#	spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTests.java

# Conflicts:
#	build.gradle
#	spring-integration-xml/src/main/java/org/springframework/integration/xml/DefaultXmlPayloadConverter.java
#	spring-integration-xml/src/main/java/org/springframework/integration/xml/splitter/XPathMessageSplitter.java
#	spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTests.java
2019-01-10 15:31:12 -05:00
Gary Russell
a2d419ef25 Upgrade Spring Framework to 4.3.22 2019-01-09 12:08:11 -05:00
Gary Russell
3406c87b41 Upgrade Jackson version 2019-01-04 16:11:24 -05:00
Artem Bilan
f0d8da22d2 Remove unused import
https://build.spring.io/browse/INT-SI43X-298/
2018-12-06 16:38:51 -05:00
Artem Bilan
7e79477b48 INT-4565: Fix IntComponentScan for profiles (#2652)
* INT-4565: Fix IntComponentScan for profiles

JIRA: https://jira.spring.io/browse/INT-4565

* Propagate an `Environment` to the internal `ClassPathScanningCandidateComponentProvider`
in the `IntegrationComponentScanRegistrar` for proper profiles activation
* Ensure the logic works in the `GatewayInterfaceTests`
* Some polishing and performance improvement for the `GatewayInterfaceTests`
* Add a note about `@Profile` in the `gateway.adoc`
* Polishing for the `gateway.adoc`

**Cherry-pick to 5.0.x & 4.3.x**

* * Add not activated by profile gateway interface into the `GatewayInterfaceTests`
* More `GatewayInterfaceTests` polishing
* Fix typo in the `gateway.adoc`

* Fix Checkstyle violation

# Conflicts:
#	spring-integration-core/src/test/java/org/springframework/integration/gateway/GatewayInterfaceTests.java
#	src/reference/asciidoc/gateway.adoc

# Conflicts:
#	spring-integration-core/src/test/java/org/springframework/integration/gateway/GatewayInterfaceTests.java
2018-12-06 16:25:37 -05:00
Gary Russell
e6140a66fd INT-4560: Fix Race in FileSystemPersistentAOFLF
JIRA: https://jira.spring.io/browse/INT-4560

Reproduced and tested with

```java
@SpringBootApplication
public class So53521593Application {

	private static final Logger logger = LoggerFactory.getLogger(So53521593Application.class);

	public static void main(String[] args) {
		SpringApplication.run(So53521593Application.class, args);
	}

	@Bean
	public IntegrationFlow flow() {
		ExecutorService exec = Executors.newFixedThreadPool(10);
		return IntegrationFlows.from(Files.inboundAdapter(new File("/tmp/foo")).filter(
					new MyFilter(new SimpleMetadataStore(), "foo")),
						e -> e.poller(Pollers.fixedDelay(5, TimeUnit.SECONDS)
								.maxMessagesPerPoll(10)))
				.channel(MessageChannels.executor(exec))
				.<File>handle((p, h) -> {
					try {
						p.delete();
						logger.info(p.toString());
						Thread.sleep(10_000);
					}
					catch (InterruptedException e1) {
						Thread.currentThread().interrupt();
					}
					return null;
				})
				.get();
	}
}

class MyFilter extends FileSystemPersistentAcceptOnceFileListFilter {

	public MyFilter(ConcurrentMetadataStore store, String prefix) {
		super(store, prefix);
	}

	@Override
	protected long modified(File file) {
		long modified = super.modified(file);
		System.out.println(modified);
		return modified;
	}

}
```

**cherry-pick to 5.0.x, 4.3.x**

(cherry picked from commit 39fef2c70a)
2018-11-28 14:27:57 -05:00
Spring Buildmaster
c0ca18b004 [artifactory-release] Next development version 2018-11-21 19:29:02 +00:00
Spring Buildmaster
0c8a0076a9 [artifactory-release] Release version 4.3.18.RELEASE 2018-11-21 19:28:58 +00:00
Artem Bilan
d385884582 Upgrade to SF-4.3.20 2018-11-21 11:22:33 -05:00
Gary Russell
b1b31749ba GH-2471: Close client on outbound adapter
Resolves https://github.com/spring-projects/spring-integration/issues/2471

# Conflicts:
#	spring-integration-mqtt/src/test/java/org/springframework/integration/mqtt/MqttAdapterTests.java
2018-10-10 12:01:54 -04:00
Artem Bilan
ef9c7609d5 RemoteFTempl: InputStream.close() in the finally
If exception happens in the `callback.doWithInputStream(inputStream)`,
we don't close the `inputStream = session.readRaw(remotePath)`.

* Move the `InputStream.close()` to the `finally` block of the
`SessionCallback` action in the `RemoteFileTemplate.get()`

**Cherry-pick to 5.0.x and 4.3.x**
2018-10-05 12:24:08 -04:00
Gary Russell
1fe22ea35f Add TCP Test Diagnostics 2018-09-20 11:49:24 -04:00
Artem Bilan
04ce95b54c Back-port TcpNioConnectionReadTests changes
https://build.spring.io/browse/INT-MJATS41-1468

The `master` changes to the `TcpNioConnectionReadTests` proves to be
stable for a while, so back-port them here to `4.3.x` to fix sporadic
failure on CI server
2018-09-07 13:11:14 -04:00
Jonathan Oddy
e2de2e3883 Avoid leaking Zookeeper znodes in tryLock
Creating a EPHEMERAL_SEQUENTIAL node was being used to ensure the
Zookeeper connection had been established. These were never explicitly
removed, which led to tryLock effectively leaking zNodes until the
client was terminated. This in turn lead to an extremely large number of
ephemeral nodes being deleted whenever a long running service
terminated!

This fix replaces the creation of a node with a stat of "/" instead.
This has the desired effect of re-establishing the Zookeeper connection,
but is a read-only operation.

* Remove unused import

(cherry picked from commit 47a74abd30)
2018-08-31 13:00:22 -04:00
Artem Bilan
424bf91f35 Remove max-rows from Stored Proc-in-ch-ad Docs
https://stackoverflow.com/questions/51361379/spring-integration-jdbc-what-is-the-replacement-for-the-missing-attribute-max

**Cherry-pick to 5.0.x and 4.3.x**

# Conflicts:
#	src/reference/asciidoc/jdbc.adoc
2018-07-16 11:35:56 -04:00
Artem Bilan
f2501e012c INT-4490: DefaultLockRepo: no uppercase format
JIRA https://jira.spring.io/browse/INT-4490

The `DefaultLockRepository.prefix` can be configured with the schema name.
And this one can be case-sensitive.

* Change format hint from the `%S` to `%s` to avoid upper-casing.

**Cherry-pick to 5.0.x and 4.3.x**
2018-07-11 17:41:34 -04:00
Artem Bilan
1f50b96bb2 INT-4498: StreamUtils -> FileCopyUtils
JIRA: https://jira.spring.io/browse/INT-4498

* Use `FileCopyUtils` instead of `StreamUtils` in test-cases when we deal
with `InputStream` s and files resources.
* Fix reflection-based tests with AOP to use an `ArrayList` access
instead of `LinkedList` since an optimization in SF:
6d6aa72e8f

**Cherry-pick to 5.0.x and 4.3.x**

(cherry picked from commit a1f016a)

# Conflicts:
#	spring-integration-file/src/test/java/org/springframework/integration/file/dsl/FileTests.java
#	spring-integration-redis/src/test/java/org/springframework/integration/redis/config/RedisStoreOutboundChannelAdapterParserTests.java
#	spring-integration-ws/src/test/java/org/springframework/integration/ws/SimpleWebServiceOutboundGatewayTests.java
2018-07-09 14:12:12 -04:00
Gary Russell
963a2fbbb0 INT-4498: SFTP: Close privateKey resource
JIRA: https://jira.spring.io/browse/INT-4498

Use `FileCopyUtils` instead of `StreamUtils`.

**cherry-pick to 5.0.x, 4.3.x**

(cherry picked from commit 8eac5b4)
2018-07-09 13:59:02 -04:00
Gary Russell
3a13e5911c INT-3916: ZK: Fix missing doc update
JIRA: https://jira.spring.io/browse/INT-3916

Changed CTOR injection to setters.
2018-06-27 12:27:21 -04:00
Spring Buildmaster
9e8ec40ab0 [artifactory-release] Next development version 2018-06-13 18:05:09 +00:00
Spring Buildmaster
537eccf78a [artifactory-release] Release version 4.3.17.RELEASE 2018-06-13 18:05:03 +00:00
Artem Bilan
b776b14b51 INT-4484: Fix SyndEntryPublishedDateComparator
JIRA: https://jira.spring.io/browse/INT-4484

Fix the `SyndEntryPublishedDateComparator` to move entries without a
date into the end of the sorted list

**Cherry-pick to 5.0.x and 4.3.x**
2018-06-13 12:26:40 -04:00
Gary Russell
482b4257f9 Upgrade Spring Framework/Security versions 2018-06-13 10:03:02 -04:00
Gary Russell
8916dbe99e Fix docs isClientModeConnected()
(cherry picked from commit a954290)
2018-06-12 12:37:48 -04:00
Artem Bilan
c78108f803 Revert the fix for AmqpChannelFactoryBean.destroy
https://build.spring.io/browse/INT-SI43X-278

The `AbstractAmqpChannel` is not `DisposableBean` in `4.3.x`
2018-06-11 19:45:33 -04:00
Artem Bilan
a74c9ef4fe INT-4486: Properly implement stop(Runnable)
JIRA: https://jira.spring.io/browse/INT-4486

The `SmartLifecycle.stop(Runnable callback)` must always call the
`callback` in the end independently of the internal state

* Revise all the `SmartLifecycle` implementations for the proper
`callback` handling

**Cherry-pick to 5.0.x and 4.3.x**
2018-06-11 17:57:22 -04:00
brempusz
6f262d7d21 GH-2467: JdbcLockReg: retry on TransDataAccessExc
* GH-2467: JdbcLockRegistry should retry on DeadlockLoserDataAccessException

Fixes #2467

MySQL 5.7.15 introduced setting `innodb_deadlock_detect` (enabled by
default). As a result MySQL JDBC driver throws
`DeadlockLoserDataAccessException` when deadlock is detected.
`JdbcLockRegistry` doesn't handle it causing lock to be lost.

* Retry `doLock()` on data access deadlock instead of loosing the lock

* Use TransientDataAccessException instead of derived exceptions

# Conflicts:
#	spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/JdbcLockRegistry.java
2018-06-07 13:00:48 -04:00
Gary Russell
81cfa805ae GH-2471: MQTT: Fix Thread Leak
Fixes https://github.com/spring-projects/spring-integration/issues/2471

Call `close()` on the client whenever the connection is lost or can't be
established, to release resources in the client.

**cherry-pick to 5.0.x, 4.3.x**

(cherry picked from commit f9cea64)

# Conflicts:
#	spring-integration-mqtt/src/test/java/org/springframework/integration/mqtt/MqttAdapterTests.java
2018-06-06 12:50:10 -04:00
Gary Russell
37c92a128b INT-4482: AMQP: Fix Double ErrorMessage
JIRA: https://jira.spring.io/browse/INT-4482

The outer try/catch sends an `ErrorMessage` for all exceptions; it should
only do so for `MessageConversionException`. Integration flow exceptions
will have been already handled by `MessageProducerSupport`.

Also, populate the raw message header consistently - previously it only
was populated for flow exceptions. Although the LEFE contains the raw
message, it should be in the `ErrorMessage` header for consistency.

**cherry-pick to 5.0.x, 4.3.x**

* Polishing - PR Comments

# Conflicts:
#	spring-integration-amqp/src/main/java/org/springframework/integration/amqp/inbound/AmqpInboundChannelAdapter.java
#	spring-integration-amqp/src/test/java/org/springframework/integration/amqp/dsl/AmqpTests.java
2018-06-05 16:44:25 -04:00
Artem Bilan
30c83b0ec7 INT-4481: Add licence and notice to each artifact
JIRA: https://jira.spring.io/browse/INT-4481

* Now each generated jar has `licence.txt` and `notice.txt` entries in
its `META-INF`
* Copy `notice.txt` from the Spring Framework with an appropriate
polishing
2018-06-05 13:09:31 -04:00
Artem Bilan
d8b0e4ccb0 INT-4471: PubSubChannel: Add errorHandler warn (#2459)
* INT-4471: PubSubChannel: Add errorHandler warn

JIRA: https://jira.spring.io/browse/INT-4471

* When an `Executor` is not provided, log warn that the provided
`ErrorHandler` is ignored.

**Cherry-pick to 5.0.x and 4.3.x**

* * Polish warn message
2018-05-31 15:31:31 -04:00
Gary Russell
8daca72c98 Fix broken links in reference appendices 2018-05-28 14:42:21 -04:00
Artem Bilan
e422c1d5d9 INT-4466: Do not force release groups if no match
JIRA: https://jira.spring.io/browse/INT-4466

When we schedule group for force complete in the
`AbstractCorrelatingMessageHandler`, we don't track a group `timestamp`
and its `lastModified` before the scheduled task.
This way, in the cluster environment, we may schedule several tasks
for different messages and the first started may release the group too
early.
Just because we extract a `MessageGroup` from the store already in the
task per se.

* Propagate the actual `timestamp` and `lastModified` from group before
scheduling task.
Compare these value with the actual group metadata in the
`processForceRelease()` before performing real `forceRelease()`.
This way we restore behavior before fixing memory leak, when we
propagated full `MessageGroup` to the scheduled task
* Implement `ResequencingMessageHandler.getComponentType()` for
consistency
* Remove unnecessary overhead with the `volatile` on many
`AbstractCorrelatingMessageHandler` properties, which hardly ever can be
changed at runtime

**Cherry-pick to 5.0.x and 4.3.x**
2018-05-15 10:39:20 -04:00