Merge "Fix statsd NPE on setPullAtomCallback" into rvc-dev
This commit is contained in:
@@ -28,7 +28,6 @@ import android.os.Binder;
|
|||||||
import android.os.IPullAtomCallback;
|
import android.os.IPullAtomCallback;
|
||||||
import android.os.IPullAtomResultReceiver;
|
import android.os.IPullAtomResultReceiver;
|
||||||
import android.os.IStatsManagerService;
|
import android.os.IStatsManagerService;
|
||||||
import android.os.IStatsd;
|
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.StatsFrameworkInitializer;
|
import android.os.StatsFrameworkInitializer;
|
||||||
import android.util.AndroidException;
|
import android.util.AndroidException;
|
||||||
@@ -56,9 +55,6 @@ public final class StatsManager {
|
|||||||
private static final Object sLock = new Object();
|
private static final Object sLock = new Object();
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
|
|
||||||
@GuardedBy("sLock")
|
|
||||||
private IStatsd mService;
|
|
||||||
|
|
||||||
@GuardedBy("sLock")
|
@GuardedBy("sLock")
|
||||||
private IStatsManagerService mStatsManagerService;
|
private IStatsManagerService mStatsManagerService;
|
||||||
|
|
||||||
|
|||||||
@@ -172,6 +172,10 @@ public class StatsManagerService extends IStatsManagerService.Stub {
|
|||||||
public void registerPullAtomCallback(int atomTag, long coolDownMillis, long timeoutMillis,
|
public void registerPullAtomCallback(int atomTag, long coolDownMillis, long timeoutMillis,
|
||||||
int[] additiveFields, IPullAtomCallback pullerCallback) {
|
int[] additiveFields, IPullAtomCallback pullerCallback) {
|
||||||
enforceRegisterStatsPullAtomPermission();
|
enforceRegisterStatsPullAtomPermission();
|
||||||
|
if (pullerCallback == null) {
|
||||||
|
Log.w(TAG, "Puller callback is null for atom " + atomTag);
|
||||||
|
return;
|
||||||
|
}
|
||||||
int callingUid = Binder.getCallingUid();
|
int callingUid = Binder.getCallingUid();
|
||||||
PullerKey key = new PullerKey(callingUid, atomTag);
|
PullerKey key = new PullerKey(callingUid, atomTag);
|
||||||
PullerValue val =
|
PullerValue val =
|
||||||
|
|||||||
@@ -354,6 +354,11 @@ void StatsPullerManager::RegisterPullAtomCallback(const int uid, const int32_t a
|
|||||||
std::lock_guard<std::mutex> _l(mLock);
|
std::lock_guard<std::mutex> _l(mLock);
|
||||||
VLOG("RegisterPullerCallback: adding puller for tag %d", atomTag);
|
VLOG("RegisterPullerCallback: adding puller for tag %d", atomTag);
|
||||||
|
|
||||||
|
if (callback == nullptr) {
|
||||||
|
ALOGW("SetPullAtomCallback called with null callback for atom %d.", atomTag);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
StatsdStats::getInstance().notePullerCallbackRegistrationChanged(atomTag, /*registered=*/true);
|
StatsdStats::getInstance().notePullerCallbackRegistrationChanged(atomTag, /*registered=*/true);
|
||||||
int64_t actualCoolDownNs = coolDownNs < kMinCoolDownNs ? kMinCoolDownNs : coolDownNs;
|
int64_t actualCoolDownNs = coolDownNs < kMinCoolDownNs ? kMinCoolDownNs : coolDownNs;
|
||||||
int64_t actualTimeoutNs = timeoutNs > kMaxTimeoutNs ? kMaxTimeoutNs : timeoutNs;
|
int64_t actualTimeoutNs = timeoutNs > kMaxTimeoutNs ? kMaxTimeoutNs : timeoutNs;
|
||||||
|
|||||||
Reference in New Issue
Block a user