Author: markt
Date: Wed Jun 24 19:10:57 2015
New Revision: 1687346

URL: http://svn.apache.org/r1687346
Log:
Fix FindBugs warnings. activeRemoteStreamCount wasn't thread safe.

Modified:
    tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java

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=1687346&r1=1687345&r2=1687346&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Wed Jun 
24 19:10:57 2015
@@ -117,7 +117,7 @@ public class Http2UpgradeHandler extends
     private long writeTimeout = 10000;
 
     private final Map<Integer,Stream> streams = new HashMap<>();
-    private volatile int activeRemoteStreamCount = 0;
+    private final AtomicInteger activeRemoteStreamCount = new AtomicInteger(0);
     private volatile int maxRemoteStreamId = 0;
     // Start at -1 so the 'add 2' logic in closeIdleStreams() works
     private volatile int maxActiveRemoteStreamId = -1;
@@ -144,7 +144,7 @@ public class Http2UpgradeHandler extends
             streams.put(key, stream);
             maxRemoteStreamId = 1;
             maxActiveRemoteStreamId = 1;
-            activeRemoteStreamCount = 1;
+            activeRemoteStreamCount.set(1);
             maxProcessedStreamId = 1;
         }
     }
@@ -449,7 +449,7 @@ public class Http2UpgradeHandler extends
                 header[4] = FLAG_END_OF_STREAM;
                 stream.sentEndOfStream();
                 if (!stream.isActive()) {
-                    activeRemoteStreamCount--;
+                    activeRemoteStreamCount.decrementAndGet();
                 }
              }
             ByteUtil.set31Bits(header, 5, stream.getIdentifier().intValue());
@@ -788,7 +788,7 @@ public class Http2UpgradeHandler extends
         Stream stream = getStream(streamId, true);
         stream.receivedEndOfStream();
         if (!stream.isActive()) {
-            activeRemoteStreamCount--;
+            activeRemoteStreamCount.decrementAndGet();
         }
     }
 
@@ -811,9 +811,8 @@ public class Http2UpgradeHandler extends
         stream.checkState(FrameType.HEADERS);
         stream.receivedStartOfHeaders();
         closeIdleStreams(streamId);
-        if (localSettings.getMaxConcurrentStreams() > activeRemoteStreamCount) 
{
-            activeRemoteStreamCount++;
-        } else {
+        if (localSettings.getMaxConcurrentStreams() > 
activeRemoteStreamCount.incrementAndGet()) {
+            activeRemoteStreamCount.decrementAndGet();
             throw new 
StreamException(sm.getString("upgradeHandler.tooManyRemoteStreams",
                     Long.toString(localSettings.getMaxConcurrentStreams())),
                     Http2Error.REFUSED_STREAM, streamId);



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

Reply via email to