Liam Neeson and Ed Harris play characters who share a deep history in Run All Night, the latest in what seems the endless series of kick-ass movies that have come to define Neeson's career.
In this current blast of violence and revenge, Neeson and Harris play a couple of Irish guys from Brooklyn who have known each other for a very long time, long enough for Harris's Shawn Maguire to be tolerant about the sorry state into which Neeson's Jimmy Conlon has fallen.
Time and guilt have turned Jimmy, a one-time hitman, into a pathetic neighborhood souse. For his part, Shawn is trying to live in semi-respectable, middle-class fashion.
Watching Neeson and Harris together makes you wonder what sort of movie might have developed if director Jaume Collet-Serra, who also directed Neeson in 2014's Non-Stop, hadn't stepped into a bucket full of genre junk, doubling down on violence, jumbled action and contrived plot twists.
The trouble starts because Shawn's obnoxious son Danny (Boyd Holbrook) gets into trouble for setting up a heroin deal that his father rejects. This leads to a variety of plot contortions that culminate when Jimmy is forced to shoot Shawn's son in an act of self-defense.
Uninterested in how much of a bastard Danny might have been, Shawn vows vengeance. He pledges to kill Jimmy's son (Joel Kinnaman), a family man who works as a limo driver and who long ago broke off contact with his father.
Brad Ingelsby's screenplay establishes a situation in which a wayward father must try to save his son's life, a process that takes place over the course of one cold Christmas Eve.
Kinnaman, an unusual talent who starred in the RoboCop remake and in the TV series The Killing, strikes me as a difficult actor to cast. If you've seen him in The Killing, you know he can be compelling in an offbeat way. But he never quite finds his groove here, which means the movie's father/son dynamic tends to feel perfunctory.
The supporting cast features Vincent D'Onofrio as a Brooklyn cop who has spent the better part of his career trying to put Jimmy behind bars. Last seen as one of Martin Luther King's cohorts in Selma, Common turns his back on non-violence to portray a hitman who does Shawn's bidding.
Of course, Jimmy sobers up long enough to spring back into grueling action, which is really what the movie's about.
I wish I could say that Collet-Serra brought a clever spin to the action set pieces, but he pretty much hits every note straight on as the movie goes through its predictable paces.
Run All Night fails to fulfill the promise of its grittiest scenes. That's all the sadder because Harris makes Shawn's conflicted affection for Jimmy seem real, and because Neeson carries the weight of Jimmy's misdeeds with palpable sadness.
But all this to what avail? Despite flourishes that suggest real dramatic ambition, Run All Night goes nowhere we haven't been before.