Avoid calling BluetoothSocket.destroyNative twice

If the destroyNative JNI method is called twice, it will attempt to free
the socketData twice, and the second free will cause an assertion failure.

To avoid this, check whether mSocketState has already been set to CLOSED
while holding the write lock.  If it has, then destroyNative has already
been called and should not be called again.

Bug: 3096033
Change-Id: Ic7c0bbf21823d389b26919da8c533d8ac4d49064
1 file changed