Author: trustin
Date: Wed Feb 14 02:02:55 2007
New Revision: 507461
URL: http://svn.apache.org/viewvc?view=rev&rev=507461
Log:
Fixed issue: DIRMINA-351 (IllegalStateException in SSLFilter)
* Moved the initialization code to onPreAdd() to make sure SSLHandler is
created before getSSLSessionHandler is invoked.
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=507461&r1=507460&r2=507461
==============================================================================
---
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
Wed Feb 14 02:02:55 2007
@@ -316,10 +316,7 @@
{
throw new IllegalStateException( "A filter chain cannot contain
more than one SSLFilter." );
}
- }
-
- public void onPostAdd( IoFilterChain parent, String name, NextFilter
nextFilter ) throws SSLException
- {
+
IoSession session = parent.getSession();
session.setAttribute( NEXT_FILTER, nextFilter );
@@ -327,7 +324,11 @@
SSLHandler handler =
new SSLHandler( this, sslContext, session );
session.setAttribute( SSL_HANDLER, handler );
- handler.handshake( nextFilter );
+ }
+
+ public void onPostAdd( IoFilterChain parent, String name, NextFilter
nextFilter ) throws SSLException
+ {
+ getSSLSessionHandler( parent.getSession() ).handshake( nextFilter );
}
public void onPreRemove( IoFilterChain parent, String name, NextFilter
nextFilter ) throws SSLException
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=507461&r1=507460&r2=507461
==============================================================================
---
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
Wed Feb 14 02:02:55 2007
@@ -316,10 +316,7 @@
{
throw new IllegalStateException( "A filter chain cannot contain
more than one SSLFilter." );
}
- }
-
- public void onPostAdd( IoFilterChain parent, String name, NextFilter
nextFilter ) throws SSLException
- {
+
IoSession session = parent.getSession();
session.setAttribute( NEXT_FILTER, nextFilter );
@@ -327,7 +324,11 @@
SSLHandler handler =
new SSLHandler( this, sslContext, session );
session.setAttribute( SSL_HANDLER, handler );
- handler.handshake( nextFilter );
+ }
+
+ public void onPostAdd( IoFilterChain parent, String name, NextFilter
nextFilter ) throws SSLException
+ {
+ getSSLSessionHandler( parent.getSession() ).handshake( nextFilter );
}
public void onPreRemove( IoFilterChain parent, String name, NextFilter
nextFilter ) throws SSLException
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=507461&r1=507460&r2=507461
==============================================================================
--- 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
Wed Feb 14 02:02:55 2007
@@ -316,10 +316,7 @@
{
throw new IllegalStateException( "A filter chain cannot contain
more than one SSLFilter." );
}
- }
-
- public void onPostAdd( IoFilterChain parent, String name, NextFilter
nextFilter ) throws SSLException
- {
+
IoSession session = parent.getSession();
session.setAttribute( NEXT_FILTER, nextFilter );
@@ -327,7 +324,11 @@
SSLHandler handler =
new SSLHandler( this, sslContext, session );
session.setAttribute( SSL_HANDLER, handler );
- handler.handshake( nextFilter );
+ }
+
+ public void onPostAdd( IoFilterChain parent, String name, NextFilter
nextFilter ) throws SSLException
+ {
+ getSSLSessionHandler( parent.getSession() ).handshake( nextFilter );
}
public void onPreRemove( IoFilterChain parent, String name, NextFilter
nextFilter ) throws SSLException