Short, quick version:
Jack Moore (Richard Gere) did not kill Hong Ling (Jessey Meng). He was set up.
Long, detailed version:
Jack Moore is innocent. He was actually the victim of a colossal set-up -by no less than Chinese Government officers- to stop him from fulfilling his very important part in a big-time trade between American investors and Chinese entrepreneurs. The victim, Hong Ling, was in cahoots with the culprits to frame Moore -hence their steamy night together in the beginning- , but then she tried to end her involvement in the plot, so Lin Dan (Byron Mann) had her killed by means of Huang Minglu (Roger Yuan).
Suddenly, the Presiding Chairman is given instructions to abruptly end the session; and just as Shen Yuelin (Bai Ling) tries not to have Moore removed from the court and Lin Dan is walking out triumphally, General Li Cheng (Tzi Ma) shoots and kills Lin Dan and apologizes to Moore, thus relieving him from the whole thing.
The trial ends, Moore is acquitted, and shortly after, he says good-bye to Shen Yuelin, -there are even some exchanges of long, sad faces between them, that suggest an eventual attempt to a romantic hook-up- and boards a plane to leave China.
Thanks Dr. Mat!