You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2010/02/12 19:21:53 UTC

svn commit: r909546 - in /mina/trunk: core/src/main/java/org/apache/mina/core/buffer/ core/src/main/java/org/apache/mina/core/session/ core/src/main/java/org/apache/mina/filter/codec/ core/src/main/java/org/apache/mina/filter/codec/statemachine/ core/s...

Author: elecharny
Date: Fri Feb 12 18:21:39 2010
New Revision: 909546

URL: http://svn.apache.org/viewvc?rev=909546&view=rev
Log:
emoved all references to the non-threadsafe circularQueue all over the code

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/core/buffer/CachedBufferAllocator.java
    mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
    mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/codec/AbstractProtocolDecoderOutput.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/stream/AbstractStreamWriteFilter.java
    mina/trunk/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java
    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/buffer/CachedBufferAllocator.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/buffer/CachedBufferAllocator.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/buffer/CachedBufferAllocator.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/buffer/CachedBufferAllocator.java Fri Feb 12 18:21:39 2010
@@ -24,8 +24,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Queue;
-
-import org.apache.mina.util.CircularQueue;
+import java.util.concurrent.ConcurrentLinkedQueue;
 
 /**
  * An {@link IoBufferAllocator} that caches the buffers which are likely to
@@ -136,11 +135,11 @@
         int poolSize = maxPoolSize == 0? DEFAULT_MAX_POOL_SIZE : maxPoolSize;
         
         for (int i = 0; i < 31; i ++) {
-            poolMap.put(1 << i, new CircularQueue<CachedBuffer>(poolSize));
+            poolMap.put(1 << i, new ConcurrentLinkedQueue<CachedBuffer>());
         }
         
-        poolMap.put(0, new CircularQueue<CachedBuffer>(poolSize));
-        poolMap.put(Integer.MAX_VALUE, new CircularQueue<CachedBuffer>(poolSize));
+        poolMap.put(0, new ConcurrentLinkedQueue<CachedBuffer>());
+        poolMap.put(Integer.MAX_VALUE, new ConcurrentLinkedQueue<CachedBuffer>());
         
         return poolMap;
     }

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java Fri Feb 12 18:21:39 2010
@@ -27,6 +27,7 @@
 import java.util.Iterator;
 import java.util.Queue;
 import java.util.Set;
+import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
@@ -53,7 +54,6 @@
 import org.apache.mina.core.write.WriteRequestQueue;
 import org.apache.mina.core.write.WriteTimeoutException;
 import org.apache.mina.core.write.WriteToClosedSessionException;
-import org.apache.mina.util.CircularQueue;
 import org.apache.mina.util.ExceptionMonitor;
 
 
@@ -332,7 +332,7 @@
         Queue<ReadFuture> readyReadFutures =
             (Queue<ReadFuture>) getAttribute(READY_READ_FUTURES_KEY);
         if (readyReadFutures == null) {
-            readyReadFutures = new CircularQueue<ReadFuture>();
+            readyReadFutures = new ConcurrentLinkedQueue<ReadFuture>();
 
             Queue<ReadFuture> oldReadyReadFutures =
                 (Queue<ReadFuture>) setAttributeIfAbsent(
@@ -351,7 +351,7 @@
         Queue<ReadFuture> waitingReadyReadFutures =
             (Queue<ReadFuture>) getAttribute(WAITING_READ_FUTURES_KEY);
         if (waitingReadyReadFutures == null) {
-            waitingReadyReadFutures = new CircularQueue<ReadFuture>();
+            waitingReadyReadFutures = new ConcurrentLinkedQueue<ReadFuture>();
 
             Queue<ReadFuture> oldWaitingReadyReadFutures =
                 (Queue<ReadFuture>) setAttributeIfAbsent(

Modified: mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java Fri Feb 12 18:21:39 2010
@@ -25,15 +25,15 @@
 import java.util.Map;
 import java.util.Queue;
 import java.util.Set;
+import java.util.concurrent.ConcurrentLinkedQueue;
 
 import org.apache.mina.core.write.WriteRequest;
 import org.apache.mina.core.write.WriteRequestQueue;
-import org.apache.mina.util.CircularQueue;
 
 /**
  * The default {@link IoSessionDataStructureFactory} implementation
  * that creates a new {@link HashMap}-based {@link IoSessionAttributeMap}
- * instance and a new synchronized {@link CircularQueue} instance per
+ * instance and a new synchronized {@link ConcurrentLinkedQueue} instance per
  * {@link IoSession}.
  * 
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
@@ -166,7 +166,7 @@
     
     private static class DefaultWriteRequestQueue implements WriteRequestQueue {
         /** A queue to store incoming write requests */
-        private final Queue<WriteRequest> q = new CircularQueue<WriteRequest>(16);
+        private final Queue<WriteRequest> q = new ConcurrentLinkedQueue<WriteRequest>();
 
         /**
          * Default constructor

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/AbstractProtocolDecoderOutput.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/AbstractProtocolDecoderOutput.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/AbstractProtocolDecoderOutput.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/AbstractProtocolDecoderOutput.java Fri Feb 12 18:21:39 2010
@@ -20,8 +20,7 @@
 package org.apache.mina.filter.codec;
 
 import java.util.Queue;
-
-import org.apache.mina.util.CircularQueue;
+import java.util.concurrent.ConcurrentLinkedQueue;
 
 /**
  * A {@link ProtocolDecoderOutput} based on queue.
@@ -29,7 +28,7 @@
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */
 public abstract class AbstractProtocolDecoderOutput implements ProtocolDecoderOutput {
-    private final Queue<Object> messageQueue = new CircularQueue<Object>();
+    private final Queue<Object> messageQueue = new ConcurrentLinkedQueue<Object>();
 
     public AbstractProtocolDecoderOutput() {
         // Do nothing

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java Fri Feb 12 18:21:39 2010
@@ -20,12 +20,12 @@
 package org.apache.mina.filter.codec.statemachine;
 
 import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
 
 import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.mina.core.session.IoSession;
 import org.apache.mina.filter.codec.ProtocolDecoder;
 import org.apache.mina.filter.codec.ProtocolDecoderOutput;
-import org.apache.mina.util.CircularQueue;
 
 /**
  * {@link ProtocolDecoder} which uses a {@link DecodingState} to decode data.
@@ -39,7 +39,7 @@
  */
 public class DecodingStateProtocolDecoder implements ProtocolDecoder {
     private final DecodingState state;
-    private final Queue<IoBuffer> undecodedBuffers = new CircularQueue<IoBuffer>();
+    private final Queue<IoBuffer> undecodedBuffers = new ConcurrentLinkedQueue<IoBuffer>();
     private IoSession session;
 
     /**

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java Fri Feb 12 18:21:39 2010
@@ -40,7 +40,6 @@
 import org.apache.mina.core.session.IoSession;
 import org.apache.mina.core.write.DefaultWriteRequest;
 import org.apache.mina.core.write.WriteRequest;
-import org.apache.mina.util.CircularQueue;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -68,7 +67,7 @@
     /** The current session */
     private final IoSession session;
     
-    private final Queue<IoFilterEvent> preHandshakeEventQueue = new CircularQueue<IoFilterEvent>();
+    private final Queue<IoFilterEvent> preHandshakeEventQueue = new ConcurrentLinkedQueue<IoFilterEvent>();
     private final Queue<IoFilterEvent> filterWriteEventQueue = new ConcurrentLinkedQueue<IoFilterEvent>();
     
     /** A queue used to stack all the incoming data until the SSL session is established */

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/stream/AbstractStreamWriteFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/stream/AbstractStreamWriteFilter.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/stream/AbstractStreamWriteFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/stream/AbstractStreamWriteFilter.java Fri Feb 12 18:21:39 2010
@@ -21,6 +21,7 @@
 
 import java.io.IOException;
 import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
 
 import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.mina.core.filterchain.IoFilterAdapter;
@@ -29,7 +30,6 @@
 import org.apache.mina.core.session.IoSession;
 import org.apache.mina.core.write.DefaultWriteRequest;
 import org.apache.mina.core.write.WriteRequest;
-import org.apache.mina.util.CircularQueue;
 
 /**
  * TODO Add documentation
@@ -70,7 +70,7 @@
         if (session.getAttribute(CURRENT_STREAM) != null) {
             Queue<WriteRequest> queue = getWriteRequestQueue(session);
             if (queue == null) {
-                queue = new CircularQueue<WriteRequest>();
+                queue = new ConcurrentLinkedQueue<WriteRequest>();
                 session.setAttribute(WRITE_REQUEST_QUEUE, queue);
             }
             queue.add(writeRequest);

Modified: mina/trunk/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java (original)
+++ mina/trunk/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java Fri Feb 12 18:21:39 2010
@@ -19,6 +19,11 @@
  */
 package org.apache.mina.filter.codec;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import java.net.SocketAddress;
 import java.util.ArrayList;
 import java.util.List;
@@ -30,10 +35,6 @@
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-import static org.junit.Assert.assertTrue;
 
 
 /**
@@ -97,10 +98,8 @@
         List<Object> expected = new ArrayList<Object>();
         
         for (int i = 0; i < 4; i++) {
-            expected.add(new Integer(i));
+            assertTrue( session.getDecoderOutputQueue().contains(i));
         }
-        
-        assertEquals(expected, session.getDecoderOutputQueue());
     }
 
     @Test

Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java Fri Feb 12 18:21:39 2010
@@ -23,8 +23,9 @@
 import java.nio.ByteBuffer;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.Executor;
 
 import org.apache.mina.core.RuntimeIoException;
@@ -32,7 +33,6 @@
 import org.apache.mina.core.file.FileRegion;
 import org.apache.mina.core.polling.AbstractPollingIoProcessor;
 import org.apache.mina.core.session.SessionState;
-import org.apache.mina.util.CircularQueue;
 import org.apache.tomcat.jni.File;
 import org.apache.tomcat.jni.Poll;
 import org.apache.tomcat.jni.Pool;
@@ -58,7 +58,7 @@
     private final long bufferPool; // memory pool
     private final long pollset; // socket poller
     private final long[] polledSockets = new long[POLLSET_SIZE << 1];
-    private final List<AprSession> polledSessions = new CircularQueue<AprSession>(POLLSET_SIZE);
+    private final Queue<AprSession> polledSessions = new ConcurrentLinkedQueue<AprSession>();
 
     /**
      * Create a new instance of {@link AprIoProcessor} with a given Exector for

Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java Fri Feb 12 18:21:39 2010
@@ -23,7 +23,8 @@
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
 import java.util.Iterator;
-import java.util.List;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.Executor;
 
 import org.apache.mina.core.RuntimeIoException;
@@ -36,7 +37,6 @@
 import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
 import org.apache.mina.transport.socket.SocketAcceptor;
 import org.apache.mina.transport.socket.SocketSessionConfig;
-import org.apache.mina.util.CircularQueue;
 import org.apache.tomcat.jni.Address;
 import org.apache.tomcat.jni.Poll;
 import org.apache.tomcat.jni.Pool;
@@ -67,8 +67,8 @@
     private volatile long pool;
     private volatile long pollset; // socket poller
     private final long[] polledSockets = new long[POLLSET_SIZE << 1];
-    private final List<Long> polledHandles =
-        new CircularQueue<Long>(POLLSET_SIZE);
+    private final Queue<Long> polledHandles =
+        new ConcurrentLinkedQueue<Long>();
 
     /**
      * Constructor for {@link AprSocketAcceptor} using default parameters (multiple thread model).

Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java?rev=909546&r1=909545&r2=909546&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java Fri Feb 12 18:21:39 2010
@@ -26,9 +26,10 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
+import java.util.Queue;
 import java.util.Set;
+import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.Executor;
 
 import org.apache.mina.core.RuntimeIoException;
@@ -41,7 +42,6 @@
 import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
 import org.apache.mina.transport.socket.SocketConnector;
 import org.apache.mina.transport.socket.SocketSessionConfig;
-import org.apache.mina.util.CircularQueue;
 import org.apache.tomcat.jni.Address;
 import org.apache.tomcat.jni.Poll;
 import org.apache.tomcat.jni.Pool;
@@ -73,7 +73,7 @@
     private volatile long pool;
     private volatile long pollset; // socket poller
     private final long[] polledSockets = new long[POLLSET_SIZE << 1];
-    private final List<Long> polledHandles = new CircularQueue<Long>(POLLSET_SIZE);
+    private final Queue<Long> polledHandles = new ConcurrentLinkedQueue<Long>();
     private final Set<Long> failedHandles = new HashSet<Long>(POLLSET_SIZE);
     private volatile ByteBuffer dummyBuffer;