You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/01/30 08:14:39 UTC

svn commit: r501330 - in /mina: branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/ branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/support/ branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/ branches/1.1/c...

Author: trustin
Date: Mon Jan 29 23:14:38 2007
New Revision: 501330

URL: http://svn.apache.org/viewvc?view=rev&rev=501330
Log:
Fixed failing tests by delaying event propagation until two sessions finish registeration in IoServiceListenerSupport


Modified:
    mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
    mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java
    mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java

Modified: mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?view=diff&rev=501330&r1=501329&r2=501330
==============================================================================
--- mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Mon Jan 29 23:14:38 2007
@@ -34,6 +34,7 @@
 import org.apache.mina.common.support.BaseIoSessionConfig;
 import org.apache.mina.common.support.DefaultConnectFuture;
 import org.apache.mina.transport.vmpipe.support.VmPipe;
+import org.apache.mina.transport.vmpipe.support.VmPipeFilterChain;
 import org.apache.mina.transport.vmpipe.support.VmPipeIdleStatusChecker;
 import org.apache.mina.transport.vmpipe.support.VmPipeSessionImpl;
 import org.apache.mina.util.AnonymousSocketAddress;
@@ -138,6 +139,9 @@
             ExceptionMonitor.getInstance().exceptionCaught( t );
             remoteSession.close();
         }
+        
+        ( ( VmPipeFilterChain ) localSession.getFilterChain() ).start();
+        ( ( VmPipeFilterChain ) remoteSession.getFilterChain() ).start();
 
         return future;
     }

Modified: mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java
URL: http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java?view=diff&rev=501330&r1=501329&r2=501330
==============================================================================
--- mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java (original)
+++ mina/branches/1.0/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java Mon Jan 29 23:14:38 2007
@@ -35,16 +35,26 @@
 public class VmPipeFilterChain extends AbstractIoFilterChain {
 
     private final Queue eventQueue = new ConcurrentLinkedQueue();
+    private boolean flushEnabled;
     
     public VmPipeFilterChain( IoSession session )
     {
         super( session );
     }
     
+    public void start()
+    {
+        flushEnabled = true;
+        flushEvents();
+    }
+    
     private void pushEvent( Event e )
     {
         eventQueue.offer( e );
-        flushEvents();
+        if( flushEnabled )
+        {
+            flushEvents();
+        }
     }
     
     private void flushEvents()

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?view=diff&rev=501330&r1=501329&r2=501330
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Mon Jan 29 23:14:38 2007
@@ -34,6 +34,7 @@
 import org.apache.mina.common.support.BaseIoSessionConfig;
 import org.apache.mina.common.support.DefaultConnectFuture;
 import org.apache.mina.transport.vmpipe.support.VmPipe;
+import org.apache.mina.transport.vmpipe.support.VmPipeFilterChain;
 import org.apache.mina.transport.vmpipe.support.VmPipeIdleStatusChecker;
 import org.apache.mina.transport.vmpipe.support.VmPipeSessionImpl;
 import org.apache.mina.util.AnonymousSocketAddress;
@@ -138,6 +139,9 @@
             ExceptionMonitor.getInstance().exceptionCaught( t );
             remoteSession.close();
         }
+        
+        ( ( VmPipeFilterChain ) localSession.getFilterChain() ).start();
+        ( ( VmPipeFilterChain ) remoteSession.getFilterChain() ).start();
 
         return future;
     }

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java?view=diff&rev=501330&r1=501329&r2=501330
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java Mon Jan 29 23:14:38 2007
@@ -35,16 +35,26 @@
 public class VmPipeFilterChain extends AbstractIoFilterChain {
 
     private final Queue<Event> eventQueue = new ConcurrentLinkedQueue<Event>();
-    
+    private boolean flushEnabled;
+
     public VmPipeFilterChain( IoSession session )
     {
         super( session );
     }
     
+    public void start()
+    {
+        flushEnabled = true;
+        flushEvents();
+    }
+    
     private void pushEvent( Event e )
     {
         eventQueue.offer( e );
-        flushEvents();
+        if( flushEnabled )
+        {
+            flushEvents();
+        }
     }
     
     private void flushEvents()

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?view=diff&rev=501330&r1=501329&r2=501330
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Mon Jan 29 23:14:38 2007
@@ -31,6 +31,7 @@
 import org.apache.mina.common.support.BaseIoConnector;
 import org.apache.mina.common.support.DefaultConnectFuture;
 import org.apache.mina.transport.vmpipe.support.VmPipe;
+import org.apache.mina.transport.vmpipe.support.VmPipeFilterChain;
 import org.apache.mina.transport.vmpipe.support.VmPipeIdleStatusChecker;
 import org.apache.mina.transport.vmpipe.support.VmPipeSessionImpl;
 import org.apache.mina.util.AnonymousSocketAddress;
@@ -109,6 +110,9 @@
             ExceptionMonitor.getInstance().exceptionCaught( t );
             remoteSession.close();
         }
+        
+        ( ( VmPipeFilterChain ) localSession.getFilterChain() ).start();
+        ( ( VmPipeFilterChain ) remoteSession.getFilterChain() ).start();
 
         return future;
     }

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java?view=diff&rev=501330&r1=501329&r2=501330
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeFilterChain.java Mon Jan 29 23:14:38 2007
@@ -35,16 +35,26 @@
 public class VmPipeFilterChain extends AbstractIoFilterChain {
 
     private final Queue<Event> eventQueue = new ConcurrentLinkedQueue<Event>();
-    
+    private boolean flushEnabled;
+
     public VmPipeFilterChain( IoSession session )
     {
         super( session );
     }
     
+    public void start()
+    {
+        flushEnabled = true;
+        flushEvents();
+    }
+    
     private void pushEvent( Event e )
     {
         eventQueue.offer( e );
-        flushEvents();
+        if( flushEnabled )
+        {
+            flushEvents();
+        }
     }
     
     private void flushEvents()

Modified: mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java?view=diff&rev=501330&r1=501329&r2=501330
==============================================================================
--- mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java (original)
+++ mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java Mon Jan 29 23:14:38 2007
@@ -101,10 +101,10 @@
     public void testClientToServer() throws Exception
     {
         IoAcceptor acceptor = new VmPipeAcceptor();
-        acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );
+        //acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );
 
         IoConnector connector = new VmPipeConnector();
-        connector.getFilterChain().addLast( "logger", new LoggingFilter() );
+        //connector.getFilterChain().addLast( "logger", new LoggingFilter() );
         
         final StringBuffer actual = new StringBuffer();