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
RbnRbn 

Re:Attempt to de-reference a Null Object

Hi,

 

i am getting Attempt to de-reference a null Object in my Trigger.

 

Below is my Trigger

Trigger GroupCreation on IA_Team__c (before insert,after delete,after update)
{
    Group grp = new Group();
    list<Group> gplist=new list<Group>();
    List<String> Groupid = new List<String>();
    List<String> UserOfGroupId = new List<String>();
    List<String> IAmemberid = new List<String>();
        
    if(trigger.isinsert)
    {
        map<string,string> IAGroup=new map<string,string>();
        for(IA_Team__c ev:Trigger.New){
        grp = new Group();
        grp.Name = ev.Name;
        grp.DeveloperName = ev.Public_Group_Name__c;
        IAGroup.put(grp.DeveloperName,ev.id);
        
        gplist.add(grp);
        grp = new Group();
        }
        system.debug('@@@@'+gplist);
        //try and catych ... add error mesages
        insert gplist;
        system.debug('@@@@'+gplist);
        string temp='';
        
        for(Group gp:gplist){
        temp = IAGroup.get(gp.DeveloperName);
            for(IA_Team__c ev:Trigger.New){
                if(ev.id == temp){
                
                    ev.Unique_Group_Id__c=gp.id;
                    ev.Team_Linked_To_Group__c=True;
                    
                    Groupid.add(gp.id);
                    UserOfGroupId.add(ev.Team_Owner__c);
                }
            
            }
        
        }
		
        
        TeamMemberHandler.createGroupMembers(Groupid,userofGroupid,IAmemberid);
    }
	
	 if(trigger.isupdate)
	 {
	  map<string,string> oldowner=new map<string,string>();
	  map<string,string> newowner=new map<string,string>();
	   map<string,string> oldname=new map<string,string>();
	  map<string,string> newname=new map<string,string>();
		
	    map<string,string> newdevname=new map<string,string>();
        for(IA_Team__c ev:Trigger.old){
        oldowner.put(ev.Unique_Group_Id__c,ev.Team_Owner__c);
		oldname.put(ev.Unique_Group_Id__c,ev.name);
        }
		for(IA_Team__c ev:Trigger.new){
        newowner.put(ev.Unique_Group_Id__c,ev.Team_Owner__c);
		newname.put(ev.Unique_Group_Id__c,ev.name);
		newdevname.put(ev.Unique_Group_Id__c,ev.Public_Group_Name__c);
        }
		
		map<id,group> groupsoldandnew = new map<id,group>([select id,name,DeveloperName from group where id  in: oldname.keyset()]);
		
		for(string str: oldname.keyset()){
			if(str != newname.get(str)){
			Group grp1;
		    grp1 = new Group();
			grp1 = groupsoldandnew.get(str);/*here i am getting attempt to deference a null object
			grp1.name=newname.get(str);
			grp1.DeveloperName=newdevname.get(str);
			
			gplist.add(grp1);
			}
		}
		if(gplist.size()>0){
		update gplist;
		}

 Thanks in Advance

Dhaval PanchalDhaval Panchal
Try to check below condition before retrieving group object from map
groupsoldandnew

if(groupsoldandnew.containsKey(str)==true)