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/05/02 09:02:24 UTC

svn commit: r165592 - /directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java /directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java

Author: trustin
Date: Mon May  2 00:02:23 2005
New Revision: 165592

URL: http://svn.apache.org/viewcvs?rev=165592&view=rev
Log:
Simplified exception handling of SSLFilter

Modified:
    directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java
    directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java

Modified: directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java?rev=165592&r1=165591&r2=165592&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java Mon May  2 00:02:23 2005
@@ -184,7 +184,7 @@
 
     // IoFilter impl.
 
-    public void sessionOpened( NextFilter nextFilter, IoSession session )
+    public void sessionOpened( NextFilter nextFilter, IoSession session ) throws SSLException
     {
         // Create an SSL handler
         createSSLSessionHandler( session );
@@ -284,7 +284,7 @@
         nextFilter.dataWritten( session, marker );
     }
 
-    public void filterWrite( NextFilter nextFilter, IoSession session, ByteBuffer buf, Object marker )
+    public void filterWrite( NextFilter nextFilter, IoSession session, ByteBuffer buf, Object marker ) throws SSLException
     {
 
         SSLHandler handler = createSSLSessionHandler( session );
@@ -309,29 +309,21 @@
             if( handler.isInitialHandshakeComplete() )
             {
                 // SSL encrypt
-                try
+                if( log.isLoggable( Level.FINEST ) )
                 {
-                    if( log.isLoggable( Level.FINEST ) )
-                    {
-                        log.log( Level.FINEST, session + " encrypt: " + buf );
-                    }
-                    handler.encrypt( buf.buf() );
-                    ByteBuffer encryptedBuffer = copy( handler
-                            .getOutNetBuffer() );
-
-                    if( log.isLoggable( Level.FINEST ) )
-                    {
-                        log.log( Level.FINEST, session + " encrypted buf: " + encryptedBuffer);
-                    }
-                    buf.release();
-                    nextFilter.filterWrite( session, encryptedBuffer, marker );
-                    return;
+                    log.log( Level.FINEST, session + " encrypt: " + buf );
                 }
-                catch( SSLException ssle )
+                handler.encrypt( buf.buf() );
+                ByteBuffer encryptedBuffer = copy( handler
+                        .getOutNetBuffer() );
+
+                if( log.isLoggable( Level.FINEST ) )
                 {
-                    throw new RuntimeException(
-                            "Unexpected SSLException.", ssle );
+                    log.log( Level.FINEST, session + " encrypted buf: " + encryptedBuffer);
                 }
+                buf.release();
+                nextFilter.filterWrite( session, encryptedBuffer, marker );
+                return;
             }
             else
             {
@@ -478,7 +470,7 @@
 
     // Utilities to mainpulate SSLHandler based on IoSession
 
-    private SSLHandler createSSLSessionHandler( IoSession session )
+    private SSLHandler createSSLSessionHandler( IoSession session ) throws SSLException
     {
         SSLHandler handler = ( SSLHandler ) sslSessionHandlerMap.get( session );
         if( handler == null )
@@ -488,18 +480,21 @@
                 handler = ( SSLHandler ) sslSessionHandlerMap.get( session );
                 if( handler == null )
                 {
+                    boolean done = false;
                     try
                     {
                         handler =
                             new SSLHandler( this, sslContext, session );
                         sslSessionHandlerMap.put( session, handler );
                         handler.doHandshake();
+                        done = true;
                     }
-                    catch( SSLException e )
+                    finally 
                     {
-                        sslSessionHandlerMap.remove( session );
-                        throw new RuntimeException(
-                                "Failed to initialize SSLEngine.", e );
+                        if( !done )
+                        {
+                            sslSessionHandlerMap.remove( session );
+                        }
                     }
                 }
             }

Modified: directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java?rev=165592&r1=165591&r2=165592&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java Mon May  2 00:02:23 2005
@@ -187,7 +187,7 @@
         writeMarkerQueue.push( marker );
     }
     
-    public synchronized void flushScheduledWrites()
+    public synchronized void flushScheduledWrites() throws SSLException
     {
         NextFilter nextFilter;
         org.apache.mina.common.ByteBuffer scheduledBuf;