From 38fe921bd2d09734277828b638a4947e45a99bcd Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 25 Oct 2013 09:44:02 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-175: Decouple OpenDJ LDAP SDK from Grizzly

---
 opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/ASN1BufferWriter.java |   28 ++++++++++++----------------
 1 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/ASN1BufferWriter.java b/opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/ASN1BufferWriter.java
index 82fff73..18f652b 100644
--- a/opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/ASN1BufferWriter.java
+++ b/opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/ASN1BufferWriter.java
@@ -40,7 +40,6 @@
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import org.glassfish.grizzly.Buffer;
 import org.glassfish.grizzly.Cacheable;
-import org.glassfish.grizzly.ThreadCache;
 import org.glassfish.grizzly.memory.ByteBufferWrapper;
 
 import com.forgerock.opendj.util.StaticUtils;
@@ -48,7 +47,7 @@
 /**
  * Grizzly ASN1 writer implementation.
  */
-final class ASN1BufferWriter extends AbstractASN1Writer implements ASN1Writer, Cacheable {
+final class ASN1BufferWriter extends AbstractASN1Writer implements Cacheable {
     private class ChildSequenceBuffer implements SequenceBuffer {
         private SequenceBuffer parent;
 
@@ -162,21 +161,16 @@
     }
 
     private static final int BUFFER_INIT_SIZE = 1024;
-    private final static ThreadCache.CachedTypeIndex<ASN1BufferWriter> WRITER_INDEX = ThreadCache
-            .obtainIndex(ASN1BufferWriter.class, 1);
 
-    static ASN1BufferWriter getWriter() {
-        ASN1BufferWriter asn1Writer = ThreadCache.takeFromCache(WRITER_INDEX);
-        if (asn1Writer == null) {
-            asn1Writer = new ASN1BufferWriter();
-        }
-
-        if (!asn1Writer.outBuffer.usable) {
+    /**
+     * Reset the writer.
+     */
+    void reset() {
+        if (!outBuffer.usable) {
             // If the output buffer is unusable, create a new one.
-            asn1Writer.outBuffer = new RecyclableBuffer();
+            outBuffer = new RecyclableBuffer();
         }
-        asn1Writer.outBuffer.clear();
-        return asn1Writer;
+        outBuffer.clear();
     }
 
     private SequenceBuffer sequenceBuffer;
@@ -187,7 +181,7 @@
     /**
      * Creates a new ASN.1 writer that writes to a StreamWriter.
      */
-    private ASN1BufferWriter() {
+    ASN1BufferWriter() {
         this.sequenceBuffer = this.rootBuffer = new RootSequenceBuffer();
         this.outBuffer = new RecyclableBuffer();
     }
@@ -213,10 +207,12 @@
         // Do nothing
     }
 
+    /**
+     * Recycle the writer to allow re-use.
+     */
     public void recycle() {
         sequenceBuffer = rootBuffer;
         outBuffer.clear();
-        ThreadCache.putToCache(WRITER_INDEX, this);
     }
 
     /**

--
Gitblit v1.10.0