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;