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