The OP’s interpretation of the happens-before rule is correct: the “actor send rule” means that sending M to actor A happens-before processing M by A (this is what “the same” refers to).
To answer the main question: as long as only at most one actor can “own” the mutable map at any given point in time, this will work, and depending on the circumstances this may well be the most efficient solution to the problem. Guaranteeing the single-ownership will require a bit of discipline, though, which offsets the runtime advantage by a maintenance cost.
Although the original question leaves out the actual vehicle for transporting the Map
I would like to reinforce Randall’s point that messages between actors should never be JDK types, since those lack semantic meaning. The Map
should in this case be contained within a clearly named custom message type.