You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2012/07/10 07:27:03 UTC
svn commit: r1359483 -
/mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
Author: elecharny
Date: Tue Jul 10 05:27:03 2012
New Revision: 1359483
URL: http://svn.apache.org/viewvc?rev=1359483&view=rev
Log:
Removed the WriteRequest from the ProtocolEncoderOutputImpl class : it's a waste of space, as the write request will remain stored until the session is closed. Just keep the destination (see DIRMINA-772)
Modified:
mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
Modified: mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
URL: http://svn.apache.org/viewvc/mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java?rev=1359483&r1=1359482&r2=1359483&view=diff
==============================================================================
--- mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java (original)
+++ mina/branches/2.0/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java Tue Jul 10 05:27:03 2012
@@ -80,7 +80,7 @@ public class ProtocolCodecFilter extends
/**
* Creates a new instance of ProtocolCodecFilter, without any factory.
* The encoder/decoder factory will be created as an inner class, using
- * the two parameters (encoder and decoder).
+ * the two parameters (encoder and decoder).
*
* @param encoder The class responsible for encoding the message
* @param decoder The class responsible for decoding the message
@@ -208,11 +208,11 @@ public class ProtocolCodecFilter extends
* throws an exception.
*
* while ( buffer not empty )
- * try
+ * try
* decode ( buffer )
* catch
* break;
- *
+ *
*/
@Override
public void messageReceived(NextFilter nextFilter, IoSession session,
@@ -229,8 +229,8 @@ public class ProtocolCodecFilter extends
ProtocolDecoderOutput decoderOut = getDecoderOut(session, nextFilter);
// Loop until we don't have anymore byte in the buffer,
- // or until the decoder throws an unrecoverable exception or
- // can't decoder a message, because there are not enough
+ // or until the decoder throws an unrecoverable exception or
+ // can't decoder a message, because there are not enough
// data in the buffer
while (in.hasRemaining()) {
int oldPos = in.position();
@@ -284,11 +284,11 @@ public class ProtocolCodecFilter extends
if (writeRequest instanceof MessageWriteRequest) {
MessageWriteRequest wrappedRequest = (MessageWriteRequest) writeRequest;
- nextFilter.messageSent(session, wrappedRequest.getParentRequest());
+ nextFilter.messageSent(session, wrappedRequest.getParentRequest());
}
else {
nextFilter.messageSent(session, writeRequest);
- }
+ }
}
@Override
@@ -335,7 +335,7 @@ public class ProtocolCodecFilter extends
// Flush only when the buffer has remaining.
if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) encodedMessage).hasRemaining()) {
SocketAddress destination = writeRequest.getDestination();
- WriteRequest encodedWriteRequest = new EncodedWriteRequest(encodedMessage, null, destination);
+ WriteRequest encodedWriteRequest = new EncodedWriteRequest(encodedMessage, null, destination);
nextFilter.filterWrite(session, encodedWriteRequest);
}
@@ -435,13 +435,16 @@ public class ProtocolCodecFilter extends
private final NextFilter nextFilter;
- private final WriteRequest writeRequest;
+ /** The WriteRequest destination */
+ private final SocketAddress destination;
public ProtocolEncoderOutputImpl(IoSession session,
NextFilter nextFilter, WriteRequest writeRequest) {
this.session = session;
this.nextFilter = nextFilter;
- this.writeRequest = writeRequest;
+
+ // Only store the destination, not the full WriteRequest.
+ destination = writeRequest.getDestination();
}
public WriteFuture flush() {
@@ -459,11 +462,13 @@ public class ProtocolCodecFilter extends
if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) encodedMessage).hasRemaining()) {
future = new DefaultWriteFuture(session);
nextFilter.filterWrite(session, new EncodedWriteRequest(encodedMessage,
- future, writeRequest.getDestination()));
+ future, destination));
}
}
if (future == null) {
+ // Creates an empty writeRequest containing the destination
+ WriteRequest writeRequest = new DefaultWriteRequest(null, null, destination);
future = DefaultWriteFuture.newNotWrittenFuture(
session, new NothingWrittenException(writeRequest));
}
@@ -483,7 +488,7 @@ public class ProtocolCodecFilter extends
disposeEncoder(session);
disposeDecoder(session);
- // We also remove the callback
+ // We also remove the callback
disposeDecoderOut(session);
}