Skip to content

Commit ca81612

Browse files
fix: create MessageDigest when needed (#1908)
cherry pick https://github.com/ExpediaGroup/graphql-kotlin/pull/1906/commits
1 parent 194328a commit ca81612

File tree

1 file changed

+6
-7
lines changed
  • executions/graphql-kotlin-automatic-persisted-queries/src/main/kotlin/com/expediagroup/graphql/apq/extensions

1 file changed

+6
-7
lines changed

executions/graphql-kotlin-automatic-persisted-queries/src/main/kotlin/com/expediagroup/graphql/apq/extensions/executionInputExtensions.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import java.nio.charset.StandardCharsets
2323
import java.security.MessageDigest
2424

2525
internal const val APQ_EXTENSION_KEY: String = "persistedQuery"
26-
internal val MESSAGE_DIGEST: MessageDigest = MessageDigest.getInstance("SHA-256")
2726

2827
@Suppress("UNCHECKED_CAST")
2928
fun ExecutionInput.getAutomaticPersistedQueriesExtension(): AutomaticPersistedQueriesExtension? =
@@ -34,13 +33,13 @@ fun ExecutionInput.getAutomaticPersistedQueriesExtension(): AutomaticPersistedQu
3433
null
3534
}
3635

37-
fun ExecutionInput.getQueryId(): String =
38-
String.format(
36+
fun ExecutionInput.getQueryId(): String {
37+
val messageDigest = MessageDigest.getInstance("SHA-256")
38+
return String.format(
3939
"%064x",
40-
BigInteger(1, MESSAGE_DIGEST.digest(this.query.toByteArray(StandardCharsets.UTF_8)))
41-
).also {
42-
MESSAGE_DIGEST.reset()
43-
}
40+
BigInteger(1, messageDigest.digest(this.query.toByteArray(StandardCharsets.UTF_8)))
41+
)
42+
}
4443

4544
fun ExecutionInput.isAutomaticPersistedQueriesExtensionInvalid(
4645
extension: AutomaticPersistedQueriesExtension

0 commit comments

Comments
 (0)