private def parsePersistenceId()

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)
    }