am 42786418: Don\'t instantiate non-Fragments in Fragment.instantiate

* commit '427864188dfc5dd803b15797379b9dc6673abd16':
  Don't instantiate non-Fragments in Fragment.instantiate
This commit is contained in:
Amith Yamasani
2013-09-27 11:10:36 -07:00
committed by Android Git Automerger

View File

@ -572,6 +572,10 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene
if (clazz == null) { if (clazz == null) {
// Class not found in the cache, see if it's real, and try to add it // Class not found in the cache, see if it's real, and try to add it
clazz = context.getClassLoader().loadClass(fname); clazz = context.getClassLoader().loadClass(fname);
if (!Fragment.class.isAssignableFrom(clazz)) {
throw new InstantiationException("Trying to instantiate a class " + fname
+ " that is not a Fragment", new ClassCastException());
}
sClassMap.put(fname, clazz); sClassMap.put(fname, clazz);
} }
Fragment f = (Fragment)clazz.newInstance(); Fragment f = (Fragment)clazz.newInstance();