Skip to content

Commit 1e8c6a7

Browse files
committed
allow 36 and 32 character session ids
1 parent 613cc60 commit 1e8c6a7

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ public static final class Deserializer implements JsonDeserializer<Session> {
451451
switch (nextName) {
452452
case JsonKeys.SID:
453453
String sid = reader.nextStringOrNull();
454-
if (sid != null && sid.length() == 32) {
454+
if (sid != null && (sid.length() == 36 || sid.length() == 32)) {
455455
sessionId = sid;
456456
} else {
457457
logger.log(SentryLevel.ERROR, "%s sid is not valid.", sid);

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

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,17 @@ class JsonSerializerTest {
371371
assertSessionData(expectedSession)
372372
}
373373

374+
@Test
375+
fun `session deserializes 32 character id`() {
376+
val sessionId = "c81d4e2ebcf211e6869b7df92533d2db"
377+
val session = createSessionMockData("c81d4e2ebcf211e6869b7df92533d2db")
378+
val jsonSession = serializeToString(session)
379+
// reversing, so we can assert values and not a json string
380+
val expectedSession = fixture.serializer.deserialize(StringReader(jsonSession), Session::class.java)
381+
382+
assertSessionData(expectedSession, "c81d4e2ebcf211e6869b7df92533d2db")
383+
}
384+
374385
@Test
375386
fun `When deserializing an Envelope, all the values should be set to the SentryEnvelope object`() {
376387
val jsonEnvelope = FileFromResources.invoke("envelope_session.txt")
@@ -1248,9 +1259,9 @@ class JsonSerializerTest {
12481259
assertEquals(replayRecording, deserializedRecording)
12491260
}
12501261

1251-
private fun assertSessionData(expectedSession: Session?) {
1262+
private fun assertSessionData(expectedSession: Session?, expectedSessionId: String = "c81d4e2e-bcf2-11e6-869b-7df92533d2db") {
12521263
assertNotNull(expectedSession)
1253-
assertEquals("c81d4e2e-bcf2-11e6-869b-7df92533d2db", expectedSession.sessionId)
1264+
assertEquals(expectedSessionId, expectedSession.sessionId)
12541265
assertEquals("123", expectedSession.distinctId)
12551266
assertTrue(expectedSession.init!!)
12561267
assertEquals("2020-02-07T14:16:00.000Z", DateUtils.getTimestamp(expectedSession.started!!))
@@ -1280,14 +1291,14 @@ class JsonSerializerTest {
12801291
private fun generateEmptySentryEvent(date: Date = Date()): SentryEvent =
12811292
SentryEvent(date)
12821293

1283-
private fun createSessionMockData(): Session =
1294+
private fun createSessionMockData(sessionId: String = "c81d4e2e-bcf2-11e6-869b-7df92533d2db"): Session =
12841295
Session(
12851296
Session.State.Ok,
12861297
DateUtils.getDateTime("2020-02-07T14:16:00.000Z"),
12871298
DateUtils.getDateTime("2020-02-07T14:16:00.000Z"),
12881299
2,
12891300
"123",
1290-
"c81d4e2e-bcf2-11e6-869b-7df92533d2db",
1301+
sessionId,
12911302
true,
12921303
123456.toLong(),
12931304
6000.toDouble(),

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ class CacheStrategyTest {
165165
DateUtils.getDateTime("2020-02-07T14:16:00.000Z"),
166166
2,
167167
"123",
168-
"c81d4e2e-bcf2-11e6-869b-7df92533d2db",
168+
"c81d4e2ebcf211e6869b7df92533d2db",
169169
init,
170170
123456.toLong(),
171171
6000.toDouble(),

0 commit comments

Comments
 (0)