You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ni...@apache.org on 2006/03/06 22:09:00 UTC

svn commit: r383671 - /directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoFilterLifeCycleManager.java

Author: niklas
Date: Mon Mar  6 13:08:57 2006
New Revision: 383671

URL: http://svn.apache.org/viewcvs?rev=383671&view=rev
Log:
Reverted back to the version before the first attempt for a fix for DIRMINA-169.

Modified:
    directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoFilterLifeCycleManager.java

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoFilterLifeCycleManager.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoFilterLifeCycleManager.java?rev=383671&r1=383670&r2=383671&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoFilterLifeCycleManager.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoFilterLifeCycleManager.java Mon Mar  6 13:08:57 2006
@@ -47,23 +47,13 @@
     {
     }
     
-    public void callInitIfNecessary( IoFilter filter )
+    public synchronized void callInitIfNecessary( IoFilter filter )
     {
-        boolean callInit = false;
-        
-        synchronized( this )
-        {
-            ReferenceCount count = ( ReferenceCount ) counts.get( filter );
-            if( count == null )
-            {
-                count = new ReferenceCount();
-                counts.put( filter, count );
-                callInit = true;
-            }
-        }
-        
-        if( callInit )
+        ReferenceCount count = ( ReferenceCount ) counts.get( filter );
+        if( count == null )
         {
+            count = new ReferenceCount();
+            counts.put( filter, count );
             try
             {
                 filter.init();
@@ -76,19 +66,16 @@
         }
     }
     
-    public void callOnPreAdd( IoFilterChain chain, String name, IoFilter filter, NextFilter nextFilter )
+    public synchronized void callOnPreAdd( IoFilterChain chain, String name, IoFilter filter, NextFilter nextFilter )
     {
-        synchronized( this )
+        ReferenceCount count = ( ReferenceCount ) counts.get( filter );
+        if( count == null )
         {
-            ReferenceCount count = ( ReferenceCount ) counts.get( filter );
-            if( count == null )
-            {
-                throw new IllegalStateException();
-            }
-            
-            count.increase();
+            throw new IllegalStateException();
         }
         
+        count.increase();
+
         try
         {
             filter.onPreAdd( chain, name, nextFilter );
@@ -101,20 +88,17 @@
         }
     }
 
-    public void callOnPreRemove( IoFilterChain chain, String name, IoFilter filter, NextFilter nextFilter )
+    public synchronized void callOnPreRemove( IoFilterChain chain, String name, IoFilter filter, NextFilter nextFilter )
     {
-        synchronized( this )
+        ReferenceCount count = ( ReferenceCount ) counts.get( filter );
+        if( count == null || count.get() == 0 )
         {
-            ReferenceCount count = ( ReferenceCount ) counts.get( filter );
-            if( count == null || count.get() == 0 )
-            {
-                return;
-            }
+            return;
         }
 
         try
         {
-            filter.onPreRemove( chain, name, nextFilter );
+            filter.onPreRemove( chain, name, nextFilter);
         }
         catch( Throwable t )
         {
@@ -124,15 +108,12 @@
         }
     }
     
-    public void callOnPostAdd( IoFilterChain chain, String name, IoFilter filter, NextFilter nextFilter )
+    public synchronized void callOnPostAdd( IoFilterChain chain, String name, IoFilter filter, NextFilter nextFilter )
     {
-        synchronized( this )
+        ReferenceCount count = ( ReferenceCount ) counts.get( filter );
+        if( count == null )
         {
-            ReferenceCount count = ( ReferenceCount ) counts.get( filter );
-            if( count == null )
-            {
-                throw new IllegalStateException();
-            }
+            throw new IllegalStateException();
         }
         
         try
@@ -142,7 +123,7 @@
         catch( Throwable t )
         {
             // Revert back the reference count.
-            decreaseCountSafely( filter );
+            count.decrease();
 
             throw new IoFilterLifeCycleException(
                     "onPostAdd(): " + name + ':' + filter + " in " +
@@ -150,15 +131,12 @@
         }
     }
 
-    public void callOnPostRemove( IoFilterChain chain, String name, IoFilter filter, NextFilter nextFilter )
+    public synchronized void callOnPostRemove( IoFilterChain chain, String name, IoFilter filter, NextFilter nextFilter )
     {
-        synchronized( this )
+        ReferenceCount count = ( ReferenceCount ) counts.get( filter );
+        if( count == null || count.get() == 0 )
         {
-            ReferenceCount count = ( ReferenceCount ) counts.get( filter );
-            if( count == null || count.get() == 0 )
-            {
-                return;
-            }
+            return;
         }
 
         try
@@ -173,42 +151,21 @@
         }
         finally
         {
-            decreaseCountSafely( filter );
+            count.decrease();
         }
     }
 
-    private synchronized void decreaseCountSafely( IoFilter filter )
+    public synchronized void callDestroyIfNecessary( IoFilter filter )
     {
         ReferenceCount count = ( ReferenceCount ) counts.get( filter );
         if( count == null )
         {
-            throw new IllegalStateException();
+            return;
         }
         
-        count.decrease();
-    }
-
-    public void callDestroyIfNecessary( IoFilter filter )
-    {
-        boolean callDestroy = false;
-        
-        synchronized( this )
-        {
-            ReferenceCount count = ( ReferenceCount ) counts.get( filter );
-            if( count == null )
-            {
-                return;
-            }
-            
-            if( count.get() == 0 )
-            {
-                counts.remove( filter );
-                callDestroy = true;
-            }
-        }
-
-        if( callDestroy )
+        if( count.get() == 0 )
         {
+            counts.remove( filter );
             try
             {
                 filter.destroy();