Public anger spills over in Shanghai