Skip to content

Commit

Permalink
Add quotes to hashmap string keys
Browse files Browse the repository at this point in the history
  • Loading branch information
pyricau committed Jan 6, 2022
1 parent c2b838e commit 9f5e1cb
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,9 @@ internal enum class AndroidReferenceReaders : OptionalFactory {
valueObjectId = value.asObjectId!!,
isLowPriority = false,
lazyDetailsResolver = {
val keyAsString = key.asObject?.asInstance?.readAsJavaString()?.let { "\"$it\"" }
val keyAsName =
key.asObject?.asInstance?.readAsJavaString() ?: key.asObject?.toString() ?: "null"
keyAsString ?: key.asObject?.toString() ?: "null"
LazyDetails(
name = keyAsName,
locationClassObjectId = locationClassObjectId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,9 @@ internal class InternalSharedHashMapReferenceReader(
valueObjectId = value.asObjectId!!,
isLowPriority = false,
lazyDetailsResolver = {
val keyAsString = key.asObject?.asInstance?.readAsJavaString()?.let { "\"$it\"" }
val keyAsName =
key.asObject?.asInstance?.readAsJavaString() ?: key.asObject?.toString() ?: "null"
keyAsString ?: key.asObject?.toString() ?: "null"
LazyDetails(
name = keyAsName,
locationClassObjectId = declaringClassId,
Expand Down
2 changes: 1 addition & 1 deletion shark/src/test/java/shark/OpenJdkInstanceRefReadersTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ class OpenJdkInstanceRefReadersTest {
val refPath = findLeak(OpenJdkInstanceRefReaders.HASH_MAP)

with(refPath.first()) {
assertThat(referenceDisplayName).isEqualTo("[StringKey]")
assertThat(referenceDisplayName).isEqualTo("[\"StringKey\"]")
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class AndroidReferenceReadersHprofTest {

val mapReference =
leakTrace.referencePath.single { it.owningClassSimpleName == "HashMap" }
assertThat(mapReference.referenceName).isEqualTo("leaking")
assertThat(mapReference.referenceName).isEqualTo("\"leaking\"")
assertThat(mapReference.referenceType).isEqualTo(ARRAY_ENTRY)
}
}
Expand Down

0 comments on commit 9f5e1cb

Please sign in to comment.