[jboss-cvs] JBossAS SVN: r68618 - projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/handler/http.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 4 00:45:44 EST 2008


Author: ALRubinger
Date: 2008-01-04 00:45:44 -0500 (Fri, 04 Jan 2008)
New Revision: 68618

Modified:
   projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/handler/http/CopyHttpRequestToResponseRequestHandler.java
Log:
Bug Fixes to only print out HTTP request until EOF is encountered, not full buffer 

Modified: projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/handler/http/CopyHttpRequestToResponseRequestHandler.java
===================================================================
--- projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/handler/http/CopyHttpRequestToResponseRequestHandler.java	2008-01-04 05:44:56 UTC (rev 68617)
+++ projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/handler/http/CopyHttpRequestToResponseRequestHandler.java	2008-01-04 05:45:44 UTC (rev 68618)
@@ -23,7 +23,7 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
+import java.io.PrintStream;
 import java.net.Socket;
 
 import org.jboss.ejb3.resource.adaptor.socket.handler.RequestHandlingException;
@@ -56,31 +56,46 @@
    public void handleClientRequest(Socket clientSocket) throws RequestHandlingException
    {
       // Initialize Streams
-      OutputStream outStream = null;
+      PrintStream outStream = null;
       InputStream inStream = null;
 
       // Obtain Streams
       try
       {
-         outStream = clientSocket.getOutputStream();
+         outStream = new PrintStream(clientSocket.getOutputStream());
          inStream = clientSocket.getInputStream();
 
          // Copy request content to response
-         byte[] buffer = new byte[1024];
+         int bufferSize = 1024;
+         byte[] buffer = new byte[bufferSize];
          int i = 0;
          while ((i = inStream.read(buffer)) != -1)
          {
-            outStream.write(buffer);
 
-            // If HTTP EOF is encountered
-            if (CopyHttpRequestToResponseRequestHandler.indexOf(buffer,
-                  CopyHttpRequestToResponseRequestHandler.HTTP_REQUEST_EOF) != -1)
+            // Find HTTP EOF
+            int httpEof = CopyHttpRequestToResponseRequestHandler.indexOf(buffer,
+                  CopyHttpRequestToResponseRequestHandler.HTTP_REQUEST_EOF);
+
+            // If EOF is encountered
+            if (httpEof != -1)
             {
+               // Print only part of buffer until EOF is reached
+               int useableSize = httpEof + CopyHttpRequestToResponseRequestHandler.HTTP_REQUEST_EOF.length;
+               byte[] newBuffer = new byte[useableSize];
+               System.arraycopy(buffer, 0, newBuffer, 0, newBuffer.length);
+               outStream.print(new String(newBuffer));
+
                // Stop
                break;
             }
+            // EOF not encountered
+            else
+            {
+               // Print entire buffer
+               outStream.print(new String(buffer));
+            }
          }
-         
+
          // Flush Outstream
          outStream.flush();
       }




More information about the jboss-cvs-commits mailing list