You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bl...@apache.org on 2004/12/06 19:50:33 UTC

svn commit: r110005 - /incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java /incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java

Author: bloritsch
Date: Mon Dec  6 10:50:32 2004
New Revision: 110005

URL: http://svn.apache.org/viewcvs?view=rev&rev=110005
Log:
Did not add the all important "select()" method call...
Modified:
   incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java
   incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java

Modified: incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java?view=diff&rev=110005&p1=incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java&r1=110004&p2=incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java&r2=110005
==============================================================================
--- incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java	(original)
+++ incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/ConnectSource.java	Mon Dec  6 10:50:32 2004
@@ -35,25 +35,37 @@
 public class ConnectSource implements Source
 {
     private Selector m_selector;
+    private long m_timeout;
 
     public ConnectSource() throws IOException
     {
         m_selector = Selector.open();
+        m_timeout = 1L;
     }
 
     public void setTimeout( final long timeout )
     {
+        m_timeout = timeout;
     }
 
     public Object dequeue()
     {
-        final Iterator keys = m_selector.selectedKeys().iterator();
         Object key = null;
 
-        if ( keys.hasNext() )
+        try
+        {
+            m_selector.select(m_timeout);
+            final Iterator keys = m_selector.selectedKeys().iterator();
+
+            if ( keys.hasNext() )
+            {
+                key = keys.next();
+                keys.remove();
+            }
+        }
+        catch ( IOException e )
         {
-            key = keys.next();
-            keys.remove();
+            e.printStackTrace();
         }
 
         return key;
@@ -63,11 +75,20 @@
     {
         final List keys = new ArrayList();
 
-        final Iterator set = m_selector.selectedKeys().iterator();
-        while( set.hasNext() )
+        try
+        {
+            m_selector.select(m_timeout);
+
+            final Iterator set = m_selector.selectedKeys().iterator();
+            while( set.hasNext() )
+            {
+                keys.add( set.next() );
+                set.remove();
+            }
+        }
+        catch ( IOException e )
         {
-            keys.add( set.next() );
-            set.remove();
+            e.printStackTrace();
         }
 
         return keys.toArray();
@@ -75,13 +96,22 @@
 
     public Object[] dequeue( final int numElements )
     {
-        final List keys = new ArrayList(numElements);
+        final List keys = new ArrayList();
+
+        try
+        {
+            m_selector.select(m_timeout);
 
-        final Iterator set = m_selector.selectedKeys().iterator();
-        for( int i = 0; i < numElements && set.hasNext(); i++ )
+            final Iterator set = m_selector.selectedKeys().iterator();
+            for( int i = 0; i < numElements && set.hasNext(); i++ )
+            {
+                keys.add( set.next() );
+                set.remove();
+            }
+        }
+        catch ( IOException e )
         {
-            keys.add( set.next() );
-            set.remove();
+            e.printStackTrace();
         }
 
         return keys.toArray();
@@ -91,10 +121,11 @@
     {
         try
         {
-            return m_selector.select( 0 );
+            return m_selector.select( m_timeout );
         }
         catch ( IOException e )
         {
+            e.printStackTrace();
             return 0;
         }
     }

Modified: incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java?view=diff&rev=110005&p1=incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java&r1=110004&p2=incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java&r2=110005
==============================================================================
--- incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java	(original)
+++ incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestConnectSource.java	Mon Dec  6 10:50:32 2004
@@ -87,16 +87,11 @@
         m_clientChannel.connect( new InetSocketAddress(InetAddress.getLocalHost(), PORT) );
         final Object key;
 
-        System.out.println(m_clientChannel.isConnectionPending());
-        System.out.println(m_clientChannel.isConnected());
-
         key = m_source.dequeue();
 
         assertNotNull( key );
         assertTrue( key instanceof SelectionKey );
         assertEquals( m_channel, ((SelectionKey)key).channel() );
-
-        assertTrue(m_clientChannel.isConnected());
     }
 
     public void testDequeue_many() throws IOException
@@ -132,7 +127,7 @@
         final Socket client = new Socket(InetAddress.getLocalHost(), PORT);
         assertTrue(client.isConnected());
 
-        m_source.setTimeout( 1L ); // does nothing
+        m_source.setTimeout( 10L );
         assertEquals( 1, m_source.size() );
 
         m_source.dequeueAll();