diff options
| author | Narayan Kamath <narayan@google.com> | 2013-10-11 13:43:30 +0100 |
|---|---|---|
| committer | Narayan Kamath <narayan@google.com> | 2013-10-14 09:07:40 +0000 |
| commit | 12b28ce4e82fcd3ed46ffac77fb866bb5aee4408 (patch) | |
| tree | 2117fb98d212e2d7798e64bd9fc8bd11bfeaa9ae | |
| parent | 849a41a8652dc85cf44001017dff0db4408e85b5 (diff) | |
| download | frameworks_base-12b28ce4e82fcd3ed46ffac77fb866bb5aee4408.zip frameworks_base-12b28ce4e82fcd3ed46ffac77fb866bb5aee4408.tar.gz frameworks_base-12b28ce4e82fcd3ed46ffac77fb866bb5aee4408.tar.bz2 | |
Fix minor thread corectness issue in NetworkInfo
Hold the right lock while copying info from another
NetworkInfo object to prevent changes being made to it
while the copy is in progress.
Change-Id: I1aa2c29e81e045b0359f957352c438e79e692823
| -rw-r--r-- | core/java/android/net/NetworkInfo.java | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/core/java/android/net/NetworkInfo.java b/core/java/android/net/NetworkInfo.java index 4d2a70d..53b1308 100644 --- a/core/java/android/net/NetworkInfo.java +++ b/core/java/android/net/NetworkInfo.java @@ -156,18 +156,20 @@ public class NetworkInfo implements Parcelable { /** {@hide} */ public NetworkInfo(NetworkInfo source) { if (source != null) { - mNetworkType = source.mNetworkType; - mSubtype = source.mSubtype; - mTypeName = source.mTypeName; - mSubtypeName = source.mSubtypeName; - mState = source.mState; - mDetailedState = source.mDetailedState; - mReason = source.mReason; - mExtraInfo = source.mExtraInfo; - mIsFailover = source.mIsFailover; - mIsRoaming = source.mIsRoaming; - mIsAvailable = source.mIsAvailable; - mIsConnectedToProvisioningNetwork = source.mIsConnectedToProvisioningNetwork; + synchronized (source) { + mNetworkType = source.mNetworkType; + mSubtype = source.mSubtype; + mTypeName = source.mTypeName; + mSubtypeName = source.mSubtypeName; + mState = source.mState; + mDetailedState = source.mDetailedState; + mReason = source.mReason; + mExtraInfo = source.mExtraInfo; + mIsFailover = source.mIsFailover; + mIsRoaming = source.mIsRoaming; + mIsAvailable = source.mIsAvailable; + mIsConnectedToProvisioningNetwork = source.mIsConnectedToProvisioningNetwork; + } } } |
