Author: elecharny
Date: Tue Feb 16 22:22:18 2010
New Revision: 910731

URL: http://svn.apache.org/viewvc?rev=910731&view=rev
Log:
o Simplified the flush() method in AbstractPolingIoProcessor by removing 
useless checks
o Remove more HashMap, replaced by ConcurrentHashMap


Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolEncoder.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/util/SessionAttributeInitializingFilter.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java?rev=910731&r1=910730&r2=910731&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
 Tue Feb 16 22:22:18 2010
@@ -746,15 +746,18 @@
      * Write all the pending messages
      */
     private void flush(long currentTime) {
-        final T firstSession = flushingSessions.peek();
-        
-        if (firstSession == null) {
+        if (flushingSessions.isEmpty()) {
             return;
         }
 
-        T session = flushingSessions.poll(); // the same one with firstSession
+        do {
+            T session = flushingSessions.poll(); // the same one with 
firstSession
+            
+            if (session == null) {
+                // Just in case ... It should not happen.
+                break;
+            }
 
-        for (;;) {
             session.setScheduledForFlush(false);
             SessionState state = getState(session);
 
@@ -791,14 +794,7 @@
                     throw new IllegalStateException(String.valueOf(state));
             }
 
-            session = flushingSessions.peek();
-            
-            if ((session == null) || (session == firstSession)) {
-                break;
-            }
-            
-            session = flushingSessions.poll();
-        }
+        } while (!flushingSessions.isEmpty());
     }
 
     private boolean flushNow(T session, long currentTime) {

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolEncoder.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolEncoder.java?rev=910731&r1=910730&r2=910731&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolEncoder.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolEncoder.java
 Tue Feb 16 22:22:18 2010
@@ -19,9 +19,9 @@
  */
 package org.apache.mina.filter.codec.demux;
 
-import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.mina.core.session.AttributeKey;
 import org.apache.mina.core.session.IoSession;
@@ -225,10 +225,10 @@
     
     private class State {
         @SuppressWarnings("unchecked")
-        private final Map<Class<?>, MessageEncoder> findEncoderCache = new 
HashMap<Class<?>, MessageEncoder>();
+        private final Map<Class<?>, MessageEncoder> findEncoderCache = new 
ConcurrentHashMap<Class<?>, MessageEncoder>();
 
         @SuppressWarnings("unchecked")
-        private final Map<Class<?>, MessageEncoder> type2encoder = new 
HashMap<Class<?>, MessageEncoder>();
+        private final Map<Class<?>, MessageEncoder> type2encoder = new 
ConcurrentHashMap<Class<?>, MessageEncoder>();
         
         @SuppressWarnings("unchecked")
         private State() throws Exception {

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java?rev=910731&r1=910730&r2=910731&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java
 Tue Feb 16 22:22:18 2010
@@ -26,6 +26,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
@@ -273,7 +274,7 @@
      */
     protected Map<Object, Request> createRequestStore(
             IoSession session) {
-        return new HashMap<Object, Request>();
+        return new ConcurrentHashMap<Object, Request>();
     }
 
     /**

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/util/SessionAttributeInitializingFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/util/SessionAttributeInitializingFilter.java?rev=910731&r1=910730&r2=910731&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/util/SessionAttributeInitializingFilter.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/util/SessionAttributeInitializingFilter.java
 Tue Feb 16 22:22:18 2010
@@ -19,7 +19,6 @@
  */
 package org.apache.mina.filter.util;
 
-import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -128,7 +127,7 @@
      */
     public void setAttributes(Map<String, ? extends Object> attributes) {
         if (attributes == null) {
-            attributes = new HashMap<String, Object>();
+            attributes = new ConcurrentHashMap<String, Object>();
         }
 
         this.attributes.clear();

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java?rev=910731&r1=910730&r2=910731&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java
 Tue Feb 16 22:22:18 2010
@@ -191,7 +191,7 @@
         }
 
         if (key.isValid()) {
-            // The session is oepened
+            // The session is opened
             return SessionState.OPENED;
         } else {
             // The session still as to be closed


Reply via email to