cocos2d/cocos2d-x — pull request #8997 by zhong317 (2014-11-03 13:25:29+00:00)
Title: Update Cocos2dxSound.java

call "preloadEffect" will release the mSemaphore also, so if you call "preloadEffect" first, and then call "playEffect" to play some unloaded sound, the mSemaphore's acquire will return immediately, and gain a wrong streamID, so you can't stop the sound later. also, it will be possible to cause the "ConcurrentModificationException".