You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/10/17 11:08:25 UTC
svn commit: r325865 - in /directory/network/trunk/src:
examples/org/apache/mina/examples/reverser/
examples/org/apache/mina/examples/sumup/codec/
java/org/apache/mina/filter/codec/ test/org/apache/mina/filter/codec/
Author: trustin
Date: Mon Oct 17 02:08:04 2005
New Revision: 325865
URL: http://svn.apache.org/viewcvs?rev=325865&view=rev
Log:
* Added dispose() method to:
** ProtocolEncoder
** ProtocolDecoder
** MessageEncoder
** MessageDecoder
* Renamed ProtocolViolationException to ProtocolDecoderException
* Now all encoders and decoders can throw any exceptions
Added:
directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java
- copied, changed from r325858, directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolViolationException.java
Removed:
directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolViolationException.java
Modified:
directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java
directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java
directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageDecoder.java
directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageEncoder.java
directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageDecoder.java
directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageEncoder.java
directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageDecoder.java
directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageEncoder.java
directory/network/trunk/src/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java
directory/network/trunk/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java
directory/network/trunk/src/java/org/apache/mina/filter/codec/MessageDecoder.java
directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoder.java
directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoder.java
directory/network/trunk/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java
Modified: directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java (original)
+++ directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineDecoder.java Mon Oct 17 02:08:04 2005
@@ -21,8 +21,8 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolDecoder;
+import org.apache.mina.filter.codec.ProtocolDecoderException;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
-import org.apache.mina.filter.codec.ProtocolViolationException;
/**
* Decodes a text line into a string.
@@ -37,7 +37,7 @@
public void decode( IoSession session, ByteBuffer in,
ProtocolDecoderOutput out )
- throws ProtocolViolationException
+ throws Exception
{
do
{
@@ -59,9 +59,13 @@
if( decodeBuf.length() > 256 )
{
decodeBuf.delete( 0, decodeBuf.length() );
- throw new ProtocolViolationException( "The line is too long." );
+ throw new ProtocolDecoderException( "The line is too long." );
}
}
while( in.hasRemaining() );
+ }
+
+ public void dispose() throws Exception
+ {
}
}
Modified: directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java (original)
+++ directory/network/trunk/src/examples/org/apache/mina/examples/reverser/TextLineEncoder.java Mon Oct 17 02:08:04 2005
@@ -22,7 +22,6 @@
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolEncoder;
import org.apache.mina.filter.codec.ProtocolEncoderOutput;
-import org.apache.mina.filter.codec.ProtocolViolationException;
/**
* Encodes a string into a text line which ends with <code>"\r\n"</code>.
@@ -35,15 +34,14 @@
public void encode( IoSession session, Object message,
ProtocolEncoderOutput out )
- throws ProtocolViolationException
+ throws Exception
{
String val = message.toString();
// Don't accept too long strings.
if( val.length() > 256 )
{
- throw new ProtocolViolationException(
- "Cannot encode too long string." );
+ throw new IllegalArgumentException( "Cannot encode too long string." );
}
val += "\r\n";
@@ -56,5 +54,9 @@
buf.flip();
out.write( buf );
+ }
+
+ public void dispose() throws Exception
+ {
}
}
Modified: directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageDecoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageDecoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageDecoder.java (original)
+++ directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageDecoder.java Mon Oct 17 02:08:04 2005
@@ -24,7 +24,6 @@
import org.apache.mina.filter.codec.MessageDecoder;
import org.apache.mina.filter.codec.MessageDecoderResult;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
-import org.apache.mina.filter.codec.ProtocolViolationException;
/**
* A {@link MessageDecoder} that decodes message header and forwards
@@ -63,7 +62,7 @@
return MessageDecoderResult.NOT_OK;
}
- public MessageDecoderResult decode( IoSession session, ByteBuffer in, ProtocolDecoderOutput out ) throws ProtocolViolationException
+ public MessageDecoderResult decode( IoSession session, ByteBuffer in, ProtocolDecoderOutput out ) throws Exception
{
// Try to skip header if not read.
if( !readHeader )
Modified: directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageEncoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageEncoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageEncoder.java (original)
+++ directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AbstractMessageEncoder.java Mon Oct 17 02:08:04 2005
@@ -23,7 +23,6 @@
import org.apache.mina.examples.sumup.message.AbstractMessage;
import org.apache.mina.filter.codec.MessageEncoder;
import org.apache.mina.filter.codec.ProtocolEncoderOutput;
-import org.apache.mina.filter.codec.ProtocolViolationException;
/**
* A {@link MessageEncoder} that encodes message header and forwards
@@ -41,7 +40,7 @@
this.type = type;
}
- public void encode( IoSession session, Object message, ProtocolEncoderOutput out ) throws ProtocolViolationException
+ public void encode( IoSession session, Object message, ProtocolEncoderOutput out ) throws Exception
{
AbstractMessage m = ( AbstractMessage ) message ;
ByteBuffer buf = ByteBuffer.allocate( 16 );
Modified: directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageDecoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageDecoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageDecoder.java (original)
+++ directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageDecoder.java Mon Oct 17 02:08:04 2005
@@ -49,4 +49,8 @@
m.setValue( in.getInt() );
return m;
}
+
+ public void dispose() throws Exception
+ {
+ }
}
Modified: directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageEncoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageEncoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageEncoder.java (original)
+++ directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/AddMessageEncoder.java Mon Oct 17 02:08:04 2005
@@ -60,4 +60,8 @@
{
return TYPES;
}
+
+ public void dispose() throws Exception
+ {
+ }
}
Modified: directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageDecoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageDecoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageDecoder.java (original)
+++ directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageDecoder.java Mon Oct 17 02:08:04 2005
@@ -74,4 +74,8 @@
return m;
}
}
+
+ public void dispose() throws Exception
+ {
+ }
}
Modified: directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageEncoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageEncoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageEncoder.java (original)
+++ directory/network/trunk/src/examples/org/apache/mina/examples/sumup/codec/ResultMessageEncoder.java Mon Oct 17 02:08:04 2005
@@ -69,4 +69,8 @@
return TYPES;
}
+ public void dispose() throws Exception
+ {
+ }
+
}
Modified: directory/network/trunk/src/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java Mon Oct 17 02:08:04 2005
@@ -81,7 +81,7 @@
* <tt>true</tt> not consuming the cumulative buffer.
*/
public void decode( IoSession session, ByteBuffer in,
- ProtocolDecoderOutput out ) throws ProtocolViolationException
+ ProtocolDecoderOutput out ) throws Exception
{
if( session.getTransportType().isStateless() )
{
@@ -133,8 +133,8 @@
* and you want to have <tt>doDecode</tt> method invoked again.
* Return <tt>false</tt> if remaining data is not enough to decode,
* then this method will be invoked again when more data is cumulated.
- * @throws ProtocolViolationException if cannot decode <tt>in</tt>.
+ * @throws Exception if cannot decode <tt>in</tt>.
*/
protected abstract boolean doDecode( IoSession session, ByteBuffer in,
- ProtocolDecoderOutput out ) throws ProtocolViolationException;
+ ProtocolDecoderOutput out ) throws Exception;
}
Modified: directory/network/trunk/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java Mon Oct 17 02:08:04 2005
@@ -23,6 +23,7 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import java.util.logging.Logger;
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoSession;
@@ -42,6 +43,7 @@
* @see MessageDecoder
*/
public class DemuxingProtocolCodecFactory implements ProtocolCodecFactory {
+ private static final Logger log = Logger.getLogger( DemuxingProtocolCodecFactory.class.getName() );
private MessageDecoderFactory[] decoderFactories = new MessageDecoderFactory[0];
private MessageEncoderFactory[] encoderFactories = new MessageEncoderFactory[0];
@@ -141,13 +143,13 @@
}
public void encode( IoSession session, Object message,
- ProtocolEncoderOutput out ) throws ProtocolViolationException
+ ProtocolEncoderOutput out ) throws Exception
{
Class type = message.getClass();
MessageEncoder encoder = findEncoder( type );
if( encoder == null )
{
- throw new ProtocolViolationException( "Unexpected message type: " + type );
+ throw new IllegalArgumentException( "Unexpected message type: " + type );
}
encoder.encode( session, message, out );
@@ -192,6 +194,24 @@
else
return encoder;
}
+
+ public void dispose() throws Exception
+ {
+ for( Iterator i = encoders.values().iterator(); i.hasNext(); )
+ {
+ MessageEncoder encoder = ( MessageEncoder ) i.next();
+ try
+ {
+ encoder.dispose();
+ }
+ catch( Throwable t )
+ {
+ log.warning(
+ "Failed to dispose: " + encoder.getClass().getName() +
+ " (" + encoder + ')' );
+ }
+ }
+ }
}
private class ProtocolDecoderImpl extends CumulativeProtocolDecoder
@@ -212,7 +232,7 @@
}
protected boolean doDecode( IoSession session, ByteBuffer in,
- ProtocolDecoderOutput out ) throws ProtocolViolationException
+ ProtocolDecoderOutput out ) throws Exception
{
if( currentDecoder == null )
{
@@ -254,7 +274,7 @@
{
// Throw an exception if all decoders cannot decode data.
in.position( in.limit() ); // Skip data
- throw new ProtocolViolationException(
+ throw new ProtocolDecoderException(
"No appropriate message decoder: " + in.getHexDump() );
}
@@ -277,11 +297,29 @@
}
else if( result == MessageDecoder.NOT_OK )
{
- throw new ProtocolViolationException( "Message decoder returned NOT_OK." );
+ throw new ProtocolDecoderException( "Message decoder returned NOT_OK." );
}
else
{
throw new IllegalStateException( "Unexpected decode result (see your decode()): " + result );
+ }
+ }
+
+ public void dispose() throws Exception
+ {
+ for( int i = decoders.length - 1; i >= 0; i -- )
+ {
+ MessageDecoder decoder = decoders[ i ];
+ try
+ {
+ decoder.dispose();
+ }
+ catch( Throwable t )
+ {
+ log.warning(
+ "Failed to dispose: " + decoder.getClass().getName() +
+ " (" + decoder + ')' );
+ }
}
}
}
Modified: directory/network/trunk/src/java/org/apache/mina/filter/codec/MessageDecoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/MessageDecoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/MessageDecoder.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/MessageDecoder.java Mon Oct 17 02:08:04 2005
@@ -74,9 +74,15 @@
* {@link #NEED_DATA} if you need more data to finish decoding current message.
* {@link #NOT_OK} if you cannot decode current message due to protocol specification violation.
*
- * @throws ProtocolViolationException if the read data violated protocol
- * specification
+ * @throws Exception if the read data violated protocol specification
*/
MessageDecoderResult decode( IoSession session, ByteBuffer in,
- ProtocolDecoderOutput out ) throws ProtocolViolationException;
+ ProtocolDecoderOutput out ) throws Exception;
+
+ /**
+ * Releases all resources related with this decoder.
+ *
+ * @throws Exception if failed to dispose all resources
+ */
+ void dispose() throws Exception;
}
Modified: directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java Mon Oct 17 02:08:04 2005
@@ -1,5 +1,7 @@
package org.apache.mina.filter.codec;
+import java.util.logging.Logger;
+
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.ByteBufferProxy;
import org.apache.mina.common.IoFilterAdapter;
@@ -9,6 +11,8 @@
public class ProtocolCodecFilter extends IoFilterAdapter
{
+ private static final Logger log = Logger.getLogger( ProtocolCodecFilter.class.getName() );
+
public static final String ENCODER = ProtocolCodecFilter.class.getName() + ".encoder";
public static final String DECODER = ProtocolCodecFilter.class.getName() + ".decoder";
public static final String ENCODER_OUT = ProtocolCodecFilter.class.getName() + ".encoderOutput";
@@ -38,10 +42,19 @@
decoder.decode( session, in, decoderOut );
}
}
- catch( ProtocolViolationException pve )
+ catch( Throwable t )
{
- pve.setHexdump( in.getHexDump() );
- throw pve;
+ ProtocolDecoderException pde;
+ if( t instanceof ProtocolDecoderException )
+ {
+ pde = ( ProtocolDecoderException ) t;
+ }
+ else
+ {
+ pde = new ProtocolDecoderException();
+ }
+ pde.setHexdump( in.getHexDump() );
+ throw pde;
}
finally
{
@@ -88,6 +101,39 @@
encoderOut.flush();
}
+ public void sessionClosed( NextFilter nextFilter, IoSession session ) throws Exception
+ {
+ try
+ {
+ nextFilter.sessionClosed( session );
+ }
+ finally
+ {
+ // Dispose encoder and decoder safely.
+ ProtocolEncoder encoder = getEncoder( session );
+ ProtocolDecoder decoder = getDecoder( session );
+ try
+ {
+ encoder.dispose();
+ }
+ catch( Throwable t )
+ {
+ log.warning( "Failed to dispose: " + encoder.getClass().getName() +
+ " (" + encoder + ')' );
+ }
+
+ try
+ {
+ decoder.dispose();
+ }
+ catch( Throwable t )
+ {
+ log.warning( "Falied to dispose: " + decoder.getClass().getName() +
+ " (" + decoder + ')' );
+ }
+ }
+ }
+
private ProtocolEncoder getEncoder( IoSession session )
{
ProtocolEncoder encoder = ( ProtocolEncoder ) session.getAttribute( ENCODER );
Modified: directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoder.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoder.java Mon Oct 17 02:08:04 2005
@@ -43,9 +43,15 @@
* method with read data, and then the decoder implementation puts decoded
* messages into {@link ProtocolDecoderOutput}.
*
- * @throws ProtocolViolationException if the read data violated protocol
- * specification
+ * @throws Exception if the read data violated protocol specification
*/
void decode( IoSession session, ByteBuffer in,
- ProtocolDecoderOutput out ) throws ProtocolViolationException;
+ ProtocolDecoderOutput out ) throws Exception;
+
+ /**
+ * Releases all resources related with this decoder.
+ *
+ * @throws Exception if failed to dispose all resources
+ */
+ void dispose() throws Exception;
}
Copied: directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java (from r325858, directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolViolationException.java)
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java?p2=directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java&p1=directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolViolationException.java&r1=325858&r2=325865&rev=325865&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolViolationException.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java Mon Oct 17 02:08:04 2005
@@ -21,15 +21,14 @@
import org.apache.mina.common.ByteBuffer;
/**
- * An exception that is thrown when {@link ProtocolEncoder} cannot understand or
- * failed to validate the specified message, or when {@link ProtocolDecoder}
+ * An exception that is thrown when {@link ProtocolDecoder}
* cannot understand or failed to validate the specified {@link ByteBuffer}
* content.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
*/
-public class ProtocolViolationException extends Exception
+public class ProtocolDecoderException extends Exception
{
private static final long serialVersionUID = 3545799879533408565L;
@@ -38,14 +37,14 @@
/**
* Constructs a new instance.
*/
- public ProtocolViolationException()
+ public ProtocolDecoderException()
{
}
/**
* Constructs a new instance with the specified message.
*/
- public ProtocolViolationException( String message )
+ public ProtocolDecoderException( String message )
{
super( message );
}
@@ -53,7 +52,7 @@
/**
* Constructs a new instance with the specified cause.
*/
- public ProtocolViolationException( Throwable cause )
+ public ProtocolDecoderException( Throwable cause )
{
super( cause );
}
@@ -62,7 +61,7 @@
* Constructs a new instance with the specified message and the specified
* cause.
*/
- public ProtocolViolationException( String message, Throwable cause )
+ public ProtocolDecoderException( String message, Throwable cause )
{
super( message, cause );
}
Modified: directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoder.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoder.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoder.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoder.java Mon Oct 17 02:08:04 2005
@@ -46,9 +46,16 @@
* the encoder implementation puts encoded {@link ByteBuffer}s into
* {@link ProtocolEncoderOutput}.
*
- * @throws ProtocolViolationException if the message violated protocol
- * specification
+ * @throws Exception if the message violated protocol specification
*/
void encode( IoSession session, Object message,
- ProtocolEncoderOutput out ) throws ProtocolViolationException;
+ ProtocolEncoderOutput out ) throws Exception;
+
+
+ /**
+ * Releases all resources related with this encoder.
+ *
+ * @throws Exception if failed to dispose all resources
+ */
+ void dispose() throws Exception;
}
Modified: directory/network/trunk/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java?rev=325865&r1=325864&r2=325865&view=diff
==============================================================================
--- directory/network/trunk/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java (original)
+++ directory/network/trunk/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java Mon Oct 17 02:08:04 2005
@@ -126,7 +126,7 @@
}
protected boolean doDecode( IoSession session, ByteBuffer in,
- ProtocolDecoderOutput out ) throws ProtocolViolationException
+ ProtocolDecoderOutput out ) throws Exception
{
Assert.assertTrue( in.hasRemaining() );
if( in.remaining() < 4 )
@@ -135,6 +135,10 @@
out.write( new Integer( in.getInt() ) );
return true;
}
+
+ public void dispose() throws Exception
+ {
+ }
}
@@ -166,8 +170,12 @@
}
protected boolean doDecode( IoSession session, ByteBuffer in,
- ProtocolDecoderOutput out ) throws ProtocolViolationException {
+ ProtocolDecoderOutput out ) throws Exception {
return true;
+ }
+
+ public void dispose() throws Exception
+ {
}
}