summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2012-05-30 18:14:19 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-05-30 18:14:19 -0700
commit11855f31a3f7074d9fbccd1ee460b99fc47162c6 (patch)
tree77ae4340846399727edddc97029ce4537270cf18 /core
parentc6dd2dd4b38b96be3deee94540973c83498a496c (diff)
parent388d4801d5f314c804c5ab2dff76f764ed28a991 (diff)
downloadframeworks_base-11855f31a3f7074d9fbccd1ee460b99fc47162c6.zip
frameworks_base-11855f31a3f7074d9fbccd1ee460b99fc47162c6.tar.gz
frameworks_base-11855f31a3f7074d9fbccd1ee460b99fc47162c6.tar.bz2
am 388d4801: Merge "Working on issue #6561352: java.lang.RuntimeException: Unable to start..." into jb-dev
* commit '388d4801d5f314c804c5ab2dff76f764ed28a991': Working on issue #6561352: java.lang.RuntimeException: Unable to start...
Diffstat (limited to 'core')
-rw-r--r--core/java/android/app/FragmentManager.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java
index 6058bdc..03ee419 100644
--- a/core/java/android/app/FragmentManager.java
+++ b/core/java/android/app/FragmentManager.java
@@ -1568,8 +1568,17 @@ final class FragmentManagerImpl extends FragmentManager {
for (int i=0; i<N; i++) {
Fragment f = mActive.get(i);
if (f != null) {
+ if (f.mIndex < 0) {
+ String msg = "Failure saving state: active " + f
+ + " has cleared index: " + f.mIndex;
+ Slog.e(TAG, msg);
+ dump(" ", null, new PrintWriter(new LogWriter(
+ Log.ERROR, TAG, Log.LOG_ID_SYSTEM)), new String[] { });
+ throw new IllegalStateException(msg);
+ }
+
haveFragments = true;
-
+
FragmentState fs = new FragmentState(f);
active[i] = fs;
@@ -1621,6 +1630,14 @@ final class FragmentManagerImpl extends FragmentManager {
added = new int[N];
for (int i=0; i<N; i++) {
added[i] = mAdded.get(i).mIndex;
+ if (added[i] < 0) {
+ String msg = "Failure saving state: active " + mAdded.get(i)
+ + " has cleared index: " + added[i];
+ Slog.e(TAG, msg);
+ dump(" ", null, new PrintWriter(new LogWriter(
+ Log.ERROR, TAG, Log.LOG_ID_SYSTEM)), new String[] { });
+ throw new IllegalStateException(msg);
+ }
if (DEBUG) Log.v(TAG, "saveAllState: adding fragment #" + i
+ ": " + mAdded.get(i));
}