You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ed...@apache.org on 2009/06/12 02:04:01 UTC

svn commit: r783960 - /mina/trunk/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java

Author: edeoliveira
Date: Fri Jun 12 00:04:01 2009
New Revision: 783960

URL: http://svn.apache.org/viewvc?rev=783960&view=rev
Log:
Removed the finalize() method and made the clear() method simpler

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java?rev=783960&r1=783959&r2=783960&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java Fri Jun 12 00:04:01 2009
@@ -21,7 +21,6 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -68,11 +67,11 @@
     /** The logger for this class */
     private final static Logger LOGGER = LoggerFactory.getLogger(DefaultIoFilterChain.class);
 
-    
+
     /**
-     * Create a new default chain, associated with a session. It will only contain a 
+     * Create a new default chain, associated with a session. It will only contain a
      * HeadFilter and a TailFilter.
-     * 
+     *
      * @param session The session associated with the created filter chain
      */
     public DefaultIoFilterChain(AbstractIoSession session) {
@@ -258,12 +257,14 @@
     }
 
     public synchronized void clear() throws Exception {
-        Iterator<String> it = new ArrayList<String>(name2entry.keySet())
-                .iterator();
-        while (it.hasNext()) {
-            String name = it.next();
-            if (contains(name)) {
-                remove(name);
+        List<IoFilterChain.Entry> l = new ArrayList<IoFilterChain.Entry>(
+                name2entry.values());
+        for (IoFilterChain.Entry entry : l) {
+            try {
+                deregister((EntryImpl) entry);
+            } catch (Exception e) {
+                throw new IoFilterLifeCycleException("clear(): "
+                        + entry.getName() + " in " + getSession(), e);
             }
         }
     }
@@ -590,15 +591,6 @@
         return buf.toString();
     }
 
-    @Override
-    protected void finalize() throws Throwable {
-        try {
-            this.clear();
-        } finally {
-            super.finalize();
-        }
-    }
-
     private class HeadFilter extends IoFilterAdapter {
         @SuppressWarnings("unchecked")
         @Override
@@ -817,7 +809,7 @@
                     Entry nextEntry = EntryImpl.this.prevEntry;
                     callPreviousFilterClose(nextEntry, session);
                 }
-                
+
                 public String toString() {
                     return EntryImpl.this.nextEntry.name;
                 }
@@ -847,11 +839,11 @@
         @Override
         public String toString() {
             StringBuilder sb = new StringBuilder();
-            
+
             // Add the current filter
             sb.append("('").append(getName()).append('\'');
-            
-            // Add the previous filter 
+
+            // Add the previous filter
             sb.append(", prev: '");
 
             if (prevEntry != null) {
@@ -861,8 +853,8 @@
             } else {
                 sb.append("null");
             }
-            
-            // Add the next filter 
+
+            // Add the next filter
             sb.append("', next: '");
 
             if (nextEntry != null) {
@@ -872,7 +864,7 @@
             } else {
                 sb.append("null");
             }
-            
+
             sb.append("')");
             return sb.toString();
         }