Buggy code:
public class IccProvider extends ContentProvider { private static final String TAG = "IccProvider" ; private static final boolean DBG = true ; private static final String [ ] ADDRESS_BOOK_COLUMN_NAMES = new String [ ] { "name" , "number" , "emails" , "_id" } ; protected static final int ADN = 1 ; protected static final int ADN_SUB = 2 ; protected static final int FDN = 3 ; protected static final int FDN_SUB = 4 ; protected static final int SDN = 5 ; protected static final int SDN_SUB = 6 ; protected static final int ADN_ALL = 7 ; protected static final String STR_TAG = "tag" ; protected static final String STR_NUMBER = "number" ; protected static final String STR_EMAILS = "emails" ; protected static final String STR_PIN2 = "pin2" ; private static final UriMatcher URL_MATCHER = new UriMatcher ( UriMatcher . NO_MATCH ) ; @ Override public boolean onCreate ( ) { } @ Override public Cursor query ( Uri url , String [ ] projection , String selection , String [ ] selectionArgs , String sort ) { } private Cursor loadAllSimContacts ( int efType ) { } @ Override public String getType ( Uri url ) { } @ Override public Uri insert ( Uri url , ContentValues initialValues ) { } private String normalizeValue ( String inVal ) { } @ Override public int delete ( Uri url , String where , String [ ] whereArgs ) { int efType ; long subId ; int match = IccProvider . URL_MATCHER . match ( url ) ; switch ( match ) { case IccProvider . ADN : efType = IccConstants . EF_ADN ; subId = SubscriptionManager . getDefaultSubId ( ) ; break ; case IccProvider . ADN_SUB : efType = IccConstants . EF_ADN ; subId = getRequestSubId ( url ) ; break ; case IccProvider . FDN : efType = IccConstants . EF_FDN ; subId = SubscriptionManager . getDefaultSubId ( ) ; break ; case IccProvider . FDN_SUB : efType = IccConstants . EF_FDN ; subId = getRequestSubId ( url ) ; break ; default : throw new UnsupportedOperationException ( ( "Cannot<seq2seq4repair_space>insert<seq2seq4repair_space>into<seq2seq4repair_space>URL:<seq2seq4repair_space>" + url ) ) ; } if ( IccProvider . DBG ) log ( "delete" ) ; String tag = null ; String number = null ; String [ ] emails = null ; String pin2 = null ; String [ ] tokens = where . split ( "AND" ) ; int n = tokens . length ; while ( ( -- n ) >= 0 ) { String param = tokens [ n ] ; if ( IccProvider . DBG ) log ( ( ( "parsing<seq2seq4repair_space>'" + param ) + "'" ) ) ; <START_BUG> String [ ] pair = param . split ( "=" ) ; <END_BUG> if ( ( pair . length ) != 2 ) { Rlog . e ( IccProvider . TAG , ( "resolve:<seq2seq4repair_space>bad<seq2seq4repair_space>whereClause<seq2seq4repair_space>parameter:<seq2seq4repair_space>" + param ) ) ; continue ; } String key = pair [ 0 ] . trim ( ) ; String val = pair [ 1 ] . trim ( ) ; if ( IccProvider . STR_TAG . equals ( key ) ) { tag = normalizeValue ( val ) ; } else if ( IccProvider . STR_NUMBER . equals ( key ) ) { number = normalizeValue ( val ) ; } else if ( IccProvider . STR_EMAILS . equals ( key ) ) { emails = null ; } else if ( IccProvider . STR_PIN2 . equals ( key ) ) { pin2 = normalizeValue ( val ) ; } } if ( ( efType == ( IccProvider . FDN ) ) && ( TextUtils . isEmpty ( pin2 ) ) ) { return 0 ; } boolean success = deleteIccRecordFromEf ( efType , tag , number , emails , pin2 , subId ) ; if ( ! success ) { return 0 ; } getContext ( ) . getContentResolver ( ) . notifyChange ( url , null ) ; return 1 ; } @ Override public int update ( Uri url , ContentValues values , String where , String [ ] whereArgs ) { } private MatrixCursor loadFromEf ( int efType , long subId ) { } private boolean addIccRecordToEf ( int efType , String name , String number , String [ ] emails , String pin2 , long subId ) { } private boolean updateIccRecordInEf ( int efType , String oldName , String oldNumber , String newName , String newNumber , String pin2 , long subId ) { } private boolean deleteIccRecordFromEf ( int efType , String name , String number , String [ ] emails , String pin2 , long subId ) { } private void loadRecord ( AdnRecord record , MatrixCursor cursor , int id ) { } private void log ( String msg ) { } private long getRequestSubId ( Uri url ) { } }

Fix:
String [ ] pair = param . split ( "=" , 2 ) ;