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:17:17 UTC

svn commit: r325867 - in /directory/network/trunk/src/java/org/apache/mina/filter/codec: DemuxingProtocolCodecFactory.java ProtocolCodecException.java ProtocolCodecFilter.java ProtocolDecoderException.java ProtocolEncoderException.java

Author: trustin
Date: Mon Oct 17 02:17:10 2005
New Revision: 325867

URL: http://svn.apache.org/viewcvs?rev=325867&view=rev
Log:
* Added ProtocolDecoderException for decoders
* Added ProtocolCodecExceptions for those who wants to detect both encoder and decoder exceptions

Added:
    directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecException.java   (with props)
    directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoderException.java   (with props)
Modified:
    directory/network/trunk/src/java/org/apache/mina/filter/codec/DemuxingProtocolCodecFactory.java
    directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
    directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java

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=325867&r1=325866&r2=325867&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:17:10 2005
@@ -149,7 +149,7 @@
             MessageEncoder encoder = findEncoder( type );
             if( encoder == null )
             {
-                throw new IllegalArgumentException( "Unexpected message type: " + type );
+                throw new ProtocolEncoderException( "Unexpected message type: " + type );
             }
             
             encoder.encode( session, message, out );

Added: directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecException.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecException.java?rev=325867&view=auto
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecException.java (added)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecException.java Mon Oct 17 02:17:10 2005
@@ -0,0 +1,64 @@
+/*
+ *   @(#) $Id$
+ *
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.mina.filter.codec;
+
+/**
+ * An exception that is thrown when {@link ProtocolEncoder} or
+ * {@link ProtocolDecoder} cannot understand or failed to validate
+ * data to process.
+ * 
+ * @author Trustin Lee (trustin@apache.org)
+ * @version $Rev$, $Date$
+ */
+public class ProtocolCodecException extends Exception
+{
+    private static final long serialVersionUID = 5939878548186330695L;
+
+    /**
+     * Constructs a new instance.
+     */
+    public ProtocolCodecException()
+    {
+    }
+
+    /**
+     * Constructs a new instance with the specified message.
+     */
+    public ProtocolCodecException( String message )
+    {
+        super( message );
+    }
+
+    /**
+     * Constructs a new instance with the specified cause.
+     */
+    public ProtocolCodecException( Throwable cause )
+    {
+        super( cause );
+    }
+
+    /**
+     * Constructs a new instance with the specified message and the specified
+     * cause.
+     */
+    public ProtocolCodecException( String message, Throwable cause )
+    {
+        super( message, cause );
+    }
+}
\ No newline at end of file

Propchange: directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolCodecException.java
------------------------------------------------------------------------------
    svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision

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=325867&r1=325866&r2=325867&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:17:10 2005
@@ -51,7 +51,7 @@
             }
             else
             {
-                pde = new ProtocolDecoderException();
+                pde = new ProtocolDecoderException( t );
             }
             pde.setHexdump( in.getHexDump() );
             throw pde;
@@ -95,7 +95,23 @@
         ProtocolEncoderOutputImpl encoderOut = getEncoderOut( session );
         encoderOut.nextFilter = nextFilter;
         
-        encoder.encode( session, writeRequest.getMessage(), encoderOut );
+        try
+        {
+            encoder.encode( session, writeRequest.getMessage(), encoderOut );
+        }
+        catch( Throwable t )
+        {
+            ProtocolEncoderException pee;
+            if( t instanceof ProtocolEncoderException )
+            {
+                pee = ( ProtocolEncoderException ) t;
+            }
+            else
+            {
+                pee = new ProtocolEncoderException( t );
+            }
+            throw pee;
+        }
 
         encoderOut.writeRequest = writeRequest;
         encoderOut.flush();
@@ -110,6 +126,7 @@
         finally
         {
             // Dispose encoder and decoder safely.
+            // FIXME: Think what we have to do for connectionless transport types
             ProtocolEncoder encoder = getEncoder( session );
             ProtocolDecoder decoder = getDecoder( session );
             try

Modified: directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java?rev=325867&r1=325866&r2=325867&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolDecoderException.java Mon Oct 17 02:17:10 2005
@@ -28,7 +28,7 @@
  * @author Trustin Lee (trustin@apache.org)
  * @version $Rev$, $Date$
  */
-public class ProtocolDecoderException extends Exception
+public class ProtocolDecoderException extends ProtocolCodecException
 {
     private static final long serialVersionUID = 3545799879533408565L;
 

Added: directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoderException.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoderException.java?rev=325867&view=auto
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoderException.java (added)
+++ directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoderException.java Mon Oct 17 02:17:10 2005
@@ -0,0 +1,63 @@
+/*
+ *   @(#) $Id$
+ *
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.mina.filter.codec;
+
+/**
+ * An exception that is thrown when {@link ProtocolEncoder}
+ * cannot understand or failed to validate the specified message object.
+ * 
+ * @author Trustin Lee (trustin@apache.org)
+ * @version $Rev$, $Date$
+ */
+public class ProtocolEncoderException extends ProtocolCodecException
+{
+    private static final long serialVersionUID = 8752989973624459604L;
+
+    /**
+     * Constructs a new instance.
+     */
+    public ProtocolEncoderException()
+    {
+    }
+
+    /**
+     * Constructs a new instance with the specified message.
+     */
+    public ProtocolEncoderException( String message )
+    {
+        super( message );
+    }
+
+    /**
+     * Constructs a new instance with the specified cause.
+     */
+    public ProtocolEncoderException( Throwable cause )
+    {
+        super( cause );
+    }
+
+    /**
+     * Constructs a new instance with the specified message and the specified
+     * cause.
+     */
+    public ProtocolEncoderException( String message, Throwable cause )
+    {
+        super( message, cause );
+    }
+}
\ No newline at end of file

Propchange: directory/network/trunk/src/java/org/apache/mina/filter/codec/ProtocolEncoderException.java
------------------------------------------------------------------------------
    svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision