Squashed commit of the following:
commit 9798cd23605c96c1d6a29202f4d31f5454079b61 Author: Mitsuru Oshima <oshima@google.com> Date: Tue Jun 16 13:50:44 2009 -0700 Made other toShortString in performDestroyActivity safe. commit 19bf973df81d9d01210effb39c99e5236f2229c1 Author: Mitsuru Oshima <oshima@google.com> Date: Fri Jun 12 15:50:03 2009 -0700 * component can be null after destory? This was causing NPE in catch block, which hides the actual exception. Conflicts: core/java/android/app/ActivityThread.java
This commit is contained in:
@@ -3217,7 +3217,7 @@ public final class ActivityThread {
|
|||||||
r.activity.getComponentName().getClassName());
|
r.activity.getComponentName().getClassName());
|
||||||
if (!r.activity.mCalled) {
|
if (!r.activity.mCalled) {
|
||||||
throw new SuperNotCalledException(
|
throw new SuperNotCalledException(
|
||||||
"Activity " + r.intent.getComponent().toShortString()
|
"Activity " + safeToComponentShortString(r.intent)
|
||||||
+ " did not call through to super.onPause()");
|
+ " did not call through to super.onPause()");
|
||||||
}
|
}
|
||||||
} catch (SuperNotCalledException e) {
|
} catch (SuperNotCalledException e) {
|
||||||
@@ -3226,7 +3226,7 @@ public final class ActivityThread {
|
|||||||
if (!mInstrumentation.onException(r.activity, e)) {
|
if (!mInstrumentation.onException(r.activity, e)) {
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Unable to pause activity "
|
"Unable to pause activity "
|
||||||
+ r.intent.getComponent().toShortString()
|
+ safeToComponentShortString(r.intent)
|
||||||
+ ": " + e.toString(), e);
|
+ ": " + e.toString(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3241,7 +3241,7 @@ public final class ActivityThread {
|
|||||||
if (!mInstrumentation.onException(r.activity, e)) {
|
if (!mInstrumentation.onException(r.activity, e)) {
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Unable to stop activity "
|
"Unable to stop activity "
|
||||||
+ r.intent.getComponent().toShortString()
|
+ safeToComponentShortString(r.intent)
|
||||||
+ ": " + e.toString(), e);
|
+ ": " + e.toString(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3266,7 +3266,7 @@ public final class ActivityThread {
|
|||||||
if (!mInstrumentation.onException(r.activity, e)) {
|
if (!mInstrumentation.onException(r.activity, e)) {
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Unable to retain child activities "
|
"Unable to retain child activities "
|
||||||
+ r.intent.getComponent().toShortString()
|
+ safeToComponentShortString(r.intent)
|
||||||
+ ": " + e.toString(), e);
|
+ ": " + e.toString(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3277,7 +3277,7 @@ public final class ActivityThread {
|
|||||||
r.activity.onDestroy();
|
r.activity.onDestroy();
|
||||||
if (!r.activity.mCalled) {
|
if (!r.activity.mCalled) {
|
||||||
throw new SuperNotCalledException(
|
throw new SuperNotCalledException(
|
||||||
"Activity " + r.intent.getComponent().toShortString() +
|
"Activity " + safeToComponentShortString(r.intent) +
|
||||||
" did not call through to super.onDestroy()");
|
" did not call through to super.onDestroy()");
|
||||||
}
|
}
|
||||||
if (r.window != null) {
|
if (r.window != null) {
|
||||||
@@ -3287,10 +3287,9 @@ public final class ActivityThread {
|
|||||||
throw e;
|
throw e;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (!mInstrumentation.onException(r.activity, e)) {
|
if (!mInstrumentation.onException(r.activity, e)) {
|
||||||
ComponentName component = r.intent.getComponent();
|
|
||||||
String name = component == null ? "[Unknown]" : component.toShortString();
|
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Unable to destroy activity " + name + ": " + e.toString(), e);
|
"Unable to destroy activity " + safeToComponentShortString(r.intent)
|
||||||
|
+ ": " + e.toString(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3299,6 +3298,11 @@ public final class ActivityThread {
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String safeToComponentShortString(Intent intent) {
|
||||||
|
ComponentName component = intent.getComponent();
|
||||||
|
return component == null ? "[Unknown]" : component.toShortString();
|
||||||
|
}
|
||||||
|
|
||||||
private final void handleDestroyActivity(IBinder token, boolean finishing,
|
private final void handleDestroyActivity(IBinder token, boolean finishing,
|
||||||
int configChanges, boolean getNonConfigInstance) {
|
int configChanges, boolean getNonConfigInstance) {
|
||||||
ActivityRecord r = performDestroyActivity(token, finishing,
|
ActivityRecord r = performDestroyActivity(token, finishing,
|
||||||
|
|||||||
Reference in New Issue
Block a user