THRIFT-2173 Move FrameBuffer creation to a factory method for cusomization

Client: Java
Patch: Eric Newton
diff --git a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
index 3fc8672..10a8eba 100644
--- a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
+++ b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
@@ -217,6 +217,14 @@
       }
     }
 
+    protected FrameBuffer createFrameBuffer(final TNonblockingTransport trans,
+        final SelectionKey selectionKey,
+        final AbstractSelectThread selectThread) {
+        return processorFactory_.isAsyncProcessor() ?
+                  new AsyncFrameBuffer(trans, selectionKey, selectThread) :
+                  new FrameBuffer(trans, selectionKey, selectThread);
+    }
+
     /**
      * Accept a new connection.
      */
@@ -229,9 +237,7 @@
         clientKey = client.registerSelector(selector, SelectionKey.OP_READ);
 
         // add this key to the map
-          FrameBuffer frameBuffer = processorFactory_.isAsyncProcessor() ?
-                  new AsyncFrameBuffer(client, clientKey,SelectAcceptThread.this) :
-                  new FrameBuffer(client, clientKey,SelectAcceptThread.this);
+          FrameBuffer frameBuffer = createFrameBuffer(client, clientKey, SelectAcceptThread.this);
 
           clientKey.attach(frameBuffer);
       } catch (TTransportException tte) {
diff --git a/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java b/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
index 16445e5..9eb9f90 100644
--- a/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
+++ b/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java
@@ -611,14 +611,20 @@
       }
     }
 
+    protected FrameBuffer createFrameBuffer(final TNonblockingTransport trans,
+        final SelectionKey selectionKey,
+        final AbstractSelectThread selectThread) {
+        return processorFactory_.isAsyncProcessor() ?
+                  new AsyncFrameBuffer(trans, selectionKey, selectThread) :
+                  new FrameBuffer(trans, selectionKey, selectThread);
+    }
+
     private void registerAccepted(TNonblockingTransport accepted) {
       SelectionKey clientKey = null;
       try {
         clientKey = accepted.registerSelector(selector, SelectionKey.OP_READ);
 
-        FrameBuffer frameBuffer = processorFactory_.isAsyncProcessor() ?
-                new AsyncFrameBuffer(accepted, clientKey, SelectorThread.this) :
-                new FrameBuffer(accepted, clientKey, SelectorThread.this);
+        FrameBuffer frameBuffer = createFrameBuffer(accepted, clientKey, SelectorThread.this);
 
         clientKey.attach(frameBuffer);
       } catch (IOException e) {