Skip to content

Commit 2439c1b

Browse files
committed
Merge branch 'feat/unhandled-sessions-cache' into feat/unhandled-sessions-internal-api
2 parents 0ae99f9 + 21fa60d commit 2439c1b

6 files changed

Lines changed: 13 additions & 26 deletions

File tree

sentry/api/sentry.api

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4295,7 +4295,6 @@ public final class io/sentry/Session : io/sentry/JsonSerializable, io/sentry/Jso
42954295
public fun recordNonTerminatingUnhandledError ()Z
42964296
public fun serialize (Lio/sentry/ObjectWriter;Lio/sentry/ILogger;)V
42974297
public fun setInitAsTrue ()V
4298-
public fun setNonTerminatingUnhandledError (Z)V
42994298
public fun setUnknown (Ljava/util/Map;)V
43004299
public fun update (Lio/sentry/Session$State;Ljava/lang/String;Z)Z
43014300
public fun update (Lio/sentry/Session$State;Ljava/lang/String;ZLjava/lang/String;)Z

sentry/src/main/java/io/sentry/Session.java

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -209,18 +209,6 @@ public boolean hasNonTerminatingUnhandledError() {
209209
return nonTerminatingUnhandledError;
210210
}
211211

212-
/**
213-
* Restores the flag when rebuilding a session, i.e. from {@link #clone()} or the deserializer.
214-
*
215-
* <p>Not for use on a live session: unlike {@link #recordNonTerminatingUnhandledError()} this
216-
* neither counts the error nor advances the session's sequence, so a session mutated through this
217-
* setter would be sent as an out-of-date update.
218-
*/
219-
@ApiStatus.Internal
220-
public void setNonTerminatingUnhandledError(final boolean nonTerminatingUnhandledError) {
221-
this.nonTerminatingUnhandledError = nonTerminatingUnhandledError;
222-
}
223-
224212
/**
225213
* Records that an active session experienced an unhandled error which did not terminate the
226214
* process, counting the error and advancing the session's sequence without ending it. On {@link
@@ -396,7 +384,7 @@ private long getSequenceTimestamp(final @NotNull Date timestamp) {
396384
environment,
397385
release,
398386
abnormalMechanism);
399-
session.setNonTerminatingUnhandledError(nonTerminatingUnhandledError);
387+
session.nonTerminatingUnhandledError = nonTerminatingUnhandledError;
400388
return session;
401389
}
402390

@@ -617,7 +605,7 @@ public static final class Deserializer implements JsonDeserializer<Session> {
617605
environment,
618606
release,
619607
abnormalMechanism);
620-
session.setNonTerminatingUnhandledError(nonTerminatingUnhandledError);
608+
session.nonTerminatingUnhandledError = nonTerminatingUnhandledError;
621609
session.setUnknown(unknown);
622610
reader.endObject();
623611
return session;

sentry/src/test/java/io/sentry/PreviousSessionFinalizerTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ class PreviousSessionFinalizerTest {
207207
tmpDir,
208208
session =
209209
Session(null, null, null, "io.sentry.sample@1.0").apply {
210-
setNonTerminatingUnhandledError(true)
210+
recordNonTerminatingUnhandledError()
211211
},
212212
)
213213
finalizer.run()
@@ -230,7 +230,7 @@ class PreviousSessionFinalizerTest {
230230
tmpDir,
231231
session =
232232
Session(null, null, null, "io.sentry.sample@1.0").apply {
233-
setNonTerminatingUnhandledError(true)
233+
recordNonTerminatingUnhandledError()
234234
},
235235
nativeCrashTimestamp = DateUtils.getDateTime("2023-10-01T00:00:00.000Z"),
236236
)

sentry/src/test/java/io/sentry/SessionTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class SessionTest {
6161
val session = okSession()
6262
assertThat(session.hasNonTerminatingUnhandledError()).isFalse()
6363

64-
session.setNonTerminatingUnhandledError(true)
64+
session.recordNonTerminatingUnhandledError()
6565
session.end()
6666

6767
assertThat(session.status).isEqualTo(Session.State.Unhandled)
@@ -71,7 +71,7 @@ class SessionTest {
7171
@Test
7272
fun `end with a non-terminating unhandled error keeps Abnormal as Abnormal`() {
7373
val session = okSession()
74-
session.setNonTerminatingUnhandledError(true)
74+
session.recordNonTerminatingUnhandledError()
7575
session.update(Session.State.Abnormal, null, false, "anr")
7676

7777
session.end()
@@ -83,7 +83,7 @@ class SessionTest {
8383
@Test
8484
fun `end with a non-terminating unhandled error keeps Crashed as Crashed`() {
8585
val session = okSession()
86-
session.setNonTerminatingUnhandledError(true)
86+
session.recordNonTerminatingUnhandledError()
8787
session.update(Session.State.Crashed, null, false)
8888

8989
session.end()
@@ -95,7 +95,7 @@ class SessionTest {
9595
@Test
9696
fun `updating to Crashed clears a non-terminating unhandled error and end stays Crashed`() {
9797
val session = okSession()
98-
session.setNonTerminatingUnhandledError(true)
98+
session.recordNonTerminatingUnhandledError()
9999

100100
session.update(Session.State.Crashed, null, true)
101101
session.end()
@@ -107,7 +107,7 @@ class SessionTest {
107107
@Test
108108
fun `clone preserves a non-terminating unhandled error`() {
109109
val session = okSession()
110-
session.setNonTerminatingUnhandledError(true)
110+
session.recordNonTerminatingUnhandledError()
111111

112112
val clone = session.clone()
113113

@@ -118,7 +118,7 @@ class SessionTest {
118118
fun `serialization round-trips a non-terminating unhandled error and Unhandled status`() {
119119
val logger = mock<ILogger>()
120120
val session = okSession()
121-
session.setNonTerminatingUnhandledError(true)
121+
session.recordNonTerminatingUnhandledError()
122122
session.end()
123123
assertThat(session.status).isEqualTo(Session.State.Unhandled)
124124

sentry/src/test/java/io/sentry/cache/EnvelopeCacheTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ class EnvelopeCacheTest {
559559
val cache = fixture.getSUT()
560560

561561
val previousSessionFile = EnvelopeCache.getPreviousSessionFile(fixture.options.cacheDirPath!!)
562-
val session = createSession().apply { setNonTerminatingUnhandledError(true) }
562+
val session = createSession().apply { recordNonTerminatingUnhandledError() }
563563
fixture.options.serializer.serialize(session, previousSessionFile.bufferedWriter())
564564

565565
val envelope = SentryEnvelope.from(fixture.options.serializer, SentryEvent(), null)
@@ -643,7 +643,7 @@ class EnvelopeCacheTest {
643643
val cache = fixture.getSUT()
644644

645645
val previousSessionFile = EnvelopeCache.getPreviousSessionFile(fixture.options.cacheDirPath!!)
646-
val session = createSession().apply { setNonTerminatingUnhandledError(true) }
646+
val session = createSession().apply { recordNonTerminatingUnhandledError() }
647647
fixture.options.serializer.serialize(session, previousSessionFile.bufferedWriter())
648648

649649
val nativeCrashTimestamp = session.started!!.time + TimeUnit.HOURS.toMillis(1)

sentry/src/test/java/io/sentry/protocol/SessionSerializationTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class SessionSerializationTest {
5656
@Test
5757
fun `serialize and deserialize round-trips Unhandled status and non-terminating flag`() {
5858
val session = Session(null, null, "environment", "release")
59-
session.setNonTerminatingUnhandledError(true)
59+
session.recordNonTerminatingUnhandledError()
6060
session.end()
6161
assertEquals(Session.State.Unhandled, session.status)
6262

0 commit comments

Comments
 (0)