Who wins, who loses in Williams deal?

Never let it be said that the Cavaliers won't spend money to make sure LeBron James stays put in Cleveland. Danny Ferry went to work with some of his $30 million war chest of expiring contracts, and came out of it with a point guard who should provide a major upgrade for the Cavs' beleaguered offense.

Wednesday's trade for Milwaukee's Mo Williams also sent Joe Smith to Oklahoma City and Damon Jones to Milwaukee and returned Oklahoma City veteran Adrian Griffin; additionally, Luke Ridnour went from Oklahoma City(if he ever bothered moving there) to Milwaukee and Desmond Mason went from Milwaukee to Oklahoma City.

Cleveland takes on the final five years and $44 million of Williams' deal, but that's a small price to pay to make sure King James stays put in 2010. Williams isn't a pure point guard, but with LeBron handling the ball so much, he doesn't need to be.

The important thing is that he's better at initiating the offense than the likes of Jones, Delonte West and Daniel Gibson, so the Cavs can allow LeBron to play off the ball more and not run the same tired high pick-and-roll play with him on 43 straight possessions. Williams also is a good spot-up shooter and is capable of playing good defense, though you wouldn't know it from his effort last season.

Although Williams has been around the block a few times, he's also only 25 years old, which is important on two fronts. First, his prime years should roughly mirror those of James, and second, the five years left on his deal become much less daunting as all but one are when he's still in his 20s. And although his contract has a long way to run, the dollars aren't that onerous at an average of just under $9 million a year.

Losing Smith leaves a dent, especially if Ben Wallace's descent continues, but the upgrade at the point more than makes up for the loss of Smith in the frontcourt. Cleveland also might play small more often this year with LeBron as the power forward. Besides, with the expiring contracts of Eric Snow and Wally Szczerbiak, Ferry still has $20 million left to chase other additions.

Less obvious to me is why Milwaukee did this deal. Granted, Williams is a shoot-first point guard on a team with three other shoot-first starters, and the play of Ramon Sessions down the stretch last season might have convinced the Bucks he was expendable.

The trade also has a positive financial impact, and at least one person in the know told me Ridnour will play better in Milwaukee than he did in Seattle.

With all that said, the Bucks took on a pretty hefty downgrade going from Williams to Ridnour, and the financial savings don't show up for another two years. Even with Ridnour's expiring deal, Milwaukee can't get under the cap in 2010 unless Michael Redd punts on his $18.3 million player option, which doesn't seem likely.

Additionally, the Bucks traded a valuable expiring contract in Mason -- leaving rookie Joe Alexander as their only wing reserve -- and now have a logjam at the point with Sessions, Ridnour and biannual exception signee Tyronn Lue.

The deal becomes even more puzzling when you consider all the recent "win-now" moves made by the Bucks -- trading Yi Jianlian for Richard Jefferson, signing veterans such as Lue and Malik Allen, and giving Andrew Bogut a big contract extension. A salary dump of Williams flies in the face of the other offseason logic.

It's so puzzling, in fact, that one has to wonder whether new Bucks GM John Hammond made the call here or whether Herb Kohl's shadow government in Milwaukee pressed it upon him.

But regardless of whether you think Cleveland or Milwaukee got the better end of the Williams exchange, one thing is absolutely for certain: Oklahoma City made out like a bandit.

OKC traded Ridnour and Griffin for Mason and Smith, straight up. When you trade two-for-two like that, you aren't supposed to get rid of the two worst and get the two best in return. Somehow, the Okies did. Dumping Ridnour is especially sweet because he had two years and $13 million left on his deal and wasn't going to play this year; I had suspected they would have to pay somebody to take him, not the other way around.

Instead, Oklahoma City somehow walked away from this trade with two decent players, also managing to shave $6.6 million off its payroll and set itself up to be as much as $30 million under the cap next summer.

And there's more to come. Oklahoma City can turn around and deal Smith and Mason at the trade deadline, or even earlier, and get a draft pick in return for an expiring contract of a less valuable player. Doing so would echo last year's maneuver with Kurt Thomas, when the artists formerly known as the Sonics got two first-round picks from Phoenix as a reward for taking Thomas, then a third one when they flipped him at the trade deadline.

Add it all up and the logic works for me for just two of the three parties. Cleveland upgrades its shaky point guard spot and makes nice with its star player, and Oklahoma City basically turns nothing into something by unloading Ridnour for two useful players.

Milwaukee? I'm still puzzled by that end of it, and at the end of the day, it appears the Bucks dumped one of their best players for pennies on the dollar.

John Hollinger writes for ESPN Insider. To e-mail him, click here.