Buggy code:
public abstract class AdjustSociomantic { public static final String SCMCategory = "category" ; public static final String SCMProducts = "products" ; public static final String SCMProductName = "fn" ; public static final String SCMSalePrice = "price" ; public static final String SCMAmount = "amount" ; public static final String SCMCurrency = "currency" ; public static final String SCMProductURL = "url" ; public static final String SCMProductImageURL = "photo" ; public static final String SCMBrand = "brand" ; public static final String SCMDescription = "description" ; public static final String SCMTimestamp = "date" ; public static final String SCMValidityTimestamp = "valid" ; public static final String SCMQuantity = "quantity" ; public static final String SCMScore = "score" ; public static final String SCMProductID = "identifier" ; public static final String SCMActionConfirmed = "confirmed" ; public static final String SCMCustomerAgeGroup = "agegroup" ; public static final String SCMCustomerEducation = "education" ; public static final String SCMCustomerGender = "gender" ; public static final String SCMCustomerID = "identifier" ; public static final String SCMCustomerMHash = "mhash" ; public static final String SCMCustomerSegment = "segment" ; public static final String SCMCustomerTargeting = "targeting" ; public static final String SCMTransaction = "transaction" ; private static final List < String > productAliases = Arrays . asList ( AdjustSociomantic . SCMCategory , AdjustSociomantic . SCMProductName , AdjustSociomantic . SCMSalePrice , AdjustSociomantic . SCMAmount , AdjustSociomantic . SCMCurrency , AdjustSociomantic . SCMProductURL , AdjustSociomantic . SCMProductImageURL , AdjustSociomantic . SCMBrand , AdjustSociomantic . SCMDescription , AdjustSociomantic . SCMTimestamp , AdjustSociomantic . SCMValidityTimestamp , AdjustSociomantic . SCMQuantity , AdjustSociomantic . SCMScore ) ; private static final List < String > basketAliases = Arrays . asList ( AdjustSociomantic . SCMProductID , AdjustSociomantic . SCMAmount , AdjustSociomantic . SCMCurrency , AdjustSociomantic . SCMQuantity ) ; private static final List < String > saleAliases = Arrays . asList ( AdjustSociomantic . SCMAmount , AdjustSociomantic . SCMCurrency ) ; private static final List < String > customerAliases = Arrays . asList ( AdjustSociomantic . SCMCustomerAgeGroup , AdjustSociomantic . SCMCustomerEducation , AdjustSociomantic . SCMCustomerGender , AdjustSociomantic . SCMCustomerID , AdjustSociomantic . SCMCustomerMHash , AdjustSociomantic . SCMCustomerSegment , AdjustSociomantic . SCMCustomerTargeting ) ; private static String adpanId ; private static ILogger logger = AdjustFactory . getLogger ( ) ; public static void injectPartnerIdInSociomanticEvents ( String newAdpanId ) { } public static void injectCustomerDataIntoEvent ( AdjustEvent event , Map < String , String > customerData ) { } public static void injectHomePageIntoEvent ( AdjustEvent event ) { } public static void injectViewListingIntoEvent ( AdjustEvent event , List < String > categories ) { } public static void injectViewListingIntoEvent ( AdjustEvent event , List < String > categories , String date ) { } public static void injectProductIntoEvent ( AdjustEvent event , String productId ) { } public static void injectProductIntoEvent ( AdjustEvent event , String productId , Map < String , Object > parameters ) { if ( null == event ) { AdjustSociomantic . logger . error ( "Event<seq2seq4repair_space>object<seq2seq4repair_space>is<seq2seq4repair_space>required." ) ; return ; } if ( ( null == productId ) || ( "" . equals ( productId ) ) ) { AdjustSociomantic . logger . error ( "Product<seq2seq4repair_space>ID<seq2seq4repair_space>is<seq2seq4repair_space>required." ) ; return ; } Map < String , List < Map < String , Object > > > po = new HashMap < > ( 1 ) ; List < Map < String , Object > > productList ; Map < String , Object > product ; if ( null != parameters ) { product = AdjustSociomantic . filter ( parameters , AdjustSociomantic . productAliases ) ; } else { product = new HashMap < String , Object > ( ) ; } <START_BUG> product . put ( AdjustSociomantic . SCMProductID , product ) ; <END_BUG> productList = Arrays . asList ( product ) ; po . put ( AdjustSociomantic . SCMProducts , productList ) ; AdjustSociomantic . addPartnerParameter ( event , "socio_po" , AdjustSociomantic . stringify ( po ) ) ; } public static void injectCartIntoEvent ( AdjustEvent event , List products ) { } public static void injectConfirmedTransactionIntoEvent ( AdjustEvent event , String transactionID , List products ) { } public static void injectConfirmedTransactionIntoEvent ( AdjustEvent event , String transactionID , List products , Map < String , Object > parameters ) { } public static void injectTransactionIntoEvent ( AdjustEvent event , String transactionID , List products ) { } public static void injectTransactionIntoEvent ( AdjustEvent event , String transactionID , List products , Map < String , Object > parameters ) { } private static void injectTransactionIntoEvent ( AdjustEvent event , String transactionID , List products , Map < String , Object > parameters , Boolean confirmed ) { } public static void injectLeadIntoEvent ( AdjustEvent event , String leadID ) { } public static void injectLeadIntoEvent ( AdjustEvent event , String leadID , Boolean confirmed ) { } private static void addPartnerParameter ( AdjustEvent event ) { } private static void addPartnerParameter ( AdjustEvent event , String parameter , String json ) { } private static Map < String , Object > filter ( Map < String , Object > parameters , List < String > aliases ) { } private static List < String > filterStringArray ( List list ) { } private static String stringify ( Object o ) { } }

Fix:
product . put ( AdjustSociomantic . SCMProductID , productId ) ;