Author: violetagg
Date: Fri Aug 26 09:10:46 2016
New Revision: 1757799
URL: http://svn.apache.org/viewvc?rev=1757799&view=rev
Log:
Introduce a new method SocketWrapperBase.addToBuffers(ByteBuffer)
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
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=1757799&r1=1757798&r2=1757799&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Fri Aug
26 09:10:46 2016
@@ -514,13 +514,25 @@ public abstract class SocketWrapperBase<
protected void addToBuffers(byte[] buf, int offset, int length) {
+ ByteBufferHolder holder = getByteBufferHolder(length);
+ holder.getBuf().put(buf, offset, length);
+ }
+
+
+ protected void addToBuffers(ByteBuffer from) {
+ ByteBufferHolder holder = getByteBufferHolder(from.remaining());
+ holder.getBuf().put(from);
+ }
+
+
+ private ByteBufferHolder getByteBufferHolder(int capacity) {
ByteBufferHolder holder = bufferedWrites.peekLast();
- if (holder == null || holder.isFlipped() ||
holder.getBuf().remaining() < length) {
- ByteBuffer buffer =
ByteBuffer.allocate(Math.max(bufferedWriteSize, length));
+ if (holder == null || holder.isFlipped() ||
holder.getBuf().remaining() < capacity) {
+ ByteBuffer buffer =
ByteBuffer.allocate(Math.max(bufferedWriteSize, capacity));
holder = new ByteBufferHolder(buffer, false);
bufferedWrites.add(holder);
}
- holder.getBuf().put(buf, offset, length);
+ return holder;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]