Skip to content

Commit 7fb01f8

Browse files
HimtanayaMark Kuhn
authored andcommitted
Update jdk version for canaries (awslabs#109)
Co-authored-by: Himtanaya Bhadada <[email protected]> add retry queue replace retry queue with empty stream write
1 parent 3f71b08 commit 7fb01f8

File tree

3 files changed

+31
-6
lines changed

3 files changed

+31
-6
lines changed

canarytests/agent/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM openjdk:8-jdk-slim
1+
FROM openjdk:11-jdk-slim
22
RUN mkdir /app
33
COPY build/libs/*.jar /app/agent.jar
44
ENV JAVA_OPTS=""

src/main/java/software/amazon/cloudwatchlogs/emf/sinks/TCPClient.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ protected Socket createSocket() {
5151

5252
@Override
5353
public synchronized void sendMessage(String message) {
54-
if (socket == null || socket.isClosed() || shouldConnect) {
55-
connect();
56-
}
54+
checkConnection();
5755

5856
OutputStream os;
5957
try {
@@ -65,13 +63,22 @@ public synchronized void sendMessage(String message) {
6563
}
6664

6765
try {
66+
// Write a space to the socket to verify connection before sending event
67+
os.write(32);
68+
6869
os.write(message.getBytes());
69-
} catch (Exception e) {
70+
} catch (IOException e) {
7071
shouldConnect = true;
7172
throw new RuntimeException("Failed to write message to the socket.", e);
7273
}
7374
}
7475

76+
private void checkConnection() {
77+
if (socket == null || socket.isClosed() || shouldConnect) {
78+
connect();
79+
}
80+
}
81+
7582
@Override
7683
public void close() throws IOException {
7784
if (socket != null) {

src/test/java/software/amazon/cloudwatchlogs/emf/sinks/TCPClientTest.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import java.io.ByteArrayOutputStream;
2424
import java.io.IOException;
25+
import java.net.ServerSocket;
2526
import java.net.Socket;
2627
import org.junit.Test;
2728

@@ -45,7 +46,24 @@ protected Socket createSocket() {
4546

4647
String message = "Test message";
4748
client.sendMessage(message);
49+
client.close();
4850

49-
assertEquals(bos.toString(), message);
51+
assertEquals(message, bos.toString().trim());
52+
}
53+
54+
@Test(timeout = 5000)
55+
public void testSendMessageWithSocketServer() throws IOException {
56+
TCPClient client = new TCPClient(new Endpoint("0.0.0.0", 9999, Protocol.TCP));
57+
ServerSocket server = new ServerSocket(9999);
58+
client.sendMessage("Test message");
59+
Socket socket = server.accept();
60+
61+
byte[] bytes = new byte[1024];
62+
int read = socket.getInputStream().read(bytes);
63+
String message = new String(bytes, 0, read);
64+
socket.close();
65+
server.close();
66+
67+
assertEquals("Test message", message.trim());
5068
}
5169
}

0 commit comments

Comments
 (0)