diff --git a/sentry-jcache/src/main/java/io/sentry/jcache/SentryJCacheWrapper.java b/sentry-jcache/src/main/java/io/sentry/jcache/SentryJCacheWrapper.java index 3b3d1c4c2b..e1c3b786e8 100644 --- a/sentry-jcache/src/main/java/io/sentry/jcache/SentryJCacheWrapper.java +++ b/sentry-jcache/src/main/java/io/sentry/jcache/SentryJCacheWrapper.java @@ -6,7 +6,7 @@ import io.sentry.SpanDataConvention; import io.sentry.SpanOptions; import io.sentry.SpanStatus; -import java.util.Arrays; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -468,7 +468,8 @@ public Iterator> iterator() { private @Nullable ISpan startSpan( final @Nullable Object key, final @NotNull String operationName) { final String keyString = key != null ? String.valueOf(key) : null; - return startSpan(operationName, keyString, keyString != null ? Arrays.asList(keyString) : null); + return startSpan( + operationName, keyString, keyString != null ? Collections.singletonList(keyString) : null); } private @Nullable ISpan startSpanForKeys( diff --git a/sentry-jcache/src/test/kotlin/io/sentry/jcache/SentryJCacheWrapperTest.kt b/sentry-jcache/src/test/kotlin/io/sentry/jcache/SentryJCacheWrapperTest.kt index 8dfbada0a2..9e523d3df2 100644 --- a/sentry-jcache/src/test/kotlin/io/sentry/jcache/SentryJCacheWrapperTest.kt +++ b/sentry-jcache/src/test/kotlin/io/sentry/jcache/SentryJCacheWrapperTest.kt @@ -96,11 +96,9 @@ class SentryJCacheWrapperTest { assertEquals(1, tx.spans.size) val span = tx.spans.first() assertEquals("cache.getAll", span.operation) - assertTrue(span.description!!.contains("k1")) - assertTrue(span.description!!.contains("k2")) + assertEquals("k1, k2", span.description) assertEquals(true, span.getData(SpanDataConvention.CACHE_HIT)) - val cacheKeys = span.getData(SpanDataConvention.CACHE_KEY) as List<*> - assertTrue(cacheKeys.containsAll(listOf("k1", "k2"))) + assertEquals(listOf("k1", "k2"), span.getData(SpanDataConvention.CACHE_KEY)) assertEquals("getAll", span.getData(SpanDataConvention.CACHE_OPERATION)) } @@ -166,11 +164,9 @@ class SentryJCacheWrapperTest { assertEquals(1, tx.spans.size) val span = tx.spans.first() assertEquals("cache.putAll", span.operation) - assertTrue(span.description!!.contains("k1")) - assertTrue(span.description!!.contains("k2")) + assertEquals("k1, k2", span.description) assertEquals(true, span.getData(SpanDataConvention.CACHE_WRITE)) - val cacheKeys = span.getData(SpanDataConvention.CACHE_KEY) as List<*> - assertTrue(cacheKeys.containsAll(listOf("k1", "k2"))) + assertEquals(listOf("k1", "k2"), span.getData(SpanDataConvention.CACHE_KEY)) assertEquals("putAll", span.getData(SpanDataConvention.CACHE_OPERATION)) } @@ -320,9 +316,9 @@ class SentryJCacheWrapperTest { assertEquals(1, tx.spans.size) val span = tx.spans.first() assertEquals("cache.removeAll", span.operation) - assertTrue(span.description!!.contains("k1")) - assertTrue(span.description!!.contains("k2")) + assertEquals("k1, k2", span.description) assertEquals(true, span.getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("k1", "k2"), span.getData(SpanDataConvention.CACHE_KEY)) assertEquals("removeAll", span.getData(SpanDataConvention.CACHE_OPERATION)) } diff --git a/sentry-spring-7/src/main/java/io/sentry/spring7/cache/SentryCacheWrapper.java b/sentry-spring-7/src/main/java/io/sentry/spring7/cache/SentryCacheWrapper.java index 07b57e2492..f53f7a3ce7 100644 --- a/sentry-spring-7/src/main/java/io/sentry/spring7/cache/SentryCacheWrapper.java +++ b/sentry-spring-7/src/main/java/io/sentry/spring7/cache/SentryCacheWrapper.java @@ -5,7 +5,7 @@ import io.sentry.SpanDataConvention; import io.sentry.SpanOptions; import io.sentry.SpanStatus; -import java.util.Arrays; +import java.util.Collections; import java.util.concurrent.Callable; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; @@ -318,7 +318,7 @@ public boolean invalidate() { return null; } if (keyString != null) { - span.setData(SpanDataConvention.CACHE_KEY, Arrays.asList(keyString)); + span.setData(SpanDataConvention.CACHE_KEY, Collections.singletonList(keyString)); } span.setData(SpanDataConvention.CACHE_OPERATION, operationName); return span; diff --git a/sentry-spring-7/src/test/kotlin/io/sentry/spring7/cache/SentryCacheWrapperTest.kt b/sentry-spring-7/src/test/kotlin/io/sentry/spring7/cache/SentryCacheWrapperTest.kt index 33b4497095..ced7f49103 100644 --- a/sentry-spring-7/src/test/kotlin/io/sentry/spring7/cache/SentryCacheWrapperTest.kt +++ b/sentry-spring-7/src/test/kotlin/io/sentry/spring7/cache/SentryCacheWrapperTest.kt @@ -78,6 +78,7 @@ class SentryCacheWrapperTest { assertNull(result) assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } // -- get(Object key, Class) -- @@ -93,6 +94,7 @@ class SentryCacheWrapperTest { assertEquals("value", result) assertEquals(1, tx.spans.size) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } @Test @@ -106,6 +108,7 @@ class SentryCacheWrapperTest { assertNull(result) assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } @Test @@ -138,6 +141,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } @Test @@ -156,6 +160,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } // -- retrieve(Object key) -- @@ -191,6 +196,7 @@ class SentryCacheWrapperTest { assertNull(result!!.get()) assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) assertTrue(tx.spans.first().isFinished) } @@ -206,6 +212,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) val span = tx.spans.first() assertEquals(false, span.getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), span.getData(SpanDataConvention.CACHE_KEY)) assertEquals(SpanStatus.OK, span.status) assertTrue(span.isFinished) } @@ -273,6 +280,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) assertTrue(tx.spans.first().isFinished) } @@ -293,6 +301,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) assertTrue(tx.spans.first().isFinished) } @@ -384,6 +393,7 @@ class SentryCacheWrapperTest { assertEquals(SpanStatus.OK, span.status) assertEquals(true, span.getData(SpanDataConvention.CACHE_WRITE)) assertEquals("evict", span.getData(SpanDataConvention.CACHE_OPERATION)) + assertEquals(listOf("myKey"), span.getData(SpanDataConvention.CACHE_KEY)) } // -- evictIfPresent -- @@ -401,6 +411,7 @@ class SentryCacheWrapperTest { assertEquals("cache.evictIfPresent", tx.spans.first().operation) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) assertEquals("evictIfPresent", tx.spans.first().getData(SpanDataConvention.CACHE_OPERATION)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } // -- clear -- diff --git a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/cache/SentryCacheWrapper.java b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/cache/SentryCacheWrapper.java index 47b60c3ff6..c09661b304 100644 --- a/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/cache/SentryCacheWrapper.java +++ b/sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/cache/SentryCacheWrapper.java @@ -5,7 +5,7 @@ import io.sentry.SpanDataConvention; import io.sentry.SpanOptions; import io.sentry.SpanStatus; -import java.util.Arrays; +import java.util.Collections; import java.util.concurrent.Callable; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; @@ -318,7 +318,7 @@ public boolean invalidate() { return null; } if (keyString != null) { - span.setData(SpanDataConvention.CACHE_KEY, Arrays.asList(keyString)); + span.setData(SpanDataConvention.CACHE_KEY, Collections.singletonList(keyString)); } span.setData(SpanDataConvention.CACHE_OPERATION, operationName); return span; diff --git a/sentry-spring-jakarta/src/test/kotlin/io/sentry/spring/jakarta/cache/SentryCacheWrapperTest.kt b/sentry-spring-jakarta/src/test/kotlin/io/sentry/spring/jakarta/cache/SentryCacheWrapperTest.kt index 869308ec65..7aa0791cf0 100644 --- a/sentry-spring-jakarta/src/test/kotlin/io/sentry/spring/jakarta/cache/SentryCacheWrapperTest.kt +++ b/sentry-spring-jakarta/src/test/kotlin/io/sentry/spring/jakarta/cache/SentryCacheWrapperTest.kt @@ -78,6 +78,7 @@ class SentryCacheWrapperTest { assertNull(result) assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } // -- get(Object key, Class) -- @@ -93,6 +94,7 @@ class SentryCacheWrapperTest { assertEquals("value", result) assertEquals(1, tx.spans.size) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } @Test @@ -106,6 +108,7 @@ class SentryCacheWrapperTest { assertNull(result) assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } @Test @@ -138,6 +141,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } @Test @@ -156,6 +160,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } // -- retrieve(Object key) -- @@ -191,6 +196,7 @@ class SentryCacheWrapperTest { assertNull(result!!.get()) assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) assertTrue(tx.spans.first().isFinished) } @@ -206,6 +212,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) val span = tx.spans.first() assertEquals(false, span.getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), span.getData(SpanDataConvention.CACHE_KEY)) assertEquals(SpanStatus.OK, span.status) assertTrue(span.isFinished) } @@ -273,6 +280,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) assertTrue(tx.spans.first().isFinished) } @@ -293,6 +301,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) assertTrue(tx.spans.first().isFinished) } @@ -384,6 +393,7 @@ class SentryCacheWrapperTest { assertEquals(SpanStatus.OK, span.status) assertEquals(true, span.getData(SpanDataConvention.CACHE_WRITE)) assertEquals("evict", span.getData(SpanDataConvention.CACHE_OPERATION)) + assertEquals(listOf("myKey"), span.getData(SpanDataConvention.CACHE_KEY)) } // -- evictIfPresent -- @@ -401,6 +411,7 @@ class SentryCacheWrapperTest { assertEquals("cache.evictIfPresent", tx.spans.first().operation) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) assertEquals("evictIfPresent", tx.spans.first().getData(SpanDataConvention.CACHE_OPERATION)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } // -- clear -- diff --git a/sentry-spring/src/main/java/io/sentry/spring/cache/SentryCacheWrapper.java b/sentry-spring/src/main/java/io/sentry/spring/cache/SentryCacheWrapper.java index 8860d20506..39608e35b2 100644 --- a/sentry-spring/src/main/java/io/sentry/spring/cache/SentryCacheWrapper.java +++ b/sentry-spring/src/main/java/io/sentry/spring/cache/SentryCacheWrapper.java @@ -5,7 +5,7 @@ import io.sentry.SpanDataConvention; import io.sentry.SpanOptions; import io.sentry.SpanStatus; -import java.util.Arrays; +import java.util.Collections; import java.util.concurrent.Callable; import java.util.concurrent.atomic.AtomicBoolean; import org.jetbrains.annotations.ApiStatus; @@ -245,7 +245,7 @@ public boolean invalidate() { return null; } if (keyString != null) { - span.setData(SpanDataConvention.CACHE_KEY, Arrays.asList(keyString)); + span.setData(SpanDataConvention.CACHE_KEY, Collections.singletonList(keyString)); } span.setData(SpanDataConvention.CACHE_OPERATION, operationName); return span; diff --git a/sentry-spring/src/test/kotlin/io/sentry/spring/cache/SentryCacheWrapperTest.kt b/sentry-spring/src/test/kotlin/io/sentry/spring/cache/SentryCacheWrapperTest.kt index 405f266cdd..9feb8fd963 100644 --- a/sentry-spring/src/test/kotlin/io/sentry/spring/cache/SentryCacheWrapperTest.kt +++ b/sentry-spring/src/test/kotlin/io/sentry/spring/cache/SentryCacheWrapperTest.kt @@ -76,6 +76,7 @@ class SentryCacheWrapperTest { assertNull(result) assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } // -- get(Object key, Class) -- @@ -91,6 +92,7 @@ class SentryCacheWrapperTest { assertEquals("value", result) assertEquals(1, tx.spans.size) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } @Test @@ -104,6 +106,7 @@ class SentryCacheWrapperTest { assertNull(result) assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } @Test @@ -136,6 +139,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } @Test @@ -154,6 +158,7 @@ class SentryCacheWrapperTest { assertEquals(1, tx.spans.size) assertEquals(false, tx.spans.first().getData(SpanDataConvention.CACHE_HIT)) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } // -- put -- @@ -212,6 +217,7 @@ class SentryCacheWrapperTest { assertEquals(SpanStatus.OK, span.status) assertEquals(true, span.getData(SpanDataConvention.CACHE_WRITE)) assertEquals("evict", span.getData(SpanDataConvention.CACHE_OPERATION)) + assertEquals(listOf("myKey"), span.getData(SpanDataConvention.CACHE_KEY)) } // -- evictIfPresent -- @@ -229,6 +235,7 @@ class SentryCacheWrapperTest { assertEquals("cache.evictIfPresent", tx.spans.first().operation) assertEquals(true, tx.spans.first().getData(SpanDataConvention.CACHE_WRITE)) assertEquals("evictIfPresent", tx.spans.first().getData(SpanDataConvention.CACHE_OPERATION)) + assertEquals(listOf("myKey"), tx.spans.first().getData(SpanDataConvention.CACHE_KEY)) } // -- clear --