INT-1956 TCP: Emit Stream Decoding Events

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

Emit an application event when a decoding exception
occurs, allowing the user to examine the buffer
at the time the exception occurred.

INT-1956: Polishing

Polishing

Use `OP_READ` instead of `readyOps()` when removing interest.

Polishing - Fix ConnectionTimeoutTests

Test publisher was casting all events to TcpConnectionEvent.
This commit is contained in:
Gary Russell
2014-04-28 23:57:19 +03:00
committed by Artem Bilan
parent 9f61464974
commit 3e0f10a657
12 changed files with 361 additions and 127 deletions

View File

@@ -500,6 +500,14 @@
</listitem>
</itemizedlist>
</para>
<para>
In addition, since <emphasis>version 4.0</emphasis> the standard deserializers discussed in
<xref linkend="connection-factories"/> now emit <classname>TcpDeserializationExceptionEvent</classname>s
when problems are encountered decoding the data stream. These events contain the exception, the
buffer that was in the process of being built, and an offset into the buffer (if available) at the
point the exception occurred. Applications can use a normal <interfacename>ApplicationListener</interfacename>,
or see <xref linkend="applicationevent-inbound"/>, to capture these events, allowing analysis of the problem.
</para>
</section>
<section id="tcp-adapters">
<title>TCP Adapters</title>

View File

@@ -341,5 +341,14 @@
See <xref linkend="jpa-retrieving-outbound-gateway"/> for more information.
</para>
</section>
<section id="4.0-tcp-deserializer-events">
<title>TCP Deserialization Events</title>
<para>
When one of the standard deserializers encounters a problem decoding the input stream to
a message, it will now emit a <classname>TcpDeserializationExceptionEvent</classname>, allowing
applications to examine the data at the point the exception occurred.
See <xref linkend="tcp-events"/> for more information.
</para>
</section>
</section>
</chapter>