Merge commit '167518f535616bea71d4d54a679c1db1590c48ca' from stabilization-f69489

Change-Id: I13ccae1109d1626db67d0bbf0898f4c745fa3238
diff --git a/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/LicenseMojo.java b/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/LicenseMojo.java
index 05ac62b..e72404c 100644
--- a/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/LicenseMojo.java
+++ b/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/LicenseMojo.java
@@ -364,13 +364,16 @@
             MavenProject dep = dependencyGavMap.get(gav);
             if (dep == null) {
                 getLog().warn("Unused override dependency " + gav + "; ignoring...");
-            } else if (override.getUrl() != null) {
+                continue;
+            }
+            if (override.getUrl() != null) {
                 final List<Pair<String, String>> newLicense =
                         Collections.singletonList(new ImmutablePair<>(override.getUrl(), override.getName()));
                 List<Pair<String, String>> prevLicense = dependencyLicenseMap.put(dep, newLicense);
                 warnUnlessFlag(dep, IGNORE_LICENSE_OVERRIDE, "license list for " + toGav(dep)
                         + " changed with <override>; was: " + prevLicense + ", now: " + newLicense);
-            } else if (override.getNoticeUrl() != null) {
+            }
+            if (override.getNoticeUrl() != null) {
                 noticeOverrides.put(gav, override.getNoticeUrl());
                 warnUnlessFlag(dep, IGNORE_NOTICE_OVERRIDE,
                         "notice for " + toGav(dep) + " changed with <override>; now: " + override.getNoticeUrl());
diff --git a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/FullFrameChannelReadInterface.java b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/FullFrameChannelReadInterface.java
index 432382a..049cfd8 100644
--- a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/FullFrameChannelReadInterface.java
+++ b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/FullFrameChannelReadInterface.java
@@ -27,9 +27,12 @@
 import org.apache.hyracks.api.comm.IBufferFactory;
 import org.apache.hyracks.api.comm.IChannelControlBlock;
 import org.apache.hyracks.api.exceptions.NetException;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class FullFrameChannelReadInterface extends AbstractChannelReadInterface {
 
+    private static final Logger LOGGER = LogManager.getLogger();
     private final Deque<ByteBuffer> riEmptyStack;
     private final IChannelControlBlock ccb;
 
@@ -64,6 +67,12 @@
                     currentReadBuffer = bufferFactory.createBuffer();
                 }
             }
+            if (currentReadBuffer == null) {
+                if (LOGGER.isWarnEnabled()) {
+                    LOGGER.warn("{} read buffers exceeded. Current empty buffers: {}", ccb, riEmptyStack.size());
+                }
+                throw new IllegalStateException(ccb + " read buffers exceeded");
+            }
             int rSize = Math.min(size, currentReadBuffer.remaining());
             if (rSize > 0) {
                 currentReadBuffer.limit(currentReadBuffer.position() + rSize);