Skip to content

Commit 217a5e8

Browse files
author
yandryakov
committed
refactoring - make isUnderflowHandlingEnabled private property
1 parent ba69698 commit 217a5e8

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed

src/main/java/com/rabbitmq/client/impl/nio/FrameBuilder.java

+5
Original file line numberDiff line numberDiff line change
@@ -200,4 +200,9 @@ private void handleProtocolVersionMismatch() throws IOException {
200200
}
201201
throw x;
202202
}
203+
204+
//Indicates ssl underflow state - means that cipherBuffer should aggregate next chunks of bytes
205+
public boolean isUnderflowHandlingEnabled() {
206+
return false;
207+
}
203208
}

src/main/java/com/rabbitmq/client/impl/nio/SocketChannelFrameHandlerState.java

+3-6
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.nio.ByteBuffer;
2727
import java.nio.channels.SelectionKey;
2828
import java.nio.channels.SocketChannel;
29-
import java.util.concurrent.atomic.AtomicBoolean;
3029

3130

3231
/**
@@ -72,8 +71,6 @@ public class SocketChannelFrameHandlerState {
7271

7372
final FrameBuilder frameBuilder;
7473

75-
private final AtomicBoolean isUnderflowHandlingEnabled = new AtomicBoolean(false);
76-
7774
public SocketChannelFrameHandlerState(SocketChannel channel, NioLoopContext nioLoopsState, NioParams nioParams, SSLEngine sslEngine) {
7875
this.channel = channel;
7976
this.readSelectorState = nioLoopsState.readSelectorState;
@@ -109,7 +106,7 @@ public SocketChannelFrameHandlerState(SocketChannel channel, NioLoopContext nioL
109106
this.outputStream = new DataOutputStream(
110107
new SslEngineByteBufferOutputStream(sslEngine, plainOut, cipherOut, channel)
111108
);
112-
this.frameBuilder = new SslEngineFrameBuilder(sslEngine, plainIn, cipherIn, channel, isUnderflowHandlingEnabled);
109+
this.frameBuilder = new SslEngineFrameBuilder(sslEngine, plainIn, cipherIn, channel);
113110
}
114111

115112
}
@@ -180,7 +177,7 @@ void endWriteSequence() {
180177

181178
void prepareForReadSequence() throws IOException {
182179
if(ssl) {
183-
if (!isUnderflowHandlingEnabled.get()) {
180+
if (!frameBuilder.isUnderflowHandlingEnabled()) {
184181
cipherIn.clear();
185182
cipherIn.flip();
186183
}
@@ -196,7 +193,7 @@ void prepareForReadSequence() throws IOException {
196193

197194
boolean continueReading() throws IOException {
198195
if(ssl) {
199-
if (isUnderflowHandlingEnabled.get()) {
196+
if (frameBuilder.isUnderflowHandlingEnabled()) {
200197
int bytesRead = NioHelper.read(channel, cipherIn);
201198
if (bytesRead == 0) {
202199
return false;

src/main/java/com/rabbitmq/client/impl/nio/SslEngineFrameBuilder.java

+8-6
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import java.io.IOException;
2222
import java.nio.ByteBuffer;
2323
import java.nio.channels.ReadableByteChannel;
24-
import java.util.concurrent.atomic.AtomicBoolean;
2524

2625

2726
/**
@@ -34,18 +33,17 @@ public class SslEngineFrameBuilder extends FrameBuilder {
3433

3534
private final ByteBuffer cipherBuffer;
3635

37-
private final AtomicBoolean isUnderflowHandlingEnabled;
36+
private boolean isUnderflowHandlingEnabled = false;
3837

39-
public SslEngineFrameBuilder(SSLEngine sslEngine, ByteBuffer plainIn, ByteBuffer cipherIn, ReadableByteChannel channel, final AtomicBoolean isUnderflowHandlingEnabled) {
38+
public SslEngineFrameBuilder(SSLEngine sslEngine, ByteBuffer plainIn, ByteBuffer cipherIn, ReadableByteChannel channel) {
4039
super(channel, plainIn);
4140
this.sslEngine = sslEngine;
4241
this.cipherBuffer = cipherIn;
43-
this.isUnderflowHandlingEnabled = isUnderflowHandlingEnabled;
4442
}
4543

4644
@Override
4745
protected boolean somethingToRead() throws IOException {
48-
if (applicationBuffer.hasRemaining() && !isUnderflowHandlingEnabled.get()) {
46+
if (applicationBuffer.hasRemaining() && !isUnderflowHandlingEnabled) {
4947
return true;
5048
} else {
5149
applicationBuffer.clear();
@@ -74,11 +72,15 @@ protected boolean somethingToRead() throws IOException {
7472
throw new IllegalStateException("Invalid SSL status: " + result.getStatus());
7573
}
7674
} finally {
77-
isUnderflowHandlingEnabled.set(underflowHandling);
75+
isUnderflowHandlingEnabled = underflowHandling;
7876
}
7977

8078
return false;
8179
}
8280
}
8381

82+
@Override
83+
public boolean isUnderflowHandlingEnabled() {
84+
return isUnderflowHandlingEnabled;
85+
}
8486
}

0 commit comments

Comments
 (0)