function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Jyosi jyosiJyosi jyosi 

Attempt to de-reference a null object in trigger

Hello Everyone,

I am getting this error

Class.ProductTrainingTriggerHandler.DuplicateCheck: line 45, column 1 Trigger.Repproducttraining: line 6, column 1 18:18:43.109 (109971433)|FATAL_ERROR|System.NullPointerException: Attempt to de-reference a null object

Below Is the Handler Class
public class ProductTrainingTriggerHandler
{
  public void DuplicateCheck(List<Rep_Product_Training__c> ListProductTrainingValues, Map<Id,Rep_Product_Training__c> oldMap)
  {
       List<String> RepIds = new List<String>();
      for(Rep_Product_Training__c ListRegistrationValue : ListProductTrainingValues)
      {
         RepIds.add(ListRegistrationValue.Contact__c);
         RepIds.add(ListRegistrationValue.Name);
      }
        Map<String,Set<String>> RepProductTrainingSetMap = new Map<String,Set<String>>();
        List<Rep_Product_Training__c> RepProductTraining = [SELECT Contact__c,Name,Training_Completion_Date__c 
                                                         FROM Rep_Product_Training__c WHERE Contact__c IN :RepIds AND Name IN:RepIds];
     system.debug('Error Values @@@@@@@@@@'+RepProductTraining);
      if(RepProductTraining.size()>0)
       {
           system.debug('RepProductTrainingSize------------------->'+RepProductTraining.size());
         for(Rep_Product_Training__c ProductTrainings:RepProductTraining)
         {
             
             if(RepProductTrainingSetMap.get(ProductTrainings.Contact__c)!=null)
             {
                 system.debug('ProdcutTrainingName-------------->'+ProductTrainings.Contact__c);
                 system.debug('Rep Product Training Value'+RepProductTrainingSetMap.get(ProductTrainings.Contact__c));
                 if(ProductTrainings.Name!= null)             
                 RepProductTrainingSetMap.get(ProductTrainings.Contact__c).add(ProductTrainings.Name);
                 system.debug('Values=================>'+RepProductTrainingSetMap.get(ProductTrainings.Contact__c).add(ProductTrainings.Name));
              }
             
             else{
                 if(ProductTrainings.Name != null)
                     RepProductTrainingSetMap.put(ProductTrainings.Name,new Set<String>{ProductTrainings.Name});
                 }
         }
        for(Rep_Product_Training__c ListRegistrationValue : ListProductTrainingValues)
         {
              if(ListRegistrationValue.Name != null){
                  if(RepProductTrainingSetMap.get(ListRegistrationValue.Contact__c).contains(ListRegistrationValue.Name))
                      ListRegistrationValue.Name.addError('Duplicate value entered!');
          }
             
         }
     }   
     
 }
}

Trigger Class

trigger Repproducttraining on Rep_Product_Training__c (after insert,after update,before Update,before insert) 
{
    ProductTrainingTriggerHandler ProductTriggerHandler = new ProductTrainingTriggerHandler();
    if(Trigger.isBefore || Trigger.isUpdate) 
    {
        ProductTriggerHandler.DuplicateCheck(Trigger.New, Trigger.newMap);
    }
    if(Trigger.isInsert ||  Trigger.isBefore)
        {
             ProductTriggerHandler.DuplicateCheck(Trigger.New, Trigger.newMap);
        }
}

Can you please help me tp fix


Thanks 

Regards,
Jyo
Steve SpragueSteve Sprague
Please email me.  Thank you.
Tyler Mowbrey 1Tyler Mowbrey 1
Hello Jyo,

What is on line 45 in your ProductTriggerHandler class? Most likely the property you are setting has not been initialized.

Tyler
Jyosi jyosiJyosi jyosi
Its not going into this Loop

if(RepProductTrainingSetMap.get(ProductTrainings.Contact__c)!=null)
             {
                 system.debug('ProdcutTrainingName-------------->'+ProductTrainings.Contact__c);
                 system.debug('Rep Product Training Value'+RepProductTrainingSetMap.get(ProductTrainings.Contact__c));
                 if(ProductTrainings.Name!= null)             
                 RepProductTrainingSetMap.get(ProductTrainings.Contact__c).add(ProductTrainings.Name);
Tyler Mowbrey 1Tyler Mowbrey 1
Hi Jyosi,

Change

RepProductTrainingSetMap.get(ProductTrainings.Contact__c) != NULL

to

RepProductTrainingSetMap.containsKey(ProductTrainings.Contact__c)