This is an automated email from the ASF dual-hosted git repository. orudyy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git
The following commit(s) were added to refs/heads/master by this push: new 5c27ca0 QPID-8489 - Connection thread looping 5c27ca0 is described below commit 5c27ca077282d0080f874dd9bf8fd24403e764cb Author: aw924 <daniil.kiril...@deutsche-boerse.com> AuthorDate: Thu Dec 17 16:58:59 2020 +0100 QPID-8489 - Connection thread looping This closes #73 --- .../org/apache/qpid/server/transport/AbstractAMQPConnection.java | 4 ++-- .../qpid/server/transport/NonBlockingConnectionTLSDelegate.java | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java b/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java index e45e993..9281eca 100644 --- a/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java +++ b/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java @@ -212,8 +212,8 @@ public abstract class AbstractAMQPConnection<C extends AbstractAMQPConnection<C, protected void onOpen() { super.onOpen(); - long maxAuthDelay = _port.getContextValue(Long.class, Port.CONNECTION_MAXIMUM_AUTHENTICATION_DELAY); - SlowConnectionOpenTicker slowConnectionOpenTicker = new SlowConnectionOpenTicker(maxAuthDelay); + final long maxAuthDelay = _port.getContextValue(Long.class, Port.CONNECTION_MAXIMUM_AUTHENTICATION_DELAY); + final SlowConnectionOpenTicker slowConnectionOpenTicker = new SlowConnectionOpenTicker(maxAuthDelay); _aggregateTicker.addTicker(slowConnectionOpenTicker); _lastReadTime = _lastWriteTime = _lastMessageInboundTime = _lastMessageOutboundTime = getCreatedTime().getTime(); _maxUncommittedInMemorySize = getContextValue(Long.class, Connection.MAX_UNCOMMITTED_IN_MEMORY_SIZE); diff --git a/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java b/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java index f8be138..f6bdabc 100644 --- a/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java +++ b/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java @@ -253,6 +253,15 @@ public class NonBlockingConnectionTLSDelegate implements NonBlockingConnectionDe } _status = QpidByteBuffer.encryptSSL(_sslEngine, buffers, _netOutputBuffer); + // QPID-8489: workaround for JDK 8 bug to avoid tight looping for half closed connections + // Additional info: https://bugs.openjdk.java.net/browse/JDK-8240071, + // http://mail.openjdk.java.net/pipermail/security-dev/2019-January/019142.html + if(_status.bytesProduced() < 1 && _status.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_WRAP + && !_sslEngine.isOutboundDone() && _sslEngine.isInboundDone()) + { + throw new SSLException(String.format("SSLEngine.wrap produced 0 bytes (status %s, handshake status %s)", + _status.getStatus(), _status.getHandshakeStatus())); + } encrypted = _status.bytesProduced() > 0; totalConsumed += _status.bytesConsumed(); runSSLEngineTasks(_status); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org