From 03f3a4ab9447848365ddc8837b4807f4e12caaed Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 19 Sep 2023 18:58:23 +0000 Subject: [PATCH 01/14] fix: pom.xml to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEGUAVA-5710356 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a5bf9f4..975f628 100644 --- a/pom.xml +++ b/pom.xml @@ -85,7 +85,7 @@ - 1.55.1 + 1.57.0 2.0.51.Final 8.0.1 From b1dab76d93f94ffa99b42cc9504f3a09e28b543d Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 12:23:33 +0100 Subject: [PATCH 02/14] fix(test): issue with test sometimes failing when order changes --- .../com/intergral/deep/agent/DeepAgentTest.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java index 037cecb..3118fed 100644 --- a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java @@ -27,11 +27,13 @@ import com.intergral.deep.agent.api.plugin.IPlugin.IPluginRegistration; import com.intergral.deep.agent.api.tracepoint.ITracepoint; import com.intergral.deep.agent.api.tracepoint.ITracepoint.ITracepointRegistration; +import com.intergral.deep.agent.grpc.GrpcService; import com.intergral.deep.agent.settings.Settings; import com.intergral.deep.agent.tracepoint.handler.Callback; import com.intergral.deep.agent.tracepoint.inst.TracepointInstrumentationService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.MockedConstruction; import org.mockito.MockedStatic; import org.mockito.Mockito; @@ -45,9 +47,14 @@ class DeepAgentTest { void setUp() { Mockito.when(settings.getSettingAs("poll.timer", Integer.class)).thenReturn(1010); - try (MockedStatic callback = Mockito.mockStatic(Callback.class, "init")) { - deepAgent = new DeepAgent(settings, tracepointInstrumentationService); - callback.verify(() -> Callback.init(Mockito.any(), Mockito.any(), Mockito.any()), times(1)); + Mockito.when(settings.getServiceHost()).thenReturn("localhost"); + Mockito.when(settings.getServicePort()).thenReturn(-1); + + try (final MockedConstruction ignored = Mockito.mockConstruction(GrpcService.class, (mock, context) -> Mockito.doNothing().when(mock).start())) { + try (MockedStatic callback = Mockito.mockStatic(Callback.class, "init")) { + deepAgent = new DeepAgent(settings, tracepointInstrumentationService); + callback.verify(() -> Callback.init(Mockito.any(), Mockito.any(), Mockito.any()), times(1)); + } } } From 0a423d816057fde786fea150037bfff3c0934adc Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 12:24:46 +0100 Subject: [PATCH 03/14] fix(test): issue with test sometimes failing when order changes --- .../src/test/java/com/intergral/deep/agent/DeepAgentTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java index 3118fed..3645160 100644 --- a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java @@ -50,7 +50,8 @@ void setUp() { Mockito.when(settings.getServiceHost()).thenReturn("localhost"); Mockito.when(settings.getServicePort()).thenReturn(-1); - try (final MockedConstruction ignored = Mockito.mockConstruction(GrpcService.class, (mock, context) -> Mockito.doNothing().when(mock).start())) { + try (final MockedConstruction ignored = Mockito.mockConstruction(GrpcService.class, + (mock, context) -> Mockito.doNothing().when(mock).start())) { try (MockedStatic callback = Mockito.mockStatic(Callback.class, "init")) { deepAgent = new DeepAgent(settings, tracepointInstrumentationService); callback.verify(() -> Callback.init(Mockito.any(), Mockito.any(), Mockito.any()), times(1)); From 3ba54a39856a6227e52c7bc2ef57ba7aa6fa04af Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 12:30:48 +0100 Subject: [PATCH 04/14] fix(test): add handling to shutdown grpc channels --- .../com/intergral/deep/agent/grpc/GrpcService.java | 13 ++++++++++++- .../intergral/deep/agent/grpc/GrpcServiceTest.java | 11 +++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/agent/src/main/java/com/intergral/deep/agent/grpc/GrpcService.java b/agent/src/main/java/com/intergral/deep/agent/grpc/GrpcService.java index a83326b..7aace4f 100644 --- a/agent/src/main/java/com/intergral/deep/agent/grpc/GrpcService.java +++ b/agent/src/main/java/com/intergral/deep/agent/grpc/GrpcService.java @@ -64,7 +64,18 @@ public void start() { try { setupChannel(); } catch (Exception e) { - LOGGER.debug("Error setting up GRPC channel", e); + LOGGER.error("Error setting up GRPC channel", e); + } + } + + public void shutdown() { + if (this.channel == null) { + return; + } + try { + this.channel.shutdown().awaitTermination(10, TimeUnit.SECONDS); + } catch (InterruptedException e) { + LOGGER.debug("Could not shutdown cleanly.", e); } } diff --git a/agent/src/test/java/com/intergral/deep/agent/grpc/GrpcServiceTest.java b/agent/src/test/java/com/intergral/deep/agent/grpc/GrpcServiceTest.java index 43dc10f..c6f55f7 100644 --- a/agent/src/test/java/com/intergral/deep/agent/grpc/GrpcServiceTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/grpc/GrpcServiceTest.java @@ -36,7 +36,6 @@ import io.grpc.ServerBuilder; import io.grpc.ServerInterceptors; import io.grpc.stub.StreamObserver; -import java.io.IOException; import java.net.ServerSocket; import java.util.Collections; import java.util.HashMap; @@ -51,6 +50,7 @@ class GrpcServiceTest { + private GrpcService grpcService; private Server server; private CountDownLatch pollLatch; private final AtomicReference pollRequest = new AtomicReference<>(); @@ -104,8 +104,11 @@ void setUp() throws Exception { } @AfterEach - void tearDown() throws IOException { + void tearDown() throws Exception { + this.grpcService.shutdown(); + this.server.shutdownNow(); + this.server.awaitTermination(); } @Test @@ -116,7 +119,7 @@ void serverCanConnect_poll() throws InterruptedException { map.put(ISettings.KEY_SERVICE_SECURE, "false"); map.put(ISettings.KEY_AUTH_PROVIDER, MockAuthProvider.class.getName()); - final GrpcService grpcService = new GrpcService(Settings.build(map)); + grpcService = new GrpcService(Settings.build(map)); new Thread(grpcService::start).start(); @@ -138,7 +141,7 @@ void serverCanConnect_snapshot() throws InterruptedException { map.put(ISettings.KEY_SERVICE_SECURE, "false"); map.put(ISettings.KEY_AUTH_PROVIDER, MockAuthProvider.class.getName()); - final GrpcService grpcService = new GrpcService(Settings.build(map)); + grpcService = new GrpcService(Settings.build(map)); new Thread(grpcService::start).start(); final CountDownLatch responseLatch = new CountDownLatch(1); From d65553cfcef4de345733ddce4cb9b19070220c70 Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 12:34:52 +0100 Subject: [PATCH 05/14] fix(test): add handling to shutdown grpc channels --- .../intergral/deep/agent/poll/LongPollServiceTest.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java b/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java index 0f204f8..b5d26a7 100644 --- a/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java @@ -66,6 +66,7 @@ class LongPollServiceTest { private PollResponse response; private Throwable responseError; private int port; + private GrpcService grpcService; @BeforeEach void setUp() throws IOException { @@ -93,13 +94,16 @@ void setUp() throws IOException { agentArgs.put(ISettings.KEY_SERVICE_SECURE, "false"); final Settings settings = Settings.build(agentArgs); settings.setResource(Resource.create(Collections.singletonMap("test", "resource"))); - final GrpcService grpcService = new GrpcService(settings); + grpcService = new GrpcService(settings); longPollService = new LongPollService(settings, grpcService); } @AfterEach - void tearDown() { + void tearDown() throws Exception { server.shutdownNow(); + server.awaitTermination(); + + grpcService.shutdown(); } @Test From 74835a19c41d32d33492df50dbd585f6fbf20e1f Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 13:06:12 +0100 Subject: [PATCH 06/14] fix(test): provide grpc server for deep test --- .../intergral/deep/agent/DeepAgentTest.java | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java index 3645160..a422b5a 100644 --- a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java @@ -27,13 +27,15 @@ import com.intergral.deep.agent.api.plugin.IPlugin.IPluginRegistration; import com.intergral.deep.agent.api.tracepoint.ITracepoint; import com.intergral.deep.agent.api.tracepoint.ITracepoint.ITracepointRegistration; -import com.intergral.deep.agent.grpc.GrpcService; import com.intergral.deep.agent.settings.Settings; import com.intergral.deep.agent.tracepoint.handler.Callback; import com.intergral.deep.agent.tracepoint.inst.TracepointInstrumentationService; +import io.grpc.Server; +import io.grpc.ServerBuilder; +import java.io.IOException; +import java.net.ServerSocket; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.MockedConstruction; import org.mockito.MockedStatic; import org.mockito.Mockito; @@ -47,23 +49,37 @@ class DeepAgentTest { void setUp() { Mockito.when(settings.getSettingAs("poll.timer", Integer.class)).thenReturn(1010); + Mockito.when(settings.getSettingAs(Mockito.anyString(), Mockito.eq(String.class))).thenReturn(""); + Mockito.when(settings.getSettingAs(Mockito.anyString(), Mockito.eq(Boolean.class))).thenReturn(false); Mockito.when(settings.getServiceHost()).thenReturn("localhost"); Mockito.when(settings.getServicePort()).thenReturn(-1); - try (final MockedConstruction ignored = Mockito.mockConstruction(GrpcService.class, - (mock, context) -> Mockito.doNothing().when(mock).start())) { - try (MockedStatic callback = Mockito.mockStatic(Callback.class, "init")) { - deepAgent = new DeepAgent(settings, tracepointInstrumentationService); - callback.verify(() -> Callback.init(Mockito.any(), Mockito.any(), Mockito.any()), times(1)); - } + try (MockedStatic callback = Mockito.mockStatic(Callback.class, "init")) { + deepAgent = new DeepAgent(settings, tracepointInstrumentationService); + callback.verify(() -> Callback.init(Mockito.any(), Mockito.any(), Mockito.any()), times(1)); } } @Test - void start_shouldSetPluginsAndResource() { + void start_shouldSetPluginsAndResource() throws IOException { + + // find a free port + int port; + try (ServerSocket socket = new ServerSocket(0)) { + port = socket.getLocalPort(); + } + + final Server server = ServerBuilder.forPort(port).build(); + + server.start(); + deepAgent.start(); + + server.shutdownNow(); + Mockito.verify(settings).setPlugins(Mockito.anyCollection()); Mockito.verify(settings).setResource(Mockito.any()); + } @Test From 01c3dd9f6f7c1d25a6ec27f3a635007a22e22447 Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 13:18:55 +0100 Subject: [PATCH 07/14] fix(test): use attomic reference --- .../deep/agent/poll/LongPollServiceTest.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java b/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java index b5d26a7..df34f73 100644 --- a/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java @@ -50,6 +50,7 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.concurrent.atomic.AtomicReference; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -62,7 +63,7 @@ class LongPollServiceTest { private Server server; private LongPollService longPollService; - private PollRequest request; + private final AtomicReference request = new AtomicReference<>(null); private PollResponse response; private Throwable responseError; private int port; @@ -71,7 +72,7 @@ class LongPollServiceTest { @BeforeEach void setUp() throws IOException { final TestPollService testPollService = new TestPollService((req, responseObserver) -> { - request = req; + request.set(req); if (responseError != null) { responseObserver.onError(responseError); } else { @@ -152,15 +153,15 @@ void propagateHashOnNextCall() { longPollService.run(100); - assertEquals("", request.getCurrentHash()); - assertEquals(100, request.getTsNanos()); + assertEquals("", request.get().getCurrentHash()); + assertEquals(100, request.get().getTsNanos()); response = PollResponse.newBuilder().setResponseType(ResponseType.UPDATE).setCurrentHash("321").build(); longPollService.run(101); - assertEquals("123", request.getCurrentHash()); - assertEquals(101, request.getTsNanos()); + assertEquals("123", request.get().getCurrentHash()); + assertEquals(101, request.get().getTsNanos()); verify(instrumentationService, times(2)).processBreakpoints(Mockito.anyCollection()); } @@ -208,8 +209,8 @@ void doesSendResourceOnRequest() { longPollService.run(100); - assertNotNull(request.getResource()); - assertEquals("test", request.getResource().getAttributes(0).getKey()); - assertEquals("resource", request.getResource().getAttributes(0).getValue().getStringValue()); + assertNotNull(request.get().getResource()); + assertEquals("test", request.get().getResource().getAttributes(0).getKey()); + assertEquals("resource", request.get().getResource().getAttributes(0).getValue().getStringValue()); } } \ No newline at end of file From 4054e2fd5b33649e4e980384fd4703a9dacbb483 Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 13:34:20 +0100 Subject: [PATCH 08/14] fix(test): mock port call --- agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java index a422b5a..d9be97c 100644 --- a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java @@ -52,7 +52,6 @@ void setUp() { Mockito.when(settings.getSettingAs(Mockito.anyString(), Mockito.eq(String.class))).thenReturn(""); Mockito.when(settings.getSettingAs(Mockito.anyString(), Mockito.eq(Boolean.class))).thenReturn(false); Mockito.when(settings.getServiceHost()).thenReturn("localhost"); - Mockito.when(settings.getServicePort()).thenReturn(-1); try (MockedStatic callback = Mockito.mockStatic(Callback.class, "init")) { deepAgent = new DeepAgent(settings, tracepointInstrumentationService); @@ -68,6 +67,7 @@ void start_shouldSetPluginsAndResource() throws IOException { try (ServerSocket socket = new ServerSocket(0)) { port = socket.getLocalPort(); } + Mockito.when(settings.getServicePort()).thenReturn(port); final Server server = ServerBuilder.forPort(port).build(); From a0cee75be2ff84da0487d02a7cba8e02ed5e2acf Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 13:35:54 +0100 Subject: [PATCH 09/14] fix(test): add shutdown method --- agent/src/main/java/com/intergral/deep/agent/DeepAgent.java | 4 ++++ .../src/test/java/com/intergral/deep/agent/DeepAgentTest.java | 1 + 2 files changed, 5 insertions(+) diff --git a/agent/src/main/java/com/intergral/deep/agent/DeepAgent.java b/agent/src/main/java/com/intergral/deep/agent/DeepAgent.java index 2c95007..7af47ee 100644 --- a/agent/src/main/java/com/intergral/deep/agent/DeepAgent.java +++ b/agent/src/main/java/com/intergral/deep/agent/DeepAgent.java @@ -198,4 +198,8 @@ public synchronized void setEnabled(final boolean enabled) { this.tracepointConfig.configUpdate(0, null, Collections.emptyList()); } } + + public void shutdown() { + this.grpcService.shutdown(); + } } diff --git a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java index d9be97c..ef84d57 100644 --- a/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/DeepAgentTest.java @@ -76,6 +76,7 @@ void start_shouldSetPluginsAndResource() throws IOException { deepAgent.start(); server.shutdownNow(); + deepAgent.shutdown(); Mockito.verify(settings).setPlugins(Mockito.anyCollection()); Mockito.verify(settings).setResource(Mockito.any()); From 1d00d2871a53ee2f7f5d704bcf6b63548af0fe6a Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 13:45:32 +0100 Subject: [PATCH 10/14] fix(test): remove unneeded thread in test --- .../java/com/intergral/deep/agent/grpc/GrpcServiceTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/agent/src/test/java/com/intergral/deep/agent/grpc/GrpcServiceTest.java b/agent/src/test/java/com/intergral/deep/agent/grpc/GrpcServiceTest.java index c6f55f7..6468d4f 100644 --- a/agent/src/test/java/com/intergral/deep/agent/grpc/GrpcServiceTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/grpc/GrpcServiceTest.java @@ -121,8 +121,6 @@ void serverCanConnect_poll() throws InterruptedException { grpcService = new GrpcService(Settings.build(map)); - new Thread(grpcService::start).start(); - final PollResponse pollResponse = grpcService.pollService().poll(PollRequest.newBuilder().setTsNanos(101010L).build()); assertEquals(202020L, pollResponse.getTsNanos()); pollLatch.await(5, TimeUnit.SECONDS); @@ -143,7 +141,6 @@ void serverCanConnect_snapshot() throws InterruptedException { grpcService = new GrpcService(Settings.build(map)); - new Thread(grpcService::start).start(); final CountDownLatch responseLatch = new CountDownLatch(1); final AtomicReference responseAtomicReference = new AtomicReference<>(); grpcService.snapshotService().send(Snapshot.newBuilder().build(), From 6f803819199be7825efde140959810353fc37594 Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 13:58:40 +0100 Subject: [PATCH 11/14] fix(test): ensure deep is active in tests --- .../java/com/intergral/deep/agent/poll/LongPollServiceTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java b/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java index df34f73..1b0a5bf 100644 --- a/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/poll/LongPollServiceTest.java @@ -94,6 +94,7 @@ void setUp() throws IOException { agentArgs.put(ISettings.KEY_SERVICE_URL, "localhost:" + port); agentArgs.put(ISettings.KEY_SERVICE_SECURE, "false"); final Settings settings = Settings.build(agentArgs); + settings.setActive(true); settings.setResource(Resource.create(Collections.singletonMap("test", "resource"))); grpcService = new GrpcService(settings); longPollService = new LongPollService(settings, grpcService); From ff8b6492d6becffedc518ae010658dca7c3eeb05 Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 14:52:29 +0100 Subject: [PATCH 12/14] fix(test): save test reports --- .github/workflows/on_push.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/on_push.yml b/.github/workflows/on_push.yml index ab17ead..fb1020b 100644 --- a/.github/workflows/on_push.yml +++ b/.github/workflows/on_push.yml @@ -23,6 +23,13 @@ jobs: - name: Run tests run: make coverage + - name: Test Reports + uses: actions/upload-artifact@v3 + if: always() + with: + name: Test Reports + path: ${{ github.workspace }}/**/target/site + # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive - name: Update dependency graph uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6 From 6405defe200cb3a2d49483587f75d74cc32069dd Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 14:55:19 +0100 Subject: [PATCH 13/14] fix(test): fix missing doc --- .../main/java/com/intergral/deep/agent/grpc/GrpcService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/agent/src/main/java/com/intergral/deep/agent/grpc/GrpcService.java b/agent/src/main/java/com/intergral/deep/agent/grpc/GrpcService.java index 7aace4f..7490224 100644 --- a/agent/src/main/java/com/intergral/deep/agent/grpc/GrpcService.java +++ b/agent/src/main/java/com/intergral/deep/agent/grpc/GrpcService.java @@ -68,6 +68,9 @@ public void start() { } } + /** + * Shutdown the grpc channel. + */ public void shutdown() { if (this.channel == null) { return; From f61b0231ebab366ecd025d7dc3b2f2a409c3d1bf Mon Sep 17 00:00:00 2001 From: Ben Donnelly Date: Mon, 25 Sep 2023 15:00:20 +0100 Subject: [PATCH 14/14] fix(test): fix test --- .../com/intergral/deep/agent/poll/DriftAwareThread.java | 4 ++-- .../intergral/deep/agent/poll/DriftAwareThreadTest.java | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/agent/src/main/java/com/intergral/deep/agent/poll/DriftAwareThread.java b/agent/src/main/java/com/intergral/deep/agent/poll/DriftAwareThread.java index e2dc444..70e1a4b 100644 --- a/agent/src/main/java/com/intergral/deep/agent/poll/DriftAwareThread.java +++ b/agent/src/main/java/com/intergral/deep/agent/poll/DriftAwareThread.java @@ -144,11 +144,11 @@ public void run() { } private void trace(final String msg) { - LOGGER.trace(msg); + LOGGER.trace(this.getName() + " - " + msg); } - private void error(final String msg, final Throwable throwable) { + void error(final String msg, final Throwable throwable) { LOGGER.error(this.getName() + " - " + msg, throwable); } diff --git a/agent/src/test/java/com/intergral/deep/agent/poll/DriftAwareThreadTest.java b/agent/src/test/java/com/intergral/deep/agent/poll/DriftAwareThreadTest.java index c9d2eaa..6036471 100644 --- a/agent/src/test/java/com/intergral/deep/agent/poll/DriftAwareThreadTest.java +++ b/agent/src/test/java/com/intergral/deep/agent/poll/DriftAwareThreadTest.java @@ -23,6 +23,7 @@ import java.util.concurrent.CountDownLatch; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; class DriftAwareThreadTest { @@ -65,6 +66,12 @@ public long callback(final long duration, final long next) { assertTrue((lwrap.now + 10000) >= currentTimeMillis); } + @Test + void errorLogs() { + final DriftAwareThread spy = Mockito.spy(task); + spy.error("test error", new RuntimeException("test exception")); + Mockito.verify(spy, Mockito.times(1)).getName(); + } @Test public void testCheckForEarlyWakeUp() throws Exception {