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 2008/08/10 22:55:00 UTC
svn commit: r684590 - in /mina/trunk/core/src/main/java/org/apache/mina:
filter/buffer/BufferedWriteFilter.java util/LazyInitializedCacheMap.java
Author: edeoliveira
Date: Sun Aug 10 13:54:59 2008
New Revision: 684590
URL: http://svn.apache.org/viewvc?rev=684590&view=rev
Log:
DIRMINA-519 internal map replaced by an LazyInitializedCacheMap instance
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
mina/trunk/core/src/main/java/org/apache/mina/util/LazyInitializedCacheMap.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java?rev=684590&r1=684589&r2=684590&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java Sun Aug 10 13:54:59 2008
@@ -21,7 +21,6 @@
import java.io.BufferedOutputStream;
import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.filterchain.IoFilter;
@@ -30,6 +29,7 @@
import org.apache.mina.core.write.DefaultWriteRequest;
import org.apache.mina.core.write.WriteRequest;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.util.LazyInitializedCacheMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -64,7 +64,7 @@
* The map that matches an {@link IoSession} and it's {@link IoBuffer}
* buffer.
*/
- private final ConcurrentMap<IoSession, IoBuffer> buffersMap;
+ private final LazyInitializedCacheMap<IoSession, IoBuffer> buffersMap;
/**
* Default constructor. Sets buffer size to {@link #DEFAULT_BUFFER_SIZE}
@@ -93,11 +93,11 @@
* @param buffersMap the map to use for storing each session buffer
*/
public BufferedWriteFilter(int bufferSize,
- final ConcurrentMap<IoSession, IoBuffer> buffersMap) {
+ LazyInitializedCacheMap<IoSession, IoBuffer> buffersMap) {
super();
this.bufferSize = bufferSize;
if (buffersMap == null) {
- this.buffersMap = new ConcurrentHashMap<IoSession, IoBuffer>();
+ this.buffersMap = new LazyInitializedCacheMap<IoSession, IoBuffer>();
} else {
this.buffersMap = buffersMap;
}
@@ -146,11 +146,8 @@
* @param data the data to buffer
*/
private void write(IoSession session, IoBuffer data) {
- IoBuffer dest = buffersMap.get(session);
- if (dest == null) {
- buffersMap.putIfAbsent(session, IoBuffer.allocate(bufferSize));
- dest = buffersMap.get(session);
- }
+ IoBuffer dest = buffersMap.putIfAbsent(session,
+ new IoBufferLazyInitializer(bufferSize));
write(session, data, dest);
}
@@ -203,7 +200,7 @@
IoBuffer buf) throws Exception {
IoBuffer tmp = null;
synchronized (buf) {
- buf.flip();
+ buf.flip();
tmp = buf.duplicate();
buf.clear();
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/util/LazyInitializedCacheMap.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/util/LazyInitializedCacheMap.java?rev=684590&r1=684589&r2=684590&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/util/LazyInitializedCacheMap.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/util/LazyInitializedCacheMap.java Sun Aug 10 13:54:59 2008
@@ -114,7 +114,6 @@
* @param key key with which the specified value is to be associated
* @param value a lazy initialized value object.
*
- *
* @return the previous value associated with the specified key,
* or <tt>null</tt> if there was no mapping for the key
* @throws NullPointerException if the specified key or value is null