This was all so easy to fix.

DeSean Jackson issued anti-Semitic Instagram posts last weekend, including a quote mis-attributed to Adolf Hitler, then doubled down by undercutting his own apologies.

The Eagles wrote some threatening words but took no real action, sending the message that racial intolerance will never cost an important player anything more than a fine.

Former Eagles safety Malcolm Jenkins, the eloquent voice of outrage for three years, stayed silent far too long, then, finally, offered no more than a shrug at the pain Jackson caused.

It was all so very disappointing. Because fixing it, all of it, was simple. It would have taken courage, and strength, and restraint. Sadly, these are rare commodities in today’s NFL.

First, the Eagles. Their owner, Jeffery Lurie, and their general manager, Howie Roseman, are Jewish. They decided to fine Jackson.

It is the same penalty they levied on Riley Cooper in 2013, when he was videoed using the N-word while addressing a Black security guard at a summertime country music concert. That was a cop-out then; Cooper should have been suspended at least two games. It is a cop-out now.

Yes, suspending Jackson seven years later would have appeared to be a double-standard. So what? They made a mistake with Cooper. They have made another with Jackson.

However, as with Cooper, the reasons go far beyond the optics. Cooper was too important to punish then because No. 1 receiver Jeremy Maclin had just blown out his knee. Jackson is too important to punish now because No. 1 receiver Alshon Jeffery has a foot injury.

The NFL has had no real offseason. Teams will play no more than two preseason games. Teams with returning players and coaches will have a huge advantage -- teams like the Eagles, the only NFC East team without a new coaching staff.

The Eagles open at Washington. Jackson will be most valuable early in the season, especially since Jeffery might miss the first two games as he recovers from his latest injury. Jackson couldn’t help the win if he were suspended.

A suspension might not have withstood appeal, especially given the precedent the Eagles set with Cooper. That makes no difference. A suspension didn’t need to actually be served. It simply needed to be levied, for two reasons: to deliver an appropriate punishment, and to admit they should have suspended Cooper seven years ago.

They didn’t want to make that admission. And they didn’t want to take their most dangerous weapon off the field.

Disappointing.

Next, to Jackson. After issuing three apologies with lessening degrees of insincerity Tuesday, Jackson on Wednesday “liked” an Instagram post authored by divisive social media star Umar Johnson, a North Philadelphia native. Johnson’s post indicated not only that Jackson’s posts were valid but that Jackson should not have been made to apologize.

All Jackson had to do was to not push “like.” Ignore the support from a man who called whites “Neanderthals.” But he did like it. No number of rabbinical rehabilitation conversations will erase this reality. He can visit as many Holocaust memorials as exist with Julian Edelman. He can meet with every living Holocaust survivor.

His sincerity will never be trusted now.

Disappointing.

Finally, to Jenkins, and, of course, to Saints quarterback Drew Brees, Jenkins’ new teammate.

The timelines here are relevant. Jackson sent his offensive posts over the weekend, but the posts didn’t gain traction until Monday night, then blew up Tuesday.

Now think back to last month, on June 3, when Drew Brees criticized the protests during the national anthem begun by Colin Kaepernick and continued by Jenkins, among others. Within three hours, Jenkins had personally contacted Brees, then issued a passionate, tearful, bitter, angry, 4-minute, 20-second Instagram admonition of Brees.

It took Jenkins three days to address Jackson’s anti-Semitism. He did so in a weary, passionless, 36-second acknowledgement.

Incredibly, Jenkins stressed not how “wrong” Jackson’s posts were but rather how Jackson’s actions shouldn’t be a “distraction.” It’s understandable that Jenkins doesn’t want Jackson’s incident to sap momentum from the current #BlackLivesMatters movement, which has sparked global protests over police brutality, judicial inequities, and institutional racism, but Jenkins’ tone of dismissal is downright alarming.

Worse, perhaps, Jenkins writes in the same post that ”Jewish people aren’t our problem” -- which, we assume, means that Jewish people aren’t the enemy of oppressed Blacks; not, rather, that the problems of the Jewish people should be ignored by Blacks.

Jenkins does not mention Jackson’s name. Jenkins does not reject the teachings of Louis Farrakhan, an anti-Semitic leader whom Jackson also cites. Jenkins needed to do these things.

He became, by choice, the voice of racial justice after Kaepernick was blackballed following the 2016 season. Not just racial justice for Black people, but for all. Or maybe not.

It was all so very, very easy to fix. Just a little courage. A little strength.

Instead, it’s all so very, very disappointing.