You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/01/23 20:03:32 UTC

svn commit: r1654327 - in /tomcat/trunk/java/org/apache: coyote/http11/ tomcat/util/net/

Author: markt
Date: Fri Jan 23 19:03:32 2015
New Revision: 1654327

URL: http://svn.apache.org/r1654327
Log:
Push creation of the SendfileData into the SocketWrapper

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
    tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java
    tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654327&r1=1654326&r2=1654327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:03:32 2015
@@ -324,12 +324,11 @@ public class Http11AprProcessor extends
             // No entity body sent here
             getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]);
             contentDelimitation = true;
-            sendfileData = new AprEndpoint.SendfileData();
-            sendfileData.fileName = fileName;
-            sendfileData.pos = ((Long) request.getAttribute(
-                    org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue();
-            sendfileData.length = ((Long) request.getAttribute(
-                    org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos;
+            sendfileData = socketWrapper.createSendfileData(fileName,
+                    ((Long) request.getAttribute(
+                            org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(),
+                    ((Long) request.getAttribute(
+                            org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos);
             return true;
         }
         return false;

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1654327&r1=1654326&r2=1654327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Fri Jan 23 19:03:32 2015
@@ -318,12 +318,11 @@ public class Http11Nio2Processor extends
             // No entity body sent here
             getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]);
             contentDelimitation = true;
-            sendfileData = new Nio2Endpoint.SendfileData();
-            sendfileData.fileName = fileName;
-            sendfileData.pos = ((Long) request.getAttribute(
-                    org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue();
-            sendfileData.length = ((Long) request.getAttribute(
-                    org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos;
+            sendfileData = socketWrapper.createSendfileData(fileName,
+                    ((Long) request.getAttribute(
+                            org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(),
+                    ((Long) request.getAttribute(
+                            org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos);
             return true;
         }
         return false;

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1654327&r1=1654326&r2=1654327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Fri Jan 23 19:03:32 2015
@@ -284,12 +284,11 @@ public class Http11NioProcessor extends
             // No entity body sent here
             getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]);
             contentDelimitation = true;
-            sendfileData = new NioEndpoint.SendfileData();
-            sendfileData.fileName = fileName;
-            sendfileData.pos = ((Long) request.getAttribute(
-                    org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue();
-            sendfileData.length = ((Long) request.getAttribute(
-                    org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos;
+            sendfileData = socketWrapper.createSendfileData(fileName,
+                    ((Long) request.getAttribute(
+                            org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(),
+                    ((Long) request.getAttribute(
+                            org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos);
             return true;
         }
         return false;

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1654327&r1=1654326&r2=1654327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Jan 23 19:03:32 2015
@@ -1913,7 +1913,6 @@ public class AprEndpoint extends Abstrac
 
     // ----------------------------------------------- SendfileData Inner Class
 
-
     /**
      * SendfileData class.
      */
@@ -1923,12 +1922,15 @@ public class AprEndpoint extends Abstrac
         protected long fdpool;
         // Socket and socket pool
         protected long socket;
+
+        public SendfileData(String filename, long pos, long length) {
+            super(filename, pos, length);
+        }
     }
 
 
     // --------------------------------------------------- Sendfile Inner Class
 
-
     public class Sendfile implements Runnable {
 
         protected long sendfilePollset = 0;
@@ -2644,6 +2646,12 @@ public class AprEndpoint extends Abstrac
         }
 
 
+        @Override
+        public SendfileDataBase createSendfileData(String filename, long pos, long length) {
+            return new SendfileData(filename, pos, length);
+        }
+
+
         @Override
         public SendfileState processSendfile(SendfileDataBase sendfileData) {
             ((SendfileData) sendfileData).socket = getSocket().longValue();

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1654327&r1=1654326&r2=1654327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Fri Jan 23 19:03:32 2015
@@ -1307,6 +1307,12 @@ public class Nio2Endpoint extends Abstra
 
 
         @Override
+        public SendfileDataBase createSendfileData(String filename, long pos, long length) {
+            return new SendfileData(filename, pos, length);
+        }
+
+
+        @Override
         public SendfileState processSendfile(SendfileDataBase sendfileData) {
             setSendfileData((SendfileData) sendfileData);
             return ((Nio2Endpoint) getEndpoint()).processSendfile(this);
@@ -1625,5 +1631,9 @@ public class Nio2Endpoint extends Abstra
         private ByteBuffer buffer;
         private boolean doneInline = false;
         private boolean error = false;
+
+        public SendfileData(String filename, long pos, long length) {
+            super(filename, pos, length);
+        }
     }
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1654327&r1=1654326&r2=1654327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Fri Jan 23 19:03:32 2015
@@ -1585,6 +1585,12 @@ public class NioEndpoint extends Abstrac
         }
 
 
+
+        @Override
+        public SendfileDataBase createSendfileData(String filename, long pos, long length) {
+            return new SendfileData(filename, pos, length);
+        }
+
         @Override
         public SendfileState processSendfile(SendfileDataBase sendfileData) {
             setSendfileData((SendfileData) sendfileData);
@@ -1774,6 +1780,11 @@ public class NioEndpoint extends Abstrac
      * SendfileData class.
      */
     public static class SendfileData extends SendfileDataBase {
+
+        public SendfileData(String filename, long pos, long length) {
+            super(filename, pos, length);
+        }
+
         protected volatile FileChannel fchannel;
     }
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java?rev=1654327&r1=1654326&r2=1654327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java Fri Jan 23 19:03:32 2015
@@ -30,7 +30,7 @@ public abstract class SendfileDataBase {
      * The full path to the file that contains the data to be written to the
      * socket.
      */
-    public String fileName;
+    public final String fileName;
 
     /**
      * The position of the next byte in the file to be written to the socket.
@@ -45,4 +45,10 @@ public abstract class SendfileDataBase {
      * point and then updated as the file is written.
      */
     public long length;
+
+    public SendfileDataBase(String filename, long pos, long length) {
+        this.fileName = filename;
+        this.pos = pos;
+        this.length = length;
+    }
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1654327&r1=1654326&r2=1654327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Fri Jan 23 19:03:32 2015
@@ -511,6 +511,8 @@ public abstract class SocketWrapperBase<
 
     public abstract void regsiterForEvent(boolean read, boolean write);
 
+    public abstract SendfileDataBase createSendfileData(String filename, long pos, long length);
+
     /**
      * Starts the sendfile process. It is expected that if the sendfile process
      * does not complete during this call that the caller <b>will not</b> add



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org