Program: 152495
Project: 152495
Buggy source:
private boolean initialize(){
  final Context context=getContext();
  mDbHelper=(ContactsDatabaseHelper)getDatabaseHelper();
  mGlobalSearchSupport=new GlobalSearchSupport(this);
  mLegacyApiSupport=new LegacyApiSupport(context,mDbHelper,this,mGlobalSearchSupport);
  mContactAggregator=new ContactAggregator(this,mDbHelper);
  mContactAggregator.setEnabled(SystemProperties.getBoolean(AGGREGATE_CONTACTS,true));
  final SQLiteDatabase db=mDbHelper.getReadableDatabase();
  mSetPrimaryStatement=db.compileStatement("String_Node_Str" + Tables.DATA + "String_Node_Str"+ Data.IS_PRIMARY+ "String_Node_Str"+ "String_Node_Str"+ DataColumns.MIMETYPE_ID+ "String_Node_Str"+ "String_Node_Str"+ Data.RAW_CONTACT_ID+ "String_Node_Str");
  mSetSuperPrimaryStatement=db.compileStatement("String_Node_Str" + Tables.DATA + "String_Node_Str"+ Data.IS_SUPER_PRIMARY+ "String_Node_Str"+ Data._ID+ "String_Node_Str"+ "String_Node_Str"+ DataColumns.MIMETYPE_ID+ "String_Node_Str"+ "String_Node_Str"+ Data.RAW_CONTACT_ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str"+ Tables.RAW_CONTACTS+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ Tables.RAW_CONTACTS+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str");
  mRawContactDisplayNameUpdate=db.compileStatement("String_Node_Str" + Tables.RAW_CONTACTS + "String_Node_Str"+ RawContacts.DISPLAY_NAME_SOURCE+ "String_Node_Str"+ RawContacts.DISPLAY_NAME_PRIMARY+ "String_Node_Str"+ RawContacts.DISPLAY_NAME_ALTERNATIVE+ "String_Node_Str"+ RawContacts.PHONETIC_NAME+ "String_Node_Str"+ RawContacts.PHONETIC_NAME_STYLE+ "String_Node_Str"+ RawContacts.SORT_KEY_PRIMARY+ "String_Node_Str"+ RawContacts.SORT_KEY_ALTERNATIVE+ "String_Node_Str"+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str");
  mLastStatusUpdate=db.compileStatement("String_Node_Str" + Tables.CONTACTS + "String_Node_Str"+ ContactsColumns.LAST_STATUS_UPDATE_ID+ "String_Node_Str"+ "String_Node_Str"+ DataColumns.CONCRETE_ID+ "String_Node_Str"+ Tables.STATUS_UPDATES+ "String_Node_Str"+ Tables.DATA+ "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str"+ DataColumns.CONCRETE_ID+ "String_Node_Str"+ "String_Node_Str"+ Tables.RAW_CONTACTS+ "String_Node_Str"+ DataColumns.CONCRETE_RAW_CONTACT_ID+ "String_Node_Str"+ RawContactsColumns.CONCRETE_ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ "String_Node_Str"+ StatusUpdates.STATUS_TIMESTAMP+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str"+ "String_Node_Str"+ ContactsColumns.CONCRETE_ID+ "String_Node_Str");
  final Locale locale=getLocale();
  mNameSplitter=new NameSplitter(context.getString(com.android.internal.R.string.common_name_prefixes),context.getString(com.android.internal.R.string.common_last_name_prefixes),context.getString(com.android.internal.R.string.common_name_suffixes),context.getString(com.android.internal.R.string.common_name_conjunctions),locale);
  mNameLookupBuilder=new StructuredNameLookupBuilder(mNameSplitter);
  mPostalSplitter=new PostalSplitter(locale);
  mNameLookupInsert=db.compileStatement("String_Node_Str" + Tables.NAME_LOOKUP + "String_Node_Str"+ NameLookupColumns.RAW_CONTACT_ID+ "String_Node_Str"+ NameLookupColumns.DATA_ID+ "String_Node_Str"+ NameLookupColumns.NAME_TYPE+ "String_Node_Str"+ NameLookupColumns.NORMALIZED_NAME+ "String_Node_Str");
  mNameLookupDelete=db.compileStatement("String_Node_Str" + Tables.NAME_LOOKUP + "String_Node_Str"+ NameLookupColumns.DATA_ID+ "String_Node_Str");
  mStatusUpdateInsert=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str"+ StatusUpdates.STATUS_RES_PACKAGE+ "String_Node_Str"+ StatusUpdates.STATUS_ICON+ "String_Node_Str"+ StatusUpdates.STATUS_LABEL+ "String_Node_Str"+ "String_Node_Str");
  mStatusUpdateReplace=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str"+ StatusUpdates.STATUS_TIMESTAMP+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str"+ StatusUpdates.STATUS_RES_PACKAGE+ "String_Node_Str"+ StatusUpdates.STATUS_ICON+ "String_Node_Str"+ StatusUpdates.STATUS_LABEL+ "String_Node_Str"+ "String_Node_Str");
  mStatusUpdateAutoTimestamp=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdates.STATUS_TIMESTAMP+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str"+ "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str"+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str");
  mStatusAttributionUpdate=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdates.STATUS_RES_PACKAGE+ "String_Node_Str"+ StatusUpdates.STATUS_ICON+ "String_Node_Str"+ StatusUpdates.STATUS_LABEL+ "String_Node_Str"+ "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str");
  mStatusUpdateDelete=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str");
  mResetNameVerifiedForOtherRawContacts=db.compileStatement("String_Node_Str" + Tables.RAW_CONTACTS + "String_Node_Str"+ RawContacts.NAME_VERIFIED+ "String_Node_Str"+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ Tables.RAW_CONTACTS+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str");
  mDataRowHandlers=new HashMap<String,DataRowHandler>();
  mDataRowHandlers.put(Email.CONTENT_ITEM_TYPE,new EmailDataRowHandler());
  mDataRowHandlers.put(Im.CONTENT_ITEM_TYPE,new CommonDataRowHandler(Im.CONTENT_ITEM_TYPE,Im.TYPE,Im.LABEL));
  mDataRowHandlers.put(Nickname.CONTENT_ITEM_TYPE,new CommonDataRowHandler(StructuredPostal.CONTENT_ITEM_TYPE,StructuredPostal.TYPE,StructuredPostal.LABEL));
  mDataRowHandlers.put(Organization.CONTENT_ITEM_TYPE,new OrganizationDataRowHandler());
  mDataRowHandlers.put(Phone.CONTENT_ITEM_TYPE,new PhoneDataRowHandler());
  mDataRowHandlers.put(Nickname.CONTENT_ITEM_TYPE,new NicknameDataRowHandler());
  mDataRowHandlers.put(StructuredName.CONTENT_ITEM_TYPE,new StructuredNameRowHandler(mNameSplitter));
  mDataRowHandlers.put(StructuredPostal.CONTENT_ITEM_TYPE,new StructuredPostalRowHandler(mPostalSplitter));
  mDataRowHandlers.put(GroupMembership.CONTENT_ITEM_TYPE,new GroupMembershipRowHandler());
  mDataRowHandlers.put(Photo.CONTENT_ITEM_TYPE,new PhotoDataRowHandler());
  if (isLegacyContactImportNeeded()) {
    importLegacyContactsAsync();
  }
  verifyAccounts();
  mMimeTypeIdEmail=mDbHelper.getMimeTypeId(Email.CONTENT_ITEM_TYPE);
  mMimeTypeIdIm=mDbHelper.getMimeTypeId(Im.CONTENT_ITEM_TYPE);
  mMimeTypeIdStructuredName=mDbHelper.getMimeTypeId(StructuredName.CONTENT_ITEM_TYPE);
  mMimeTypeIdOrganization=mDbHelper.getMimeTypeId(Organization.CONTENT_ITEM_TYPE);
  mMimeTypeIdNickname=mDbHelper.getMimeTypeId(Nickname.CONTENT_ITEM_TYPE);
  mMimeTypeIdPhone=mDbHelper.getMimeTypeId(Phone.CONTENT_ITEM_TYPE);
  preloadNicknameBloomFilter();
  return (db != null);
}

Fixed version (ground truth):
private boolean initialize(){
  final Context context=getContext();
  mDbHelper=(ContactsDatabaseHelper)getDatabaseHelper();
  mGlobalSearchSupport=new GlobalSearchSupport(this);
  mLegacyApiSupport=new LegacyApiSupport(context,mDbHelper,this,mGlobalSearchSupport);
  mContactAggregator=new ContactAggregator(this,mDbHelper);
  mContactAggregator.setEnabled(SystemProperties.getBoolean(AGGREGATE_CONTACTS,true));
  final SQLiteDatabase db=mDbHelper.getReadableDatabase();
  mSetPrimaryStatement=db.compileStatement("String_Node_Str" + Tables.DATA + "String_Node_Str"+ Data.IS_PRIMARY+ "String_Node_Str"+ "String_Node_Str"+ DataColumns.MIMETYPE_ID+ "String_Node_Str"+ "String_Node_Str"+ Data.RAW_CONTACT_ID+ "String_Node_Str");
  mSetSuperPrimaryStatement=db.compileStatement("String_Node_Str" + Tables.DATA + "String_Node_Str"+ Data.IS_SUPER_PRIMARY+ "String_Node_Str"+ Data._ID+ "String_Node_Str"+ "String_Node_Str"+ DataColumns.MIMETYPE_ID+ "String_Node_Str"+ "String_Node_Str"+ Data.RAW_CONTACT_ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str"+ Tables.RAW_CONTACTS+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ Tables.RAW_CONTACTS+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str");
  mRawContactDisplayNameUpdate=db.compileStatement("String_Node_Str" + Tables.RAW_CONTACTS + "String_Node_Str"+ RawContacts.DISPLAY_NAME_SOURCE+ "String_Node_Str"+ RawContacts.DISPLAY_NAME_PRIMARY+ "String_Node_Str"+ RawContacts.DISPLAY_NAME_ALTERNATIVE+ "String_Node_Str"+ RawContacts.PHONETIC_NAME+ "String_Node_Str"+ RawContacts.PHONETIC_NAME_STYLE+ "String_Node_Str"+ RawContacts.SORT_KEY_PRIMARY+ "String_Node_Str"+ RawContacts.SORT_KEY_ALTERNATIVE+ "String_Node_Str"+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str");
  mLastStatusUpdate=db.compileStatement("String_Node_Str" + Tables.CONTACTS + "String_Node_Str"+ ContactsColumns.LAST_STATUS_UPDATE_ID+ "String_Node_Str"+ "String_Node_Str"+ DataColumns.CONCRETE_ID+ "String_Node_Str"+ Tables.STATUS_UPDATES+ "String_Node_Str"+ Tables.DATA+ "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str"+ DataColumns.CONCRETE_ID+ "String_Node_Str"+ "String_Node_Str"+ Tables.RAW_CONTACTS+ "String_Node_Str"+ DataColumns.CONCRETE_RAW_CONTACT_ID+ "String_Node_Str"+ RawContactsColumns.CONCRETE_ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ "String_Node_Str"+ StatusUpdates.STATUS_TIMESTAMP+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str"+ "String_Node_Str"+ ContactsColumns.CONCRETE_ID+ "String_Node_Str");
  initByLocale(context);
  mNameLookupInsert=db.compileStatement("String_Node_Str" + Tables.NAME_LOOKUP + "String_Node_Str"+ NameLookupColumns.RAW_CONTACT_ID+ "String_Node_Str"+ NameLookupColumns.DATA_ID+ "String_Node_Str"+ NameLookupColumns.NAME_TYPE+ "String_Node_Str"+ NameLookupColumns.NORMALIZED_NAME+ "String_Node_Str");
  mNameLookupDelete=db.compileStatement("String_Node_Str" + Tables.NAME_LOOKUP + "String_Node_Str"+ NameLookupColumns.DATA_ID+ "String_Node_Str");
  mStatusUpdateInsert=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str"+ StatusUpdates.STATUS_RES_PACKAGE+ "String_Node_Str"+ StatusUpdates.STATUS_ICON+ "String_Node_Str"+ StatusUpdates.STATUS_LABEL+ "String_Node_Str"+ "String_Node_Str");
  mStatusUpdateReplace=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str"+ StatusUpdates.STATUS_TIMESTAMP+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str"+ StatusUpdates.STATUS_RES_PACKAGE+ "String_Node_Str"+ StatusUpdates.STATUS_ICON+ "String_Node_Str"+ StatusUpdates.STATUS_LABEL+ "String_Node_Str"+ "String_Node_Str");
  mStatusUpdateAutoTimestamp=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdates.STATUS_TIMESTAMP+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str"+ "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str"+ "String_Node_Str"+ StatusUpdates.STATUS+ "String_Node_Str");
  mStatusAttributionUpdate=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdates.STATUS_RES_PACKAGE+ "String_Node_Str"+ StatusUpdates.STATUS_ICON+ "String_Node_Str"+ StatusUpdates.STATUS_LABEL+ "String_Node_Str"+ "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str");
  mStatusUpdateDelete=db.compileStatement("String_Node_Str" + Tables.STATUS_UPDATES + "String_Node_Str"+ StatusUpdatesColumns.DATA_ID+ "String_Node_Str");
  mResetNameVerifiedForOtherRawContacts=db.compileStatement("String_Node_Str" + Tables.RAW_CONTACTS + "String_Node_Str"+ RawContacts.NAME_VERIFIED+ "String_Node_Str"+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts.CONTACT_ID+ "String_Node_Str"+ Tables.RAW_CONTACTS+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str"+ "String_Node_Str"+ RawContacts._ID+ "String_Node_Str");
  mDataRowHandlers=new HashMap<String,DataRowHandler>();
  mDataRowHandlers.put(Email.CONTENT_ITEM_TYPE,new EmailDataRowHandler());
  mDataRowHandlers.put(Im.CONTENT_ITEM_TYPE,new CommonDataRowHandler(Im.CONTENT_ITEM_TYPE,Im.TYPE,Im.LABEL));
  mDataRowHandlers.put(Nickname.CONTENT_ITEM_TYPE,new CommonDataRowHandler(StructuredPostal.CONTENT_ITEM_TYPE,StructuredPostal.TYPE,StructuredPostal.LABEL));
  mDataRowHandlers.put(Organization.CONTENT_ITEM_TYPE,new OrganizationDataRowHandler());
  mDataRowHandlers.put(Phone.CONTENT_ITEM_TYPE,new PhoneDataRowHandler());
  mDataRowHandlers.put(Nickname.CONTENT_ITEM_TYPE,new NicknameDataRowHandler());
  mDataRowHandlers.put(StructuredName.CONTENT_ITEM_TYPE,new StructuredNameRowHandler(mNameSplitter));
  mDataRowHandlers.put(StructuredPostal.CONTENT_ITEM_TYPE,new StructuredPostalRowHandler(mPostalSplitter));
  mDataRowHandlers.put(GroupMembership.CONTENT_ITEM_TYPE,new GroupMembershipRowHandler());
  mDataRowHandlers.put(Photo.CONTENT_ITEM_TYPE,new PhotoDataRowHandler());
  if (isLegacyContactImportNeeded()) {
    importLegacyContactsAsync();
  }
  verifyAccounts();
  mMimeTypeIdEmail=mDbHelper.getMimeTypeId(Email.CONTENT_ITEM_TYPE);
  mMimeTypeIdIm=mDbHelper.getMimeTypeId(Im.CONTENT_ITEM_TYPE);
  mMimeTypeIdStructuredName=mDbHelper.getMimeTypeId(StructuredName.CONTENT_ITEM_TYPE);
  mMimeTypeIdOrganization=mDbHelper.getMimeTypeId(Organization.CONTENT_ITEM_TYPE);
  mMimeTypeIdNickname=mDbHelper.getMimeTypeId(Nickname.CONTENT_ITEM_TYPE);
  mMimeTypeIdPhone=mDbHelper.getMimeTypeId(Phone.CONTENT_ITEM_TYPE);
  preloadNicknameBloomFilter();
  return (db != null);
}