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