Skip to content

Commit c8795e5

Browse files
slandelleslandelle
authored andcommitted
Make NettyTransferAdapter thread safe
1 parent 59494b7 commit c8795e5

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

providers/netty4/src/main/java/org/asynchttpclient/providers/netty4/NettyTransferAdapter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.io.File;
66
import java.io.FileInputStream;
77
import java.io.IOException;
8+
import java.util.concurrent.atomic.AtomicInteger;
89

910
import org.asynchttpclient.FluentCaseInsensitiveStringsMap;
1011
import org.asynchttpclient.listener.TransferCompletionHandler;
@@ -13,7 +14,7 @@ class NettyTransferAdapter extends TransferCompletionHandler.TransferAdapter {
1314

1415
private final ByteBuf content;
1516
private final FileInputStream file;
16-
private int byteRead = 0;
17+
private AtomicInteger byteRead = new AtomicInteger(0);
1718

1819
public NettyTransferAdapter(FluentCaseInsensitiveStringsMap headers, ByteBuf content, File file) throws IOException {
1920
super(headers);
@@ -28,11 +29,10 @@ public NettyTransferAdapter(FluentCaseInsensitiveStringsMap headers, ByteBuf con
2829
@Override
2930
public void getBytes(byte[] bytes) {
3031
if (content.writableBytes() != 0) {
31-
content.getBytes(byteRead, bytes);
32-
byteRead += bytes.length;
32+
content.getBytes(byteRead.getAndAdd(bytes.length), bytes);
3333
} else if (file != null) {
3434
try {
35-
byteRead += file.read(bytes);
35+
byteRead.getAndAdd(file.read(bytes));
3636
} catch (IOException e) {
3737
NettyAsyncHttpProvider.LOGGER.error(e.getMessage(), e);
3838
}

0 commit comments

Comments
 (0)