Loading core/java/android/util/Log.java +7 −12 Original line number Diff line number Diff line Loading @@ -253,7 +253,7 @@ public final class Log { * @param msg The message you would like logged. */ public static int wtf(String tag, String msg) { return wtf(tag, msg, null); return wtf(LOG_ID_MAIN, tag, msg, null, false); } /** Loading @@ -262,7 +262,7 @@ public final class Log { * @hide */ public static int wtfStack(String tag, String msg) { return wtfStack(LOG_ID_MAIN, tag, msg); return wtf(LOG_ID_MAIN, tag, msg, null, true); } /** Loading @@ -272,7 +272,7 @@ public final class Log { * @param tr An exception to log. */ public static int wtf(String tag, Throwable tr) { return wtf(tag, tr.getMessage(), tr); return wtf(LOG_ID_MAIN, tag, tr.getMessage(), tr, false); } /** Loading @@ -283,18 +283,13 @@ public final class Log { * @param tr An exception to log. May be null. */ public static int wtf(String tag, String msg, Throwable tr) { return wtf(LOG_ID_MAIN, tag, msg, tr); return wtf(LOG_ID_MAIN, tag, msg, tr, false); } static int wtfStack(int logId, String tag, String msg) { TerribleFailure here = new TerribleFailure("here", null); here.fillInStackTrace(); return wtf(logId, tag, msg, here); } static int wtf(int logId, String tag, String msg, Throwable tr) { static int wtf(int logId, String tag, String msg, Throwable tr, boolean localStack) { TerribleFailure what = new TerribleFailure(msg, tr); int bytes = println_native(logId, ASSERT, tag, msg + '\n' + getStackTraceString(tr)); int bytes = println_native(logId, ASSERT, tag, msg + '\n' + getStackTraceString(localStack ? what : tr)); sWtfHandler.onTerribleFailure(tag, what); return bytes; } Loading core/java/android/util/Slog.java +4 −4 Original line number Diff line number Diff line Loading @@ -79,19 +79,19 @@ public final class Slog { } public static int wtf(String tag, String msg) { return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null); return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null, false); } public static int wtfStack(String tag, String msg) { return Log.wtfStack(Log.LOG_ID_SYSTEM, tag, msg); return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null, true); } public static int wtf(String tag, Throwable tr) { return Log.wtf(Log.LOG_ID_SYSTEM, tag, tr.getMessage(), tr); return Log.wtf(Log.LOG_ID_SYSTEM, tag, tr.getMessage(), tr, false); } public static int wtf(String tag, String msg, Throwable tr) { return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, tr); return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, tr, false); } public static int println(int priority, String tag, String msg) { Loading core/java/com/android/internal/app/ProcessStats.java +17 −8 Original line number Diff line number Diff line Loading @@ -2918,29 +2918,38 @@ public final class ProcessStats implements Parcelable { } } public void clearCurrentOwner(Object owner) { public void clearCurrentOwner(Object owner, boolean silently) { if (mOwner == owner) { mOwner = null; mProc.decActiveServices(mName); if (mStartedState != STATE_NOTHING || mBoundState != STATE_NOTHING || mExecState != STATE_NOTHING) { long now = SystemClock.uptimeMillis(); if (mStartedState != STATE_NOTHING) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while started: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); if (!silently) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while started: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); } setStarted(false, 0, now); } if (mBoundState != STATE_NOTHING) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while bound: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); if (!silently) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while bound: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); } setBound(false, 0, now); } if (mExecState != STATE_NOTHING) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while exec: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); if (!silently) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while exec: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); } setExecuting(false, 0, now); } } mOwner = null; } } Loading services/java/com/android/server/am/ActiveServices.java +15 −5 Original line number Diff line number Diff line Loading @@ -1494,7 +1494,7 @@ public final class ActiveServices { } catch (Exception e) { Slog.w(TAG, "Exception when unbinding service " + r.shortName, e); serviceDoneExecutingLocked(r, true, true); serviceProcessGoneLocked(r); } } } Loading Loading @@ -1544,7 +1544,7 @@ public final class ActiveServices { } catch (Exception e) { Slog.w(TAG, "Exception when destroying service " + r.shortName, e); serviceDoneExecutingLocked(r, true, true); serviceProcessGoneLocked(r); } updateServiceForegroundLocked(r.app, false); } else { Loading @@ -1570,7 +1570,7 @@ public final class ActiveServices { r.tracker.setStarted(false, memFactor, now); r.tracker.setBound(false, memFactor, now); if (r.executeNesting == 0) { r.tracker.clearCurrentOwner(r); r.tracker.clearCurrentOwner(r, false); r.tracker = null; } } Loading Loading @@ -1629,7 +1629,7 @@ public final class ActiveServices { s.app.thread.scheduleUnbindService(s, b.intent.intent.getIntent()); } catch (Exception e) { Slog.w(TAG, "Exception when unbinding service " + s.shortName, e); serviceDoneExecutingLocked(s, true, true); serviceProcessGoneLocked(s); } } Loading Loading @@ -1708,6 +1708,16 @@ public final class ActiveServices { } } private void serviceProcessGoneLocked(ServiceRecord r) { if (r.tracker != null) { int memFactor = mAm.mProcessStats.getMemFactorLocked(); long now = SystemClock.uptimeMillis(); r.tracker.setExecuting(false, memFactor, now); r.tracker.setBound(false, memFactor, now); } serviceDoneExecutingLocked(r, true, true); } private void serviceDoneExecutingLocked(ServiceRecord r, boolean inDestroying, boolean finishing) { if (DEBUG_SERVICE) Slog.v(TAG, "<<< DONE EXECUTING " + r Loading Loading @@ -1747,7 +1757,7 @@ public final class ActiveServices { r.tracker.setExecuting(false, mAm.mProcessStats.getMemFactorLocked(), SystemClock.uptimeMillis()); if (finishing) { r.tracker.clearCurrentOwner(r); r.tracker.clearCurrentOwner(r, false); r.tracker = null; } } Loading services/java/com/android/server/am/ServiceRecord.java +1 −6 Original line number Diff line number Diff line Loading @@ -335,12 +335,7 @@ final class ServiceRecord extends Binder { public void forceClearTracker() { if (tracker != null) { int memFactor = ams.mProcessStats.getMemFactorLocked(); long now = SystemClock.uptimeMillis(); tracker.setStarted(false, memFactor, now); tracker.setBound(false, memFactor, now); tracker.setExecuting(false, memFactor, now); tracker.clearCurrentOwner(this); tracker.clearCurrentOwner(this, true); tracker = null; } } Loading Loading
core/java/android/util/Log.java +7 −12 Original line number Diff line number Diff line Loading @@ -253,7 +253,7 @@ public final class Log { * @param msg The message you would like logged. */ public static int wtf(String tag, String msg) { return wtf(tag, msg, null); return wtf(LOG_ID_MAIN, tag, msg, null, false); } /** Loading @@ -262,7 +262,7 @@ public final class Log { * @hide */ public static int wtfStack(String tag, String msg) { return wtfStack(LOG_ID_MAIN, tag, msg); return wtf(LOG_ID_MAIN, tag, msg, null, true); } /** Loading @@ -272,7 +272,7 @@ public final class Log { * @param tr An exception to log. */ public static int wtf(String tag, Throwable tr) { return wtf(tag, tr.getMessage(), tr); return wtf(LOG_ID_MAIN, tag, tr.getMessage(), tr, false); } /** Loading @@ -283,18 +283,13 @@ public final class Log { * @param tr An exception to log. May be null. */ public static int wtf(String tag, String msg, Throwable tr) { return wtf(LOG_ID_MAIN, tag, msg, tr); return wtf(LOG_ID_MAIN, tag, msg, tr, false); } static int wtfStack(int logId, String tag, String msg) { TerribleFailure here = new TerribleFailure("here", null); here.fillInStackTrace(); return wtf(logId, tag, msg, here); } static int wtf(int logId, String tag, String msg, Throwable tr) { static int wtf(int logId, String tag, String msg, Throwable tr, boolean localStack) { TerribleFailure what = new TerribleFailure(msg, tr); int bytes = println_native(logId, ASSERT, tag, msg + '\n' + getStackTraceString(tr)); int bytes = println_native(logId, ASSERT, tag, msg + '\n' + getStackTraceString(localStack ? what : tr)); sWtfHandler.onTerribleFailure(tag, what); return bytes; } Loading
core/java/android/util/Slog.java +4 −4 Original line number Diff line number Diff line Loading @@ -79,19 +79,19 @@ public final class Slog { } public static int wtf(String tag, String msg) { return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null); return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null, false); } public static int wtfStack(String tag, String msg) { return Log.wtfStack(Log.LOG_ID_SYSTEM, tag, msg); return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null, true); } public static int wtf(String tag, Throwable tr) { return Log.wtf(Log.LOG_ID_SYSTEM, tag, tr.getMessage(), tr); return Log.wtf(Log.LOG_ID_SYSTEM, tag, tr.getMessage(), tr, false); } public static int wtf(String tag, String msg, Throwable tr) { return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, tr); return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, tr, false); } public static int println(int priority, String tag, String msg) { Loading
core/java/com/android/internal/app/ProcessStats.java +17 −8 Original line number Diff line number Diff line Loading @@ -2918,29 +2918,38 @@ public final class ProcessStats implements Parcelable { } } public void clearCurrentOwner(Object owner) { public void clearCurrentOwner(Object owner, boolean silently) { if (mOwner == owner) { mOwner = null; mProc.decActiveServices(mName); if (mStartedState != STATE_NOTHING || mBoundState != STATE_NOTHING || mExecState != STATE_NOTHING) { long now = SystemClock.uptimeMillis(); if (mStartedState != STATE_NOTHING) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while started: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); if (!silently) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while started: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); } setStarted(false, 0, now); } if (mBoundState != STATE_NOTHING) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while bound: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); if (!silently) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while bound: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); } setBound(false, 0, now); } if (mExecState != STATE_NOTHING) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while exec: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); if (!silently) { Slog.wtfStack(TAG, "Service owner " + owner + " cleared while exec: pkg=" + mPackage + " service=" + mName + " proc=" + mProc); } setExecuting(false, 0, now); } } mOwner = null; } } Loading
services/java/com/android/server/am/ActiveServices.java +15 −5 Original line number Diff line number Diff line Loading @@ -1494,7 +1494,7 @@ public final class ActiveServices { } catch (Exception e) { Slog.w(TAG, "Exception when unbinding service " + r.shortName, e); serviceDoneExecutingLocked(r, true, true); serviceProcessGoneLocked(r); } } } Loading Loading @@ -1544,7 +1544,7 @@ public final class ActiveServices { } catch (Exception e) { Slog.w(TAG, "Exception when destroying service " + r.shortName, e); serviceDoneExecutingLocked(r, true, true); serviceProcessGoneLocked(r); } updateServiceForegroundLocked(r.app, false); } else { Loading @@ -1570,7 +1570,7 @@ public final class ActiveServices { r.tracker.setStarted(false, memFactor, now); r.tracker.setBound(false, memFactor, now); if (r.executeNesting == 0) { r.tracker.clearCurrentOwner(r); r.tracker.clearCurrentOwner(r, false); r.tracker = null; } } Loading Loading @@ -1629,7 +1629,7 @@ public final class ActiveServices { s.app.thread.scheduleUnbindService(s, b.intent.intent.getIntent()); } catch (Exception e) { Slog.w(TAG, "Exception when unbinding service " + s.shortName, e); serviceDoneExecutingLocked(s, true, true); serviceProcessGoneLocked(s); } } Loading Loading @@ -1708,6 +1708,16 @@ public final class ActiveServices { } } private void serviceProcessGoneLocked(ServiceRecord r) { if (r.tracker != null) { int memFactor = mAm.mProcessStats.getMemFactorLocked(); long now = SystemClock.uptimeMillis(); r.tracker.setExecuting(false, memFactor, now); r.tracker.setBound(false, memFactor, now); } serviceDoneExecutingLocked(r, true, true); } private void serviceDoneExecutingLocked(ServiceRecord r, boolean inDestroying, boolean finishing) { if (DEBUG_SERVICE) Slog.v(TAG, "<<< DONE EXECUTING " + r Loading Loading @@ -1747,7 +1757,7 @@ public final class ActiveServices { r.tracker.setExecuting(false, mAm.mProcessStats.getMemFactorLocked(), SystemClock.uptimeMillis()); if (finishing) { r.tracker.clearCurrentOwner(r); r.tracker.clearCurrentOwner(r, false); r.tracker = null; } } Loading
services/java/com/android/server/am/ServiceRecord.java +1 −6 Original line number Diff line number Diff line Loading @@ -335,12 +335,7 @@ final class ServiceRecord extends Binder { public void forceClearTracker() { if (tracker != null) { int memFactor = ams.mProcessStats.getMemFactorLocked(); long now = SystemClock.uptimeMillis(); tracker.setStarted(false, memFactor, now); tracker.setBound(false, memFactor, now); tracker.setExecuting(false, memFactor, now); tracker.clearCurrentOwner(this); tracker.clearCurrentOwner(this, true); tracker = null; } } Loading