Buggy code:
class GooglePlay implements IStore { Object mService ; ServiceConnection mServiceConn ; Context mContext ; boolean mDisposed = false ; public static final String ITEM_TYPE_INAPP = "inapp" ; public static final String ITEM_TYPE_SUBS = "subs" ; public static final int BILLING_RESPONSE_RESULT_OK = 0 ; public static final int BILLING_RESPONSE_RESULT_USER_CANCELED = 1 ; public static final int BILLING_RESPONSE_RESULT_SERVICE_UNAVAILABLE = 2 ; public static final int BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE = 3 ; public static final int BILLING_RESPONSE_RESULT_ITEM_UNAVAILABLE = 4 ; public static final int BILLING_RESPONSE_RESULT_DEVELOPER_ERROR = 5 ; public static final int BILLING_RESPONSE_RESULT_ERROR = 6 ; public static final int BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED = 7 ; public static final int BILLING_RESPONSE_RESULT_ITEM_NOT_OWNED = 8 ; public static final String RESPONSE_CODE = "RESPONSE_CODE" ; public static final String RESPONSE_GET_SKU_DETAILS_LIST = "DETAILS_LIST" ; public static final String RESPONSE_BUY_INTENT = "BUY_INTENT" ; public static final String RESPONSE_INAPP_PURCHASE_DATA = "INAPP_PURCHASE_DATA" ; public static final String RESPONSE_INAPP_SIGNATURE = "INAPP_DATA_SIGNATURE" ; public static final String RESPONSE_INAPP_ITEM_LIST = "INAPP_PURCHASE_ITEM_LIST" ; public static final String RESPONSE_INAPP_PURCHASE_DATA_LIST = "INAPP_PURCHASE_DATA_LIST" ; public static final String RESPONSE_INAPP_SIGNATURE_LIST = "INAPP_DATA_SIGNATURE_LIST" ; public static final String INAPP_CONTINUATION_TOKEN = "INAPP_CONTINUATION_TOKEN" ; public static final String GET_SKU_DETAILS_ITEM_LIST = "ITEM_ID_LIST" ; public static final String GET_SKU_DETAILS_ITEM_TYPE_LIST = "ITEM_TYPE_LIST" ; public void init ( Context context ) { } public void dispose ( ) { } public JSONObject querySkuDetails ( String sku ) { } private JSONObject querySkuDetails ( String itemType , String sku ) { try { ArrayList < String > skuList = new ArrayList < String > ( ) ; skuList . add ( sku ) ; Class < ? > cls = Class . forName ( "com.android.vending.billing.IInAppBillingService" ) ; Method m = cls . getMethod ( "getSkuDetails" , int . class , String . class , String . class , Bundle . class ) ; Bundle querySkus = new Bundle ( ) ; querySkus . putStringArrayList ( GooglePlay . GET_SKU_DETAILS_ITEM_LIST , skuList ) ; <START_BUG> Bundle skuDetails = ( ( Bundle ) ( m . invoke ( mService , 3 , mContext . getPackageName ( ) , GooglePlay . ITEM_TYPE_INAPP , querySkus ) ) ) ; <END_BUG> if ( ! ( skuDetails . containsKey ( GooglePlay . RESPONSE_GET_SKU_DETAILS_LIST ) ) ) { int response = getResponseCodeFromBundle ( skuDetails ) ; if ( response != ( GooglePlay . BILLING_RESPONSE_RESULT_OK ) ) { Log . e ( LOG_TAG , ( "getSkuDetails()<seq2seq4repair_space>failed:<seq2seq4repair_space>" + response ) ) ; return null ; } else { Log . e ( LOG_TAG , "getSkuDetails()<seq2seq4repair_space>returned<seq2seq4repair_space>a<seq2seq4repair_space>bundle<seq2seq4repair_space>with<seq2seq4repair_space>neither<seq2seq4repair_space>an<seq2seq4repair_space>error<seq2seq4repair_space>nor<seq2seq4repair_space>a<seq2seq4repair_space>detail<seq2seq4repair_space>list." ) ; return null ; } } ArrayList < String > responseList = skuDetails . getStringArrayList ( GooglePlay . RESPONSE_GET_SKU_DETAILS_LIST ) ; if ( ( responseList . size ( ) ) == 1 ) { JSONObject ret = new JSONObject ( responseList . get ( 0 ) ) ; if ( Teak . isDebug ) { Log . d ( LOG_TAG , ( "SKU<seq2seq4repair_space>Details:<seq2seq4repair_space>" + ( ret . toString ( 2 ) ) ) ) ; } return ret ; } else { Log . e ( LOG_TAG , "Mismatched<seq2seq4repair_space>input//output<seq2seq4repair_space>length<seq2seq4repair_space>for<seq2seq4repair_space>getSkuDetails()." ) ; } } catch ( Exception e ) { Log . e ( LOG_TAG , ( "Reflection<seq2seq4repair_space>error:<seq2seq4repair_space>" + ( Log . getStackTraceString ( e ) ) ) ) ; } return null ; } int getResponseCodeFromBundle ( Bundle b ) { } int getResponseCodeFromIntent ( Intent i ) { } public void checkActivityResultForPurchase ( int resultCode , Intent data ) { } }

Fix:
Bundle skuDetails = ( ( Bundle ) ( m . invoke ( mService , 3 , mContext . getPackageName ( ) , itemType , querySkus ) ) ) ;