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();