Merge pull request #19644 from akka/wip-19637-fix-BC-AsyncWriteJournal-RK
This commit is contained in:
commit
a6aee310ba
3 changed files with 115 additions and 107 deletions
|
|
@ -47,7 +47,6 @@ trait AsyncWriteJournal extends Actor with WriteJournalBase with AsyncRecovery {
|
|||
private def isReplayFilterEnabled: Boolean = replayFilterMode != ReplayFilter.Disabled
|
||||
private val replayFilterWindowSize: Int = config.getInt("replay-filter.window-size")
|
||||
private val replayFilterMaxOldWriters: Int = config.getInt("replay-filter.max-old-writers")
|
||||
private val replayDebugEnabled: Boolean = config.getBoolean("replay-filter.debug")
|
||||
|
||||
private val resequencer = context.actorOf(Props[Resequencer]())
|
||||
private var resequencerCounter = 1L
|
||||
|
|
@ -55,6 +54,10 @@ trait AsyncWriteJournal extends Actor with WriteJournalBase with AsyncRecovery {
|
|||
final def receive = receiveWriteJournal.orElse[Any, Unit](receivePluginInternal)
|
||||
|
||||
final val receiveWriteJournal: Actor.Receive = {
|
||||
// cannot be a val in the trait due to binary compatibility
|
||||
val replayDebugEnabled: Boolean = config.getBoolean("replay-filter.debug")
|
||||
|
||||
{
|
||||
case WriteMessages(messages, persistentActor, actorInstanceId) ⇒
|
||||
val cctr = resequencerCounter
|
||||
resequencerCounter += messages.foldLeft(0)((acc, m) ⇒ acc + m.size) + 1
|
||||
|
|
@ -159,6 +162,7 @@ trait AsyncWriteJournal extends Actor with WriteJournalBase with AsyncRecovery {
|
|||
case _ ⇒ if (publish) context.system.eventStream.publish(d)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//#journal-plugin-api
|
||||
/**
|
||||
|
|
@ -274,4 +278,3 @@ private[persistence] object AsyncWriteJournal {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,13 @@ private[akka] object ReplayFilter {
|
|||
Props(new ReplayFilter(persistentActor, mode, windowSize, maxOldWriters, debugEnabled))
|
||||
}
|
||||
|
||||
// for binary compatibility
|
||||
def props(
|
||||
persistentActor: ActorRef,
|
||||
mode: Mode,
|
||||
windowSize: Int,
|
||||
maxOldWriters: Int): Props = props(persistentActor, mode, windowSize, maxOldWriters, debugEnabled = false)
|
||||
|
||||
sealed trait Mode
|
||||
case object Fail extends Mode
|
||||
case object Warn extends Mode
|
||||
|
|
@ -46,6 +53,10 @@ private[akka] class ReplayFilter(persistentActor: ActorRef, mode: ReplayFilter.M
|
|||
import JournalProtocol._
|
||||
import ReplayFilter.{ Warn, Fail, RepairByDiscardOld, Disabled }
|
||||
|
||||
// for binary compatibility
|
||||
def this(persistentActor: ActorRef, mode: ReplayFilter.Mode,
|
||||
windowSize: Int, maxOldWriters: Int) = this(persistentActor, mode, windowSize, maxOldWriters, debugEnabled = false)
|
||||
|
||||
val buffer = new LinkedList[ReplayedMessage]()
|
||||
val oldWriters = LinkedHashSet.empty[String]
|
||||
var writerUuid = ""
|
||||
|
|
|
|||
|
|
@ -590,12 +590,6 @@ object MiMa extends AutoPlugin {
|
|||
// #19133 change in internal actor
|
||||
ProblemFilters.exclude[MissingMethodProblem]("akka.remote.ReliableDeliverySupervisor.gated"),
|
||||
|
||||
// #19200 debug logging in ReplayFilter, change of internal actor
|
||||
ProblemFilters.exclude[MissingMethodProblem]("akka.persistence.journal.ReplayFilter.this"),
|
||||
ProblemFilters.exclude[MissingMethodProblem]("akka.persistence.journal.AsyncWriteJournal.akka$persistence$journal$AsyncWriteJournal$_setter_$akka$persistence$journal$AsyncWriteJournal$$replayDebugEnabled_="),
|
||||
ProblemFilters.exclude[MissingMethodProblem]("akka.persistence.journal.AsyncWriteJournal.akka$persistence$journal$AsyncWriteJournal$$replayDebugEnabled"),
|
||||
ProblemFilters.exclude[MissingMethodProblem]("akka.persistence.journal.ReplayFilter.props"),
|
||||
|
||||
// #18758 report invalid association events
|
||||
ProblemFilters.exclude[MissingTypesProblem]("akka.remote.InvalidAssociation$"),
|
||||
ProblemFilters.exclude[MissingMethodProblem]("akka.remote.InvalidAssociation.apply"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue