Skip to content

Commit

Permalink
Merge 4f928d6 into e5e95de
Browse files Browse the repository at this point in the history
  • Loading branch information
adinauer authored Feb 25, 2025
2 parents e5e95de + 4f928d6 commit 7ea9ceb
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 3 deletions.
1 change: 1 addition & 0 deletions sentry/api/sentry.api
Original file line number Diff line number Diff line change
Expand Up @@ -4029,6 +4029,7 @@ public abstract interface class io/sentry/config/PropertiesProvider {
public fun getBooleanProperty (Ljava/lang/String;)Ljava/lang/Boolean;
public fun getDoubleProperty (Ljava/lang/String;)Ljava/lang/Double;
public fun getList (Ljava/lang/String;)Ljava/util/List;
public fun getListOrNull (Ljava/lang/String;)Ljava/util/List;
public fun getLongProperty (Ljava/lang/String;)Ljava/lang/Long;
public abstract fun getMap (Ljava/lang/String;)Ljava/util/Map;
public abstract fun getProperty (Ljava/lang/String;)Ljava/lang/String;
Expand Down
6 changes: 3 additions & 3 deletions sentry/src/main/java/io/sentry/ExternalOptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ public final class ExternalOptions {
}
options.setIdleTimeout(propertiesProvider.getLongProperty("idle-timeout"));

options.setIgnoredErrors(propertiesProvider.getList("ignored-errors"));
options.setIgnoredErrors(propertiesProvider.getListOrNull("ignored-errors"));

options.setEnabled(propertiesProvider.getBooleanProperty("enabled"));

Expand All @@ -138,8 +138,8 @@ public final class ExternalOptions {
options.setSendModules(propertiesProvider.getBooleanProperty("send-modules"));
options.setSendDefaultPii(propertiesProvider.getBooleanProperty("send-default-pii"));

options.setIgnoredCheckIns(propertiesProvider.getList("ignored-checkins"));
options.setIgnoredTransactions(propertiesProvider.getList("ignored-transactions"));
options.setIgnoredCheckIns(propertiesProvider.getListOrNull("ignored-checkins"));
options.setIgnoredTransactions(propertiesProvider.getListOrNull("ignored-transactions"));

options.setEnableBackpressureHandling(
propertiesProvider.getBooleanProperty("enable-backpressure-handling"));
Expand Down
12 changes: 12 additions & 0 deletions sentry/src/main/java/io/sentry/config/PropertiesProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,18 @@ default List<String> getList(final @NotNull String property) {
return value != null ? Arrays.asList(value.split(",")) : Collections.emptyList();
}

/**
* Resolves a list of values for a property given by it's name.
*
* @param property - the property name
* @return the list or null if not found
*/
@Nullable
default List<String> getListOrNull(final @NotNull String property) {
final String value = getProperty(property);
return value != null ? Arrays.asList(value.split(",")) : null;
}

/**
* Resolves property given by it's name.
*
Expand Down
24 changes: 24 additions & 0 deletions sentry/src/test/java/io/sentry/ExternalOptionsTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,14 @@ class ExternalOptionsTest {
}
}

@Test
fun `creates options with null ignored errors if missing`() {
val logger = mock<ILogger>()
withPropertiesFile("Another .*", logger) { options ->
assertNull(options.ignoredErrors)
}
}

@Test
fun `creates options with single bundle ID using external properties`() {
withPropertiesFile("bundle-ids=12ea7a02-46ac-44c0-a5bb-6d1fd9586411") { options ->
Expand Down Expand Up @@ -270,13 +278,29 @@ class ExternalOptionsTest {
}
}

@Test
fun `creates options with null ignoredCheckIns if missing`() {
val logger = mock<ILogger>()
withPropertiesFile("Another .*", logger) { options ->
assertNull(options.ignoredCheckIns)
}
}

@Test
fun `creates options with ignoredTransactions`() {
withPropertiesFile("ignored-transactions=transactionName1,transactionName2") { options ->
assertTrue(options.ignoredTransactions!!.containsAll(listOf("transactionName1", "transactionName2")))
}
}

@Test
fun `creates options with null ignoredTransactions if missing`() {
val logger = mock<ILogger>()
withPropertiesFile("Another .*", logger) { options ->
assertNull(options.ignoredTransactions)
}
}

@Test
fun `creates options with enableBackpressureHandling set to false`() {
withPropertiesFile("enable-backpressure-handling=false") { options ->
Expand Down
27 changes: 27 additions & 0 deletions sentry/src/test/java/io/sentry/SentryOptionsTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -668,4 +668,31 @@ class SentryOptionsTest {
fun `when options is initialized, InitPriority is set to MEDIUM by default`() {
assertEquals(SentryOptions().initPriority, InitPriority.MEDIUM)
}

@Test
fun `merging options when ignoredErrors is not set preserves the previous value`() {
val externalOptions = ExternalOptions()
val options = SentryOptions()
options.setIgnoredErrors(listOf("error1", "error2"))
options.merge(externalOptions)
assertEquals(listOf(FilterString("error1"), FilterString("error2")), options.ignoredErrors)
}

@Test
fun `merging options when ignoredTransactions is not set preserves the previous value`() {
val externalOptions = ExternalOptions()
val options = SentryOptions()
options.setIgnoredTransactions(listOf("transaction1", "transaction2"))
options.merge(externalOptions)
assertEquals(listOf(FilterString("transaction1"), FilterString("transaction2")), options.ignoredTransactions)
}

@Test
fun `merging options when ignoredCheckIns is not set preserves the previous value`() {
val externalOptions = ExternalOptions()
val options = SentryOptions()
options.setIgnoredCheckIns(listOf("checkin1", "checkin2"))
options.merge(externalOptions)
assertEquals(listOf(FilterString("checkin1"), FilterString("checkin2")), options.ignoredCheckIns)
}
}

0 comments on commit 7ea9ceb

Please sign in to comment.