diff --git a/inferred-spans/src/main/java/io/opentelemetry/contrib/inferredspans/internal/SamplingProfiler.java b/inferred-spans/src/main/java/io/opentelemetry/contrib/inferredspans/internal/SamplingProfiler.java index d272f52b9..cf758997e 100644 --- a/inferred-spans/src/main/java/io/opentelemetry/contrib/inferredspans/internal/SamplingProfiler.java +++ b/inferred-spans/src/main/java/io/opentelemetry/contrib/inferredspans/internal/SamplingProfiler.java @@ -454,8 +454,16 @@ private void profile(Duration profilingDuration) throws Exception { // dynamically consumeActivationEventsFromRingBufferAndWriteToFile(profilingDuration); } finally { - String stopMessage = profiler.execute("stop"); - logger.fine(stopMessage); + try { + String stopMessage = profiler.execute("stop"); + logger.fine(stopMessage); + } catch (IllegalStateException e) { + if (e.getMessage() != null && e.getMessage().contains("Profiler is not active")) { + logger.fine("Profiler already stopped"); + } else { + logger.log(Level.WARNING, "Failure shutting down profiler", e); + } + } } // When post-processing is disabled, jfr file will not be parsed and the heavy processing will