Author: trustin
Date: Mon Mar 19 19:25:46 2007
New Revision: 520229

URL: http://svn.apache.org/viewvc?view=rev&rev=520229
Log:
Fixed issue: DIRMINA-359 (IllegalStateException in SSLFilter.isSSLStarted())
* Added a private method getSSLSessionHandler0() which returns null instead of 
throwing an IllegalStateException
* isSSLStarted() now uses getSSLSessionHandler0() instead of 
getSSLSessionHandler() to avoid IllegalStateException


Modified:
    
mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
    
mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
    mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java

Modified: 
mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java?view=diff&rev=520229&r1=520228&r2=520229
==============================================================================
--- 
mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
 (original)
+++ 
mina/branches/1.0/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
 Mon Mar 19 19:25:46 2007
@@ -187,7 +187,12 @@
      */
     public boolean isSSLStarted( IoSession session )
     {
-        SSLHandler handler = getSSLSessionHandler( session );
+        SSLHandler handler = getSSLSessionHandler0( session );
+        if( handler == null )
+        {
+            return false;
+        }
+
         synchronized( handler )
         {
             return !handler.isOutboundDone();
@@ -629,7 +634,7 @@
 
     private SSLHandler getSSLSessionHandler( IoSession session )
     {
-        SSLHandler handler = ( SSLHandler ) session.getAttribute( SSL_HANDLER 
);
+        SSLHandler handler = getSSLSessionHandler0( session );
         if( handler == null )
         {
             throw new IllegalStateException();
@@ -639,6 +644,11 @@
             throw new IllegalArgumentException( "Not managed by this filter." 
);
         }
         return handler;
+    }
+
+    private SSLHandler getSSLSessionHandler0( IoSession session )
+    {
+        return ( SSLHandler ) session.getAttribute( SSL_HANDLER );
     }
     
     /**

Modified: 
mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java?view=diff&rev=520229&r1=520228&r2=520229
==============================================================================
--- 
mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
 (original)
+++ 
mina/branches/1.1/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
 Mon Mar 19 19:25:46 2007
@@ -187,7 +187,12 @@
      */
     public boolean isSSLStarted( IoSession session )
     {
-        SSLHandler handler = getSSLSessionHandler( session );
+        SSLHandler handler = getSSLSessionHandler0( session );
+        if( handler == null )
+        {
+            return false;
+        }
+
         synchronized( handler )
         {
             return !handler.isOutboundDone();
@@ -629,7 +634,7 @@
 
     private SSLHandler getSSLSessionHandler( IoSession session )
     {
-        SSLHandler handler = ( SSLHandler ) session.getAttribute( SSL_HANDLER 
);
+        SSLHandler handler = getSSLSessionHandler0( session );
         if( handler == null )
         {
             throw new IllegalStateException();
@@ -639,6 +644,11 @@
             throw new IllegalArgumentException( "Not managed by this filter." 
);
         }
         return handler;
+    }
+
+    private SSLHandler getSSLSessionHandler0( IoSession session )
+    {
+        return ( SSLHandler ) session.getAttribute( SSL_HANDLER );
     }
     
     /**

Modified: 
mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java?view=diff&rev=520229&r1=520228&r2=520229
==============================================================================
--- mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java 
(original)
+++ mina/trunk/filter-ssl/src/main/java/org/apache/mina/filter/SSLFilter.java 
Mon Mar 19 19:25:46 2007
@@ -187,7 +187,12 @@
      */
     public boolean isSSLStarted( IoSession session )
     {
-        SSLHandler handler = getSSLSessionHandler( session );
+        SSLHandler handler = getSSLSessionHandler0( session );
+        if( handler == null )
+        {
+            return false;
+        }
+
         synchronized( handler )
         {
             return !handler.isOutboundDone();
@@ -628,7 +633,7 @@
 
     private SSLHandler getSSLSessionHandler( IoSession session )
     {
-        SSLHandler handler = ( SSLHandler ) session.getAttribute( SSL_HANDLER 
);
+        SSLHandler handler = getSSLSessionHandler0( session );
         if( handler == null )
         {
             throw new IllegalStateException();
@@ -638,6 +643,11 @@
             throw new IllegalArgumentException( "Not managed by this filter." 
);
         }
         return handler;
+    }
+
+    private SSLHandler getSSLSessionHandler0( IoSession session )
+    {
+        return ( SSLHandler ) session.getAttribute( SSL_HANDLER );
     }
     
     /**


Reply via email to