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/03/21 04:49:30 UTC

svn commit: r520734 - in /mina: branches/1.1/core/src/main/java/org/apache/mina/common/ branches/1.1/core/src/main/java/org/apache/mina/common/support/ branches/1.1/core/src/main/java/org/apache/mina/handler/support/ branches/1.1/core/src/test/java/org...

Author: trustin
Date: Tue Mar 20 20:49:29 2007
New Revision: 520734

URL: http://svn.apache.org/viewvc?view=rev&rev=520734
Log:
* Fixed API compatibility issue in IoFuture, 1.1
* Changed DefaultIoFilterChainBuilder.getAll() and getReversedAll() to use Generic types
* Fixed some compilation issues


Modified:
    mina/branches/1.1/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFilter.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFuture.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/DefaultIoFuture.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java
    mina/branches/1.1/core/src/test/java/org/apache/mina/common/support/FutureTest.java
    mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java?view=diff&rev=520734&r1=520733&r2=520734
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java Tue Mar 20 20:49:29 2007
@@ -56,8 +56,8 @@
  */
 public class DefaultIoFilterChainBuilder implements IoFilterChainBuilder, Cloneable
 {
-    private List entries;
-    private Map entriesByName;
+    private List<Entry> entries;
+    private Map<String, Entry> entriesByName;
     
     /**
      * Creates a new instance with an empty filter list.
@@ -69,8 +69,8 @@
 
     private void init()
     {
-        entries = new ArrayList();
-        entriesByName = new HashMap();
+        entries = new ArrayList<Entry>();
+        entriesByName = new HashMap<String, Entry>();
     }
     
     /**
@@ -78,7 +78,7 @@
      */
     public synchronized Entry getEntry( String name )
     {
-        return ( Entry ) entriesByName.get( name );
+        return entriesByName.get( name );
     }
 
     /**
@@ -98,17 +98,17 @@
     /**
      * @see IoFilterChain#getAll()
      */
-    public List getAll()
+    public List<Entry> getAll()
     {
-        return new ArrayList( entries );
+        return new ArrayList<Entry>( entries );
     }
     
     /**
      * @see IoFilterChain#getAllReversed()
      */
-    public List getAllReversed()
+    public List<Entry> getAllReversed()
     {
-        List result = getAll();
+        List<Entry> result = getAll();
         Collections.reverse( result );
         return result;
     }
@@ -141,7 +141,7 @@
     /**
      * @see IoFilterChain#contains(Class)
      */
-    public boolean contains( Class filterType )
+    public boolean contains( Class<? extends IoFilter> filterType )
     {
         for( Iterator i = entries.iterator(); i.hasNext(); )
         {
@@ -196,11 +196,11 @@
     {
         checkBaseName( baseName );
         
-        List entries = new ArrayList( this.entries );
+        List<Entry> entries = new ArrayList<Entry>( this.entries );
         
-        for( ListIterator i = entries.listIterator(); i.hasNext(); )
+        for( ListIterator<Entry> i = entries.listIterator(); i.hasNext(); )
         {
-            Entry base = ( Entry ) i.next();
+            Entry base = i.next();
             if( base.getName().equals( baseName ) )
             {
                 register( i.nextIndex(), new EntryImpl( name, filter ) );
@@ -219,9 +219,9 @@
             throw new NullPointerException( "name" );
         }
 
-        for( ListIterator i = entries.listIterator(); i.hasNext(); )
+        for( ListIterator<Entry> i = entries.listIterator(); i.hasNext(); )
         {
-            Entry e = ( Entry ) i.next();
+            Entry e = i.next();
             if( e.getName().equals( name ) )
             {
                 deregister( i.previousIndex(), e );
@@ -299,9 +299,9 @@
         
         ret.init();
         
-        for( Iterator i = entries.iterator(); i.hasNext(); )
+        for( Iterator<Entry> i = entries.iterator(); i.hasNext(); )
         {
-            Entry e = ( Entry ) i.next();
+            Entry e = i.next();
             ret.addLast( e.getName(), e.getFilter() );
         }
         return ret;
@@ -326,7 +326,7 @@
             throw new IllegalArgumentException( "Other filter is using the same name: " + e.getName() );
         }
 
-        List newEntries = new ArrayList( entries );
+        List<Entry> newEntries = new ArrayList<Entry>( entries );
         newEntries.add( index, e );
         this.entries = newEntries;
         entriesByName.put( e.getName(), e );
@@ -334,7 +334,7 @@
     
     private void deregister( int index, Entry e )
     {
-        List newEntries = new ArrayList( entries );
+        List<Entry> newEntries = new ArrayList<Entry>( entries );
         newEntries.remove( index );
         this.entries = newEntries;
         entriesByName.remove( e.getName() );

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFilter.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFilter.java?view=diff&rev=520734&r1=520733&r2=520734
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFilter.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFilter.java Tue Mar 20 20:49:29 2007
@@ -270,11 +270,6 @@
                 return null;
             }
 
-            public Object getLock()
-            {
-                return this;
-            }
-
             public void join()
             {
             }

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFuture.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFuture.java?view=diff&rev=520734&r1=520733&r2=520734
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFuture.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/common/IoFuture.java Tue Mar 20 20:49:29 2007
@@ -36,14 +36,14 @@
     /**
      * Wait for the asynchronous operation to end.
      */
-    void join() throws InterruptedException;
+    void join();
 
     /**
      * Wait for the asynchronous operation to end with the specified timeout.
      *
      * @return <tt>true</tt> if the operation is finished.
      */
-    boolean join( long timeoutInMillis ) throws InterruptedException;
+    boolean join( long timeoutInMillis );
 
     /**
      * Returns if the asynchronous operation is finished.

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/DefaultIoFuture.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/DefaultIoFuture.java?view=diff&rev=520734&r1=520733&r2=520734
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/DefaultIoFuture.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/DefaultIoFuture.java Tue Mar 20 20:49:29 2007
@@ -59,14 +59,48 @@
         return session;
     }
 
-    public void join() throws InterruptedException
+    public void join()
     {
-        completionLatch.await();
+        for( ;; )
+        {
+            try
+            {
+                completionLatch.await();
+            }
+            catch( InterruptedException e )
+            {
+            }
+        }
     }
 
-    public boolean join( long timeoutInMillis ) throws InterruptedException
+    public boolean join( long timeoutInMillis )
     {
-        return completionLatch.await( timeoutInMillis, TimeUnit.MILLISECONDS );
+        long startTime = ( timeoutInMillis <= 0 ) ? 0 : System
+                .currentTimeMillis();
+        long waitTime = timeoutInMillis;
+        
+        for( ;; )
+        {
+            boolean ready = false;
+            try
+            {
+                ready = completionLatch.await( waitTime, TimeUnit.MILLISECONDS );
+            }
+            catch( InterruptedException e )
+            {
+            }
+
+            if( ready )
+                return true;
+            else
+            {
+                waitTime = timeoutInMillis - ( System.currentTimeMillis() - startTime );
+                if( waitTime <= 0 )
+                {
+                    return ready;
+                }
+            }
+        }
     }
 
     public boolean isReady()

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java?view=diff&rev=520734&r1=520733&r2=520734
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/handler/support/IoSessionOutputStream.java Tue Mar 20 20:49:29 2007
@@ -24,7 +24,6 @@
 
 import org.apache.mina.common.ByteBuffer;
 import org.apache.mina.common.IoSession;
-import org.apache.mina.common.RuntimeIOException;
 import org.apache.mina.common.WriteFuture;
 
 /**
@@ -47,13 +46,7 @@
     @Override
     public void close()
     {
-        try
-        {
-            session.close().join();
-        } catch( InterruptedException e )
-        {
-            throw new RuntimeIOException( e );
-        }
+        session.close().join();
     }
 
     private void checkClosed() throws IOException
@@ -93,14 +86,7 @@
             return;
         }
 
-        try
-        {
-            lastWriteFuture.join();
-        } catch( InterruptedException e )
-        {
-            throw new RuntimeIOException( e );
-        }
-
+        lastWriteFuture.join();
         if( !lastWriteFuture.isWritten() )
         {
             throw new IOException( "The bytes could not be written to the session" );

Modified: mina/branches/1.1/core/src/test/java/org/apache/mina/common/support/FutureTest.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/test/java/org/apache/mina/common/support/FutureTest.java?view=diff&rev=520734&r1=520733&r2=520734
==============================================================================
--- mina/branches/1.1/core/src/test/java/org/apache/mina/common/support/FutureTest.java (original)
+++ mina/branches/1.1/core/src/test/java/org/apache/mina/common/support/FutureTest.java Tue Mar 20 20:49:29 2007
@@ -207,14 +207,7 @@
         @Override
         public void run()
         {
-            try
-            {
-                success = future.join( 10000 );
-            } catch( InterruptedException e )
-            {
-                // propagate
-                Thread.currentThread().interrupt();
-            }
+            success = future.join( 10000 );
         }
     }
 }

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java?view=diff&rev=520734&r1=520733&r2=520734
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java Tue Mar 20 20:49:29 2007
@@ -98,7 +98,7 @@
     /**
      * @see IoFilterChain#getAll()
      */
-    public List getAll()
+    public List<Entry> getAll()
     {
         return new ArrayList<Entry>( entries );
     }
@@ -106,9 +106,9 @@
     /**
      * @see IoFilterChain#getAllReversed()
      */
-    public List getAllReversed()
+    public List<Entry> getAllReversed()
     {
-        List result = getAll();
+        List<Entry> result = getAll();
         Collections.reverse( result );
         return result;
     }