Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Spring Integration provides an extension of the Spring programming model to support the well-known Enterprise Integration Patterns (EIP)
Java Other

INT-3722: Fix Timing Issue TCP OG and Cached CF


The TCP outbound gateway correlates replies based on the connection id.

When a `CachingClientConnectionFactory` is being used, the connection is
returned to the pool too early, and can be reused. It is possible that
the current thread then removes the "next" pending reply from the correlation map.

Add code to the `CachingClientConnectionFactory` so that the "self" close from the
connection (called after `onMessage`) is deferred and the actual close (return to cache)
is controlled by the gateway itself.

This mechanism will no longer be needed when INT-3654 is resolved (removal of the "self"
closing by connections). At that time, connection users (such as the gateway) will be
in complete control.
latest commit 22fb524515
@garyrussell garyrussell authored
Failed to load latest commit information.
gradle/wrapper INT-3629: Upgrade to Gradle `2.3`
spring-integration-amqp/src Remove Deleted Method: StubRabbitConnectionFactory
spring-integration-bom INT-3397 Add spring-integration-bom
spring-integration-core/src INT-3685: Introduce STOMP Adapters
spring-integration-event/src INT-3589: Upgrade Dependencies
spring-integration-feed/src INT-3700: Fix FeedEntryMS for correct `lastTime`
spring-integration-file INT-3718: Add `ignore-hidden` to int-file:i-c-a
spring-integration-ftp INT-3706: Support FileExistModes in (S)FTP Gateway
spring-integration-gemfire/src INT-3581: Support selector-expression on WireTap
spring-integration-groovy/src INT-3637: JMX Improvements Msg Sources/Handlers
spring-integration-http/src INT-3687: Fix CORS & upgrade to IO 2.0
spring-integration-ip/src INT-3722: Fix Timing Issue TCP OG and Cached CF
spring-integration-jdbc Add Control Bus to Stored Proc JavaConfig Test
spring-integration-jms/src INT-3677: Support PPH and SpEL for Container Class
spring-integration-jmx/src Fix Generics usage in IdempotentReceiverIntTests
spring-integration-jpa/src INT-3581: Support selector-expression on WireTap
spring-integration-mail/src INT-3661: Fix the eager BF access from BPPs (P I)
spring-integration-mongodb/src INT-3666: Add MongoDbMetadataStore
spring-integration-mqtt/src INT-3661: Fix the eager BF access from BPPs (P I)
spring-integration-redis INT-3667: Fix `RedisLockRegistry` memory leak
spring-integration-rmi/src INT-3581: Support selector-expression on WireTap
spring-integration-scripting/src INT-3581: Support selector-expression on WireTap
spring-integration-security/src INT-3702: Compatibility with Spring Security 4.0
spring-integration-sftp INT-3589: Upgrade Dependencies
spring-integration-stomp/src INT-3685: Introduce STOMP Adapters
spring-integration-stream/src INT-3581: Support selector-expression on WireTap
spring-integration-syslog/src INT-3661: Fix the eager BF access from BPPs (P I)
spring-integration-test/src INT-3632: Sonar Improvements
spring-integration-twitter/src INT-3581: Support selector-expression on WireTap
spring-integration-websocket/src INT-3685: Introduce STOMP Adapters
spring-integration-ws/src Upgrade to Spring Web Services 2.2.1.RELEASE
spring-integration-xml/src INT-3599/INT-2042: Improve `XPathMessageSplitter`
spring-integration-xmpp/src INT-3581: Support selector-expression on WireTap
src INT-3718: Add `ignore-hidden` to int-file:i-c-a
.gitignore INT-3352 RedisLockRegistry
.travis.yml Enable RabbitMQ MQTT Plugin on Travis Update Fix Project URL in README
build.gradle Upgrade Spring Framework, Security Versions Bump Version to 4.2.0.BUILD-SNAPSHOT
gradlew INT-2907: Upgrade to Gradle 1.4
gradlew.bat INT-2681 - Upgrade to Gradle 1.0 GA
publish-maven.gradle INT-3516: Allow `Optional<>` in POJO Method Args
settings.gradle INT-3685: Introduce STOMP Adapters

Spring Integration

Checking out and Building

To check out the project and build from source, do the following:

git clone git://
cd spring-integration
./gradlew build

If you encounter out of memory errors during the build, increase available heap and permgen for Gradle:

GRADLE_OPTS='-XX:MaxPermSize=1024m -Xmx1024m'

To build and install jars into your local Maven cache:

./gradlew install

To build api Javadoc (results will be in build/api):

./gradlew api

To build reference documentation (results will be in build/reference):

./gradlew reference

To build complete distribution including -dist, -docs, and -schema zip files (results will be in build/distributions)

./gradlew dist

Using Eclipse

To generate Eclipse metadata (.classpath and .project files), do the following:

./gradlew eclipse

Once complete, you may then import the projects into Eclipse as usual:

File -> Import -> Existing projects into workspace

Browse to the 'spring-integration' root directory. All projects should import free of errors.

Using IntelliJ IDEA

To generate IDEA metadata (.iml and .ipr files), do the following:

./gradlew idea


For more information, please visit the Spring Integration website at:

Something went wrong with that request. Please try again.