in src/main/scala/org/apache/pekko/persistence/dynamodb/query/scaladsl/internal/DynamoDBCurrentPersistenceIdsQuery.scala [167:184]
private def parsePersistenceId(rawPersistenceId: String, journalName: String): Option[String] =
try {
val prefixLength = journalName.length + 3
val startPostfix = rawPersistenceId.lastIndexOf("-")
val postfix = rawPersistenceId.substring(startPostfix)
val partitionNr = postfix.substring(postfix.lastIndexOf("-")).toInt
if (partitionNr == 0)
Some(rawPersistenceId.substring(prefixLength, startPostfix))
else
None
} catch {
case NonFatal(_) =>
log.error(
"Could not parse raw persistence id '{}' using journal name '{}'. Returning it unparsed.",
rawPersistenceId,
journalName)
Some(rawPersistenceId)
}