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
Mahendiran Jayavarma 24Mahendiran Jayavarma 24 

Attempt to de-reference a null object beforeUpdate

Hi ,

I am getting Attempt to de-reference a null object  in production but not in sandbox? is there any clue to fix them.

Class.TriggerClass.setBrandCodeFromPlacementHeader: line 62, column 1 Class.TriggerClass.beforeUpdate: line 14, column 1 Class.BaseTriggerClass.onBeforeUpdate: line 134, column 1 Class.BaseTriggerClass.execute: line 26, column 1 Trigger.CTAInvoiceTrigger: line 4, column 1 13:21:11.0 (175680955)|FATAL_ERROR|System.NullPointerException: Attempt to de-reference a null object

 
Ravi Dutt SharmaRavi Dutt Sharma
Can you please post the trigger here?
Mahendiran Jayavarma 24Mahendiran Jayavarma 24
public with sharing class TriggerClass extends BaseTriggerClass {
protected override void beforeUpdate(Map<Id, SObject> newRecordMap, Map< Id, SObject> oldRecordMap) {
        setBrandCodeFromPlacementHeader( (List<CTA_Invoice__c>)newRecordMap.values() );
       
    }


    private void setBrandCodeFromPlacementHeader( List<CTA_Invoice__c> invoices ) {
        Set<Id> headerIds = new Set<Id>();
        for( CTA_Invoice__c invoice : invoices ){
            if( invoice.Placement_Header__c != NULL ) {
                headerIds.add( invoice.Placement_Header__c );
            }
        }
        Map<Id, Placement_Header__c> headers = new Map<Id, Placement_Header__c>([SELECT Id, brand__c FROM Placement_Header__c WHERE Id IN :headerIds]);

        for( CTA_Invoice__c invoice : invoices ){
            if( invoice.Placement_Header__c != NULL ) {
                invoice.Brand__c = headers.get( invoice.Placement_Header__c ).Brand__c;
            }
        }
    }

}