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 2016/10/10 14:24:54 UTC

svn commit: r1764106 - /tomcat/trunk/java/org/apache/coyote/http2/

Author: markt
Date: Mon Oct 10 14:24:54 2016
New Revision: 1764106

URL: http://svn.apache.org/viewvc?rev=1764106&view=rev
Log:
Reduce visibility as recommended by UCdetector
Remove unused code

Modified:
    tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java
    tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java
    tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java
    tomcat/trunk/java/org/apache/coyote/http2/Flags.java
    tomcat/trunk/java/org/apache/coyote/http2/FrameType.java
    tomcat/trunk/java/org/apache/coyote/http2/HeaderSink.java
    tomcat/trunk/java/org/apache/coyote/http2/Hpack.java
    tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java
    tomcat/trunk/java/org/apache/coyote/http2/HpackEncoder.java
    tomcat/trunk/java/org/apache/coyote/http2/Http2Error.java
    tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
    tomcat/trunk/java/org/apache/coyote/http2/Setting.java
    tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java
    tomcat/trunk/java/org/apache/coyote/http2/StreamStateMachine.java

Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java Mon Oct 10 14:24:54 2016
@@ -23,7 +23,7 @@ import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.res.StringManager;
 
-public abstract class ConnectionSettingsBase<T extends Throwable> {
+abstract class ConnectionSettingsBase<T extends Throwable> {
 
     private final Log log = LogFactory.getLog(ConnectionSettingsBase.class);
     private final StringManager sm = StringManager.getManager(ConnectionSettingsBase.class);
@@ -31,25 +31,25 @@ public abstract class ConnectionSettings
     private final String connectionId;
 
     // Limits
-    protected static final int MAX_WINDOW_SIZE = (1 << 31) - 1;
-    protected static final int MIN_MAX_FRAME_SIZE = 1 << 14;
-    protected static final int MAX_MAX_FRAME_SIZE = (1 << 24) - 1;
-    protected static final long UNLIMITED = ((long)1 << 32); // Use the maximum possible
-    protected static final int MAX_HEADER_TABLE_SIZE = 1 << 16;
+    static final int MAX_WINDOW_SIZE = (1 << 31) - 1;
+    static final int MIN_MAX_FRAME_SIZE = 1 << 14;
+    static final int MAX_MAX_FRAME_SIZE = (1 << 24) - 1;
+    static final long UNLIMITED = ((long)1 << 32); // Use the maximum possible
+    static final int MAX_HEADER_TABLE_SIZE = 1 << 16;
 
     // Defaults
-    protected static final int DEFAULT_HEADER_TABLE_SIZE = 4096;
-    protected static final boolean DEFAULT_ENABLE_PUSH = true;
-    protected static final long DEFAULT_MAX_CONCURRENT_STREAMS = UNLIMITED;
-    protected static final int DEFAULT_INITIAL_WINDOW_SIZE = (1 << 16) - 1;
-    protected static final int DEFAULT_MAX_FRAME_SIZE = MIN_MAX_FRAME_SIZE;
-    protected static final long DEFAULT_MAX_HEADER_LIST_SIZE = UNLIMITED;
+    static final int DEFAULT_HEADER_TABLE_SIZE = 4096;
+    static final boolean DEFAULT_ENABLE_PUSH = true;
+    static final long DEFAULT_MAX_CONCURRENT_STREAMS = UNLIMITED;
+    static final int DEFAULT_INITIAL_WINDOW_SIZE = (1 << 16) - 1;
+    static final int DEFAULT_MAX_FRAME_SIZE = MIN_MAX_FRAME_SIZE;
+    static final long DEFAULT_MAX_HEADER_LIST_SIZE = UNLIMITED;
 
-    protected Map<Setting,Long> current = new HashMap<>();
-    protected Map<Setting,Long> pending = new HashMap<>();
+    Map<Setting,Long> current = new HashMap<>();
+    Map<Setting,Long> pending = new HashMap<>();
 
 
-    public ConnectionSettingsBase(String connectionId) {
+    ConnectionSettingsBase(String connectionId) {
         this.connectionId = connectionId;
         // Set up the defaults
         current.put(Setting.HEADER_TABLE_SIZE,      Long.valueOf(DEFAULT_HEADER_TABLE_SIZE));
@@ -61,7 +61,7 @@ public abstract class ConnectionSettings
     }
 
 
-    public void set(Setting setting, long value) throws T {
+    final void set(Setting setting, long value) throws T {
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("connectionSettings.debug",
                     connectionId, setting, Long.toString(value)));
@@ -102,33 +102,33 @@ public abstract class ConnectionSettings
     }
 
 
-    public int getHeaderTableSize() {
+    final int getHeaderTableSize() {
         return getMinInt(Setting.HEADER_TABLE_SIZE);
     }
 
 
-    public boolean getEnablePush() {
+    final boolean getEnablePush() {
         long result = getMin(Setting.ENABLE_PUSH);
         return result != 0;
     }
 
 
-    public long getMaxConcurrentStreams() {
+    final long getMaxConcurrentStreams() {
         return getMax(Setting.MAX_CONCURRENT_STREAMS);
     }
 
 
-    public int getInitialWindowSize() {
+    final int getInitialWindowSize() {
         return getMaxInt(Setting.INITIAL_WINDOW_SIZE);
     }
 
 
-    public int getMaxFrameSize() {
+    final int getMaxFrameSize() {
         return getMaxInt(Setting.MAX_FRAME_SIZE);
     }
 
 
-    public long getMaxHeaderListSize() {
+    final long getMaxHeaderListSize() {
         return getMax(Setting.MAX_HEADER_LIST_SIZE);
     }
 

Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java Mon Oct 10 14:24:54 2016
@@ -30,18 +30,18 @@ import java.util.Map;
  * client will respond (almost certainly by closing the connection) as defined
  * in the HTTP/2 specification.
  */
-public class ConnectionSettingsLocal extends ConnectionSettingsBase<IllegalArgumentException> {
+class ConnectionSettingsLocal extends ConnectionSettingsBase<IllegalArgumentException> {
 
     private boolean sendInProgress = false;
 
 
-    public ConnectionSettingsLocal(String connectionId) {
+    ConnectionSettingsLocal(String connectionId) {
         super(connectionId);
     }
 
 
     @Override
-    protected synchronized void set(Setting setting, Long value) {
+    final synchronized void set(Setting setting, Long value) {
         checkSend();
         if (current.get(setting).longValue() == value.longValue()) {
             pending.remove(setting);
@@ -51,7 +51,7 @@ public class ConnectionSettingsLocal ext
     }
 
 
-    synchronized byte[] getSettingsFrameForPending() {
+    final synchronized byte[] getSettingsFrameForPending() {
         checkSend();
         int payloadSize = pending.size() * 6;
         byte[] result = new byte[9 + payloadSize];
@@ -73,7 +73,7 @@ public class ConnectionSettingsLocal ext
     }
 
 
-    synchronized boolean ack() {
+    final synchronized boolean ack() {
         if (sendInProgress) {
             sendInProgress = false;
             current.putAll(pending);
@@ -94,7 +94,7 @@ public class ConnectionSettingsLocal ext
 
 
     @Override
-    void throwException(String msg, Http2Error error) throws IllegalArgumentException {
+    final void throwException(String msg, Http2Error error) throws IllegalArgumentException {
         throw new IllegalArgumentException(msg);
     }
 }

Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java Mon Oct 10 14:24:54 2016
@@ -20,15 +20,15 @@ package org.apache.coyote.http2;
  * Represents the remote connection settings: i.e. the settings the server must
  * use when communicating with the client.
  */
-public class ConnectionSettingsRemote extends ConnectionSettingsBase<ConnectionException> {
+class ConnectionSettingsRemote extends ConnectionSettingsBase<ConnectionException> {
 
-    public ConnectionSettingsRemote(String connectionId) {
+    ConnectionSettingsRemote(String connectionId) {
         super(connectionId);
     }
 
 
     @Override
-    void throwException(String msg, Http2Error error) throws ConnectionException {
+    final void throwException(String msg, Http2Error error) throws ConnectionException {
         throw new ConnectionException(msg, error);
     }
 }

Modified: tomcat/trunk/java/org/apache/coyote/http2/Flags.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Flags.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Flags.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Flags.java Mon Oct 10 14:24:54 2016
@@ -16,34 +16,34 @@
  */
 package org.apache.coyote.http2;
 
-public class Flags {
+class Flags {
 
     private Flags() {
         // Utility class. Hide default constructor
     }
 
 
-    public static boolean isEndOfStream(int flags) {
+    static boolean isEndOfStream(int flags) {
         return (flags & 0x01) > 0;
     }
 
 
-    public static boolean isAck(int flags) {
+    static boolean isAck(int flags) {
         return (flags & 0x01) > 0;
     }
 
 
-    public static boolean isEndOfHeaders(int flags) {
+    static boolean isEndOfHeaders(int flags) {
         return (flags & 0x04) > 0;
     }
 
 
-    public static boolean hasPadding(int flags) {
+    static boolean hasPadding(int flags) {
         return (flags & 0x08) > 0;
     }
 
 
-    public static boolean hasPriority(int flags) {
+    static boolean hasPriority(int flags) {
         return (flags & 0x20) > 0;
     }
 }

Modified: tomcat/trunk/java/org/apache/coyote/http2/FrameType.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/FrameType.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/FrameType.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/FrameType.java Mon Oct 10 14:24:54 2016
@@ -20,7 +20,7 @@ import java.util.function.IntPredicate;
 
 import org.apache.tomcat.util.res.StringManager;
 
-public enum FrameType {
+enum FrameType {
 
     DATA          (0,   false,  true, null,              false),
     HEADERS       (1,   false,  true, null,               true),
@@ -53,12 +53,12 @@ public enum FrameType {
     }
 
 
-    public byte getIdByte() {
+    byte getIdByte() {
         return (byte) id;
     }
 
 
-    public void check(int streamId, int payloadSize) throws Http2Exception {
+    void check(int streamId, int payloadSize) throws Http2Exception {
         // Is FrameType valid for the given stream?
         if (streamId == 0 && !streamZero || streamId != 0 && !streamNonZero) {
             throw new ConnectionException(sm.getString("frameType.checkStream", this),
@@ -80,7 +80,7 @@ public enum FrameType {
     }
 
 
-    public static FrameType valueOf(int i) {
+    static FrameType valueOf(int i) {
         switch(i) {
         case 0:
             return DATA;

Modified: tomcat/trunk/java/org/apache/coyote/http2/HeaderSink.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/HeaderSink.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/HeaderSink.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/HeaderSink.java Mon Oct 10 14:24:54 2016
@@ -23,7 +23,7 @@ import org.apache.coyote.http2.HpackDeco
  * the connection close process has started if headers for new streams are
  * received.
  */
-public class HeaderSink implements HeaderEmitter {
+class HeaderSink implements HeaderEmitter {
 
     @Override
     public void emitHeader(String name, String value, boolean neverIndex) {

Modified: tomcat/trunk/java/org/apache/coyote/http2/Hpack.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Hpack.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Hpack.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Hpack.java Mon Oct 10 14:24:54 2016
@@ -22,7 +22,7 @@ import org.apache.tomcat.util.res.String
 
 final class Hpack {
 
-    static final StringManager sm = StringManager.getManager(Hpack.class);
+    private static final StringManager sm = StringManager.getManager(Hpack.class);
 
     private static final byte LOWER_DIFF = 'a' - 'A';
     static final int DEFAULT_TABLE_SIZE = 4096;

Modified: tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java Mon Oct 10 14:24:54 2016
@@ -63,12 +63,12 @@ public class HpackDecoder {
 
     private final StringBuilder stringBuilder = new StringBuilder();
 
-    public HpackDecoder(int maxMemorySize) {
+    HpackDecoder(int maxMemorySize) {
         this.maxMemorySize = maxMemorySize;
         headerTable = new Hpack.HeaderField[DEFAULT_RING_BUFFER_SIZE];
     }
 
-    public HpackDecoder() {
+    HpackDecoder() {
         this(Hpack.DEFAULT_TABLE_SIZE);
     }
 
@@ -81,7 +81,7 @@ public class HpackDecoder {
      *
      * @throws HpackException If the packed data is not valid
      */
-    public void decode(ByteBuffer buffer) throws HpackException {
+    void decode(ByteBuffer buffer) throws HpackException {
         while (buffer.hasRemaining()) {
             int originalPos = buffer.position();
             byte b = buffer.get();
@@ -326,16 +326,16 @@ public class HpackDecoder {
     /**
      * Interface that can be used to immediately validate headers (ex: uppercase detection).
      */
-    public interface HeaderEmitter {
+    interface HeaderEmitter {
         void emitHeader(String name, String value, boolean neverIndex);
     }
 
 
-    public HeaderEmitter getHeaderEmitter() {
+    HeaderEmitter getHeaderEmitter() {
         return headerEmitter;
     }
 
-    public void setHeaderEmitter(HeaderEmitter headerEmitter) {
+    void setHeaderEmitter(HeaderEmitter headerEmitter) {
         this.headerEmitter = headerEmitter;
     }
 

Modified: tomcat/trunk/java/org/apache/coyote/http2/HpackEncoder.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/HpackEncoder.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/HpackEncoder.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/HpackEncoder.java Mon Oct 10 14:24:54 2016
@@ -34,12 +34,12 @@ import org.apache.tomcat.util.res.String
 /**
  * Encoder for HPACK frames.
  */
-public class HpackEncoder {
+class HpackEncoder {
 
     private static final Log log = LogFactory.getLog(HpackEncoder.class);
     private static final StringManager sm = StringManager.getManager(HpackEncoder.class);
 
-    public static final HpackHeaderFunction DEFAULT_HEADER_FUNCTION = new HpackHeaderFunction() {
+    private static final HpackHeaderFunction DEFAULT_HEADER_FUNCTION = new HpackHeaderFunction() {
         @Override
         public boolean shouldUseIndexing(String headerName, String value) {
             //content length and date change all the time
@@ -104,13 +104,9 @@ public class HpackEncoder {
 
     private final HpackHeaderFunction hpackHeaderFunction;
 
-    public HpackEncoder(int maxTableSize, HpackHeaderFunction headerFunction) {
+    HpackEncoder(int maxTableSize) {
         this.maxTableSize = maxTableSize;
-        this.hpackHeaderFunction = headerFunction;
-    }
-
-    public HpackEncoder(int maxTableSize) {
-        this(maxTableSize, DEFAULT_HEADER_FUNCTION);
+        this.hpackHeaderFunction = DEFAULT_HEADER_FUNCTION;
     }
 
     /**
@@ -121,7 +117,7 @@ public class HpackEncoder {
      *
      * @return The state of the encoding process
      */
-    public State encode(MimeHeaders headers, ByteBuffer target) {
+    State encode(MimeHeaders headers, ByteBuffer target) {
         int it = headersIterator;
         if (headersIterator == -1) {
             handleTableSizeChange(target);
@@ -250,7 +246,7 @@ public class HpackEncoder {
         }
         existing.add(d);
         evictionQueue.add(d);
-        currentTableSize += d.size;
+        currentTableSize += d.getSize();
         runEvictionIfRequired();
         if (entryPositionCounter == Integer.MAX_VALUE) {
             //prevent rollover
@@ -335,19 +331,19 @@ public class HpackEncoder {
         minNewMaxHeaderSize = -1;
     }
 
-    public enum State {
+    enum State {
         COMPLETE,
         UNDERFLOW,
 
     }
 
-    static class TableEntry {
-        final String name;
-        final String value;
-        final int size;
-        int position;
+    private static class TableEntry {
+        private final String name;
+        private final String value;
+        private final int size;
+        private int position;
 
-        TableEntry(String name, String value, int position) {
+        private TableEntry(String name, String value, int position) {
             this.name = name;
             this.value = value;
             this.position = position;
@@ -358,24 +354,28 @@ public class HpackEncoder {
             }
         }
 
-        public int getPosition() {
+        int getPosition() {
             return position;
         }
+
+        int getSize() {
+            return size;
+        }
     }
 
-    class DynamicTableEntry extends TableEntry {
+    private class DynamicTableEntry extends TableEntry {
 
-        DynamicTableEntry(String name, String value, int position) {
+        private DynamicTableEntry(String name, String value, int position) {
             super(name, value, position);
         }
 
         @Override
-        public int getPosition() {
+        int getPosition() {
             return super.getPosition() + entryPositionCounter + Hpack.STATIC_TABLE_LENGTH;
         }
     }
 
-    public interface HpackHeaderFunction {
+    private interface HpackHeaderFunction {
         boolean shouldUseIndexing(String header, String value);
 
         /**

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2Error.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2Error.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2Error.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2Error.java Mon Oct 10 14:24:54 2016
@@ -16,7 +16,7 @@
  */
 package org.apache.coyote.http2;
 
-public enum Http2Error {
+enum Http2Error {
 
     NO_ERROR            (0x00),
     PROTOCOL_ERROR      (0x01),
@@ -40,12 +40,12 @@ public enum Http2Error {
     }
 
 
-    public long getCode() {
+    long getCode() {
         return code;
     }
 
 
-    public byte[] getCodeBytes() {
+    byte[] getCodeBytes() {
         byte[] codeByte = new byte[4];
         ByteUtil.setFourBytes(codeByte, 0, code);
         return codeByte;

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Mon Oct 10 14:24:54 2016
@@ -71,7 +71,7 @@ import org.apache.tomcat.util.res.String
  *     </li>
  * </ul>
  */
-public class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeHandler,
+class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeHandler,
         Input, Output {
 
     private static final Log log = LogFactory.getLog(Http2UpgradeHandler.class);
@@ -144,7 +144,7 @@ public class Http2UpgradeHandler extends
     private AtomicInteger streamConcurrency = null;
     private Queue<StreamProcessor> queuedProcessors = null;
 
-    public Http2UpgradeHandler(Adapter adapter, Request coyoteRequest) {
+    Http2UpgradeHandler(Adapter adapter, Request coyoteRequest) {
         super (STREAM_ID_ZERO);
         this.adapter = adapter;
         this.connectionId = Integer.toString(connectionIdGenerator.getAndIncrement());
@@ -573,7 +573,7 @@ public class Http2UpgradeHandler extends
     }
 
 
-    void writePushHeaders(Stream stream, int pushedStreamId, Request coyoteRequest, int payloadSize)
+    private void writePushHeaders(Stream stream, int pushedStreamId, Request coyoteRequest, int payloadSize)
             throws IOException {
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("upgradeHandler.writePushHeaders", connectionId,

Modified: tomcat/trunk/java/org/apache/coyote/http2/Setting.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Setting.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Setting.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Setting.java Mon Oct 10 14:24:54 2016
@@ -16,7 +16,7 @@
  */
 package org.apache.coyote.http2;
 
-public enum Setting {
+enum Setting {
     HEADER_TABLE_SIZE(1),
     ENABLE_PUSH(2),
     MAX_CONCURRENT_STREAMS(3),
@@ -31,16 +31,16 @@ public enum Setting {
         this.id = id;
     }
 
-    public int getId() {
+    final int getId() {
         return id;
     }
 
     @Override
-    public String toString() {
+    public final String toString() {
         return Integer.toString(id);
     }
 
-    public static Setting valueOf(int i) {
+    static final Setting valueOf(int i) {
         switch(i) {
         case 1: {
             return HEADER_TABLE_SIZE;

Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Mon Oct 10 14:24:54 2016
@@ -32,7 +32,7 @@ import org.apache.tomcat.util.net.Socket
 import org.apache.tomcat.util.net.SocketWrapperBase;
 import org.apache.tomcat.util.res.StringManager;
 
-public class StreamProcessor extends AbstractProcessor implements Runnable {
+class StreamProcessor extends AbstractProcessor implements Runnable {
 
     private static final Log log = LogFactory.getLog(StreamProcessor.class);
     private static final StringManager sm = StringManager.getManager(StreamProcessor.class);
@@ -41,7 +41,7 @@ public class StreamProcessor extends Abs
     private final Stream stream;
 
 
-    public StreamProcessor(Http2UpgradeHandler handler, Stream stream, Adapter adapter, SocketWrapperBase<?> socketWrapper) {
+    StreamProcessor(Http2UpgradeHandler handler, Stream stream, Adapter adapter, SocketWrapperBase<?> socketWrapper) {
         super(stream.getCoyoteRequest(), stream.getCoyoteResponse());
         this.handler = handler;
         this.stream = stream;
@@ -51,7 +51,7 @@ public class StreamProcessor extends Abs
 
 
     @Override
-    public void run() {
+    public final void run() {
         try {
             // FIXME: the regular processor syncs on socketWrapper, but here this deadlocks
             synchronized (this) {
@@ -192,7 +192,7 @@ public class StreamProcessor extends Abs
 
 
     @Override
-    public void recycle() {
+    public final void recycle() {
         // StreamProcessor instances are not re-used.
         // Clear fields that can be cleared to aid GC and trigger NPEs if this
         // is reused
@@ -202,19 +202,19 @@ public class StreamProcessor extends Abs
 
 
     @Override
-    protected Log getLog() {
+    protected final Log getLog() {
         return log;
     }
 
 
     @Override
-    public void pause() {
+    public final void pause() {
         // NO-OP. Handled by the Http2UpgradeHandler
     }
 
 
     @Override
-    public SocketState service(SocketWrapperBase<?> socket) throws IOException {
+    public final SocketState service(SocketWrapperBase<?> socket) throws IOException {
         try {
             adapter.service(request, response);
         } catch (Exception e) {
@@ -239,7 +239,7 @@ public class StreamProcessor extends Abs
 
 
     @Override
-    protected boolean flushBufferedWrite() throws IOException {
+    protected final boolean flushBufferedWrite() throws IOException {
         if (stream.getOutputBuffer().flush(false)) {
             // The buffer wasn't fully flushed so re-register the
             // stream for write. Note this does not go via the
@@ -259,7 +259,7 @@ public class StreamProcessor extends Abs
 
 
     @Override
-    protected SocketState dispatchEndRequest() {
+    protected final SocketState dispatchEndRequest() {
         return SocketState.CLOSED;
     }
 }

Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamStateMachine.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamStateMachine.java?rev=1764106&r1=1764105&r2=1764106&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/StreamStateMachine.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/StreamStateMachine.java Mon Oct 10 14:24:54 2016
@@ -33,7 +33,7 @@ import org.apache.tomcat.util.res.String
  * </ul>
  *
  */
-public class StreamStateMachine {
+class StreamStateMachine {
 
     private static final Log log = LogFactory.getLog(StreamStateMachine.class);
     private static final StringManager sm = StringManager.getManager(StreamStateMachine.class);
@@ -42,69 +42,36 @@ public class StreamStateMachine {
     private State state;
 
 
-    public StreamStateMachine(Stream stream) {
+    StreamStateMachine(Stream stream) {
         this.stream = stream;
         stateChange(null, State.IDLE);
     }
 
 
-    public synchronized void sentPushPromise() {
+    final synchronized void sentPushPromise() {
         stateChange(State.IDLE, State.RESERVED_LOCAL);
     }
 
 
-    public synchronized void receivedPushPromise() {
-        stateChange(State.IDLE, State.RESERVED_REMOTE);
-    }
-
-
-    public synchronized void sentStartOfHeaders() {
-        stateChange(State.IDLE, State.OPEN);
-        stateChange(State.RESERVED_LOCAL, State.HALF_CLOSED_REMOTE);
-    }
-
-
-    public synchronized void receivedStartOfHeaders() {
+    final synchronized void receivedStartOfHeaders() {
         stateChange(State.IDLE, State.OPEN);
         stateChange(State.RESERVED_REMOTE, State.HALF_CLOSED_LOCAL);
     }
 
 
-    public synchronized void sentEndOfStream() {
+    final synchronized void sentEndOfStream() {
         stateChange(State.OPEN, State.HALF_CLOSED_LOCAL);
         stateChange(State.HALF_CLOSED_REMOTE, State.CLOSED_TX);
     }
 
 
-    public synchronized void recievedEndOfStream() {
+    final synchronized void recievedEndOfStream() {
         stateChange(State.OPEN, State.HALF_CLOSED_REMOTE);
         stateChange(State.HALF_CLOSED_LOCAL, State.CLOSED_RX);
     }
 
 
-    /**
-     * Marks the stream as reset. This method will not change the stream state
-     * if:
-     * <ul>
-     * <li>The stream is already reset</li>
-     * <li>The stream is already closed</li>
-     * </ul>
-     *
-     * @throws IllegalStateException If the stream is in a state that does not
-     *         permit resets
-     */
-    public synchronized void sendReset() {
-        if (state == State.IDLE) {
-            throw new IllegalStateException(sm.getString("streamStateMachine.debug.change",
-                    stream.getConnectionId(), stream.getIdentifier(), state));
-        }
-        if (state.canReset()) {
-            stateChange(state, State.CLOSED_RST_TX);
-        }
-    }
-
-
-    public synchronized void receiveReset() {
+    final synchronized void receiveReset() {
         stateChange(state, State.CLOSED_RST_RX);
     }
 
@@ -120,7 +87,7 @@ public class StreamStateMachine {
     }
 
 
-    public synchronized void checkFrameType(FrameType frameType) throws Http2Exception {
+    final synchronized void checkFrameType(FrameType frameType) throws Http2Exception {
         // No state change. Checks that receiving the frame type is valid for
         // the current state of this stream.
         if (!isFrameTypePermitted(frameType)) {
@@ -137,96 +104,82 @@ public class StreamStateMachine {
     }
 
 
-    public synchronized boolean isFrameTypePermitted(FrameType frameType) {
+    final synchronized boolean isFrameTypePermitted(FrameType frameType) {
         return state.isFrameTypePermitted(frameType);
     }
 
 
-    public synchronized boolean isActive() {
+    final synchronized boolean isActive() {
         return state.isActive();
     }
 
 
-    public synchronized boolean canRead() {
+    final synchronized boolean canRead() {
         return state.canRead();
     }
 
 
-    public synchronized boolean canWrite() {
+    final synchronized boolean canWrite() {
         return state.canWrite();
     }
 
 
-    public synchronized boolean isClosedFinal() {
+    final synchronized boolean isClosedFinal() {
         return state == State.CLOSED_FINAL;
     }
 
-    public synchronized void closeIfIdle() {
+    final synchronized void closeIfIdle() {
         stateChange(State.IDLE, State.CLOSED_FINAL);
     }
 
 
     private enum State {
-        IDLE               (false, false, false, true,
-                            Http2Error.PROTOCOL_ERROR, FrameType.HEADERS,
-                                                       FrameType.PRIORITY),
-        OPEN               (true,  true,  true,  true,
-                            Http2Error.PROTOCOL_ERROR, FrameType.DATA,
-                                                       FrameType.HEADERS,
-                                                       FrameType.PRIORITY,
-                                                       FrameType.RST,
-                                                       FrameType.PUSH_PROMISE,
-                                                       FrameType.WINDOW_UPDATE),
-        RESERVED_LOCAL     (false, false, true,  true,
-                            Http2Error.PROTOCOL_ERROR, FrameType.PRIORITY,
-                                                       FrameType.RST,
-                                                       FrameType.WINDOW_UPDATE),
-        RESERVED_REMOTE    (false, false, true,  true,
-                            Http2Error.PROTOCOL_ERROR, FrameType.HEADERS,
-                                                       FrameType.PRIORITY,
-                                                       FrameType.RST),
-        HALF_CLOSED_LOCAL  (true,  false, true,  true,
-                            Http2Error.PROTOCOL_ERROR, FrameType.DATA,
-                                                       FrameType.HEADERS,
-                                                       FrameType.PRIORITY,
-                                                       FrameType.RST,
-                                                       FrameType.PUSH_PROMISE,
-                                                       FrameType.WINDOW_UPDATE),
-        HALF_CLOSED_REMOTE (false, true,  true,  true,
-                            Http2Error.STREAM_CLOSED,  FrameType.PRIORITY,
-                                                       FrameType.RST,
-                                                       FrameType.WINDOW_UPDATE),
-        CLOSED_RX          (false, false, false, true,
-                            Http2Error.STREAM_CLOSED,  FrameType.PRIORITY),
-        CLOSED_TX          (false, false, false, true,
-                            Http2Error.STREAM_CLOSED,  FrameType.PRIORITY,
-                                                       FrameType.RST,
-                                                       FrameType.WINDOW_UPDATE),
-        CLOSED_RST_RX      (false, false, false, false,
-                            Http2Error.STREAM_CLOSED,  FrameType.PRIORITY),
-        CLOSED_RST_TX      (false, false, false, false,
-                            Http2Error.STREAM_CLOSED,  FrameType.DATA,
-                                                       FrameType.HEADERS,
-                                                       FrameType.PRIORITY,
-                                                       FrameType.RST,
-                                                       FrameType.PUSH_PROMISE,
-                                                       FrameType.WINDOW_UPDATE),
-        CLOSED_FINAL       (false, false, false, true,
-                            Http2Error.PROTOCOL_ERROR, FrameType.PRIORITY);
+        IDLE               (false, false, true, Http2Error.PROTOCOL_ERROR, FrameType.HEADERS,
+                                                                           FrameType.PRIORITY),
+        OPEN               (true,  true,  true, Http2Error.PROTOCOL_ERROR, FrameType.DATA,
+                                                                           FrameType.HEADERS,
+                                                                           FrameType.PRIORITY,
+                                                                           FrameType.RST,
+                                                                           FrameType.PUSH_PROMISE,
+                                                                           FrameType.WINDOW_UPDATE),
+        RESERVED_LOCAL     (false, false, true, Http2Error.PROTOCOL_ERROR, FrameType.PRIORITY,
+                                                                           FrameType.RST,
+                                                                           FrameType.WINDOW_UPDATE),
+        RESERVED_REMOTE    (false, false, true, Http2Error.PROTOCOL_ERROR, FrameType.HEADERS,
+                                                                           FrameType.PRIORITY,
+                                                                           FrameType.RST),
+        HALF_CLOSED_LOCAL  (true,  false, true, Http2Error.PROTOCOL_ERROR, FrameType.DATA,
+                                                                           FrameType.HEADERS,
+                                                                           FrameType.PRIORITY,
+                                                                           FrameType.RST,
+                                                                           FrameType.PUSH_PROMISE,
+                                                                           FrameType.WINDOW_UPDATE),
+        HALF_CLOSED_REMOTE (false, true,  true, Http2Error.STREAM_CLOSED,  FrameType.PRIORITY,
+                                                                           FrameType.RST,
+                                                                           FrameType.WINDOW_UPDATE),
+        CLOSED_RX          (false, false, true, Http2Error.STREAM_CLOSED,  FrameType.PRIORITY),
+        CLOSED_TX          (false, false, true, Http2Error.STREAM_CLOSED,  FrameType.PRIORITY,
+                                                                           FrameType.RST,
+                                                                           FrameType.WINDOW_UPDATE),
+        CLOSED_RST_RX      (false, false, false, Http2Error.STREAM_CLOSED, FrameType.PRIORITY),
+        CLOSED_RST_TX      (false, false, false, Http2Error.STREAM_CLOSED, FrameType.DATA,
+                                                                           FrameType.HEADERS,
+                                                                           FrameType.PRIORITY,
+                                                                           FrameType.RST,
+                                                                           FrameType.PUSH_PROMISE,
+                                                                           FrameType.WINDOW_UPDATE),
+        CLOSED_FINAL       (false, false, true, Http2Error.PROTOCOL_ERROR, FrameType.PRIORITY);
 
         private final boolean canRead;
         private final boolean canWrite;
-        private final boolean canReset;
         private final boolean connectionErrorForInvalidFrame;
         private final Http2Error errorCodeForInvalidFrame;
         private final Set<FrameType> frameTypesPermitted = new HashSet<>();
 
-        private State(boolean canRead, boolean canWrite, boolean canReset,
-                boolean connectionErrorForInvalidFrame, Http2Error errorCode,
-                FrameType... frameTypes) {
+        private State(boolean canRead, boolean canWrite, boolean connectionErrorForInvalidFrame,
+                Http2Error errorCode, FrameType... frameTypes) {
             this.canRead = canRead;
             this.canWrite = canWrite;
-            this.canReset = canReset;
             this.connectionErrorForInvalidFrame = connectionErrorForInvalidFrame;
             this.errorCodeForInvalidFrame = errorCode;
             for (FrameType frameType : frameTypes) {
@@ -246,10 +199,6 @@ public class StreamStateMachine {
             return canWrite;
         }
 
-        public boolean canReset() {
-            return canReset;
-        }
-
         public boolean isFrameTypePermitted(FrameType frameType) {
             return frameTypesPermitted.contains(frameType);
         }




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