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
devloper sfdcdevloper sfdc 

Error Display "Attempt to de-reference a null object"

Hello All ,

I am getting error Message "Attempt to de-reference a null object"  when we run "permissionSett()" this method .
My Apex code is here please help me .
public class DeepcloneUser {
    Public String fName {set;get;}
    Public String lName {set;get;}
    Public static String eMail {set;get;}
    public static Id conId {set;get;}
    Public Contact c;
    Public static User u;
    public Static User[] uid;
    Public set<Id> CloneId;
    Public static Set<Id> permiId;
    public static PermissionSetAssignment[] Listperm;
    public static list<PermissionSetAssignment> Listpermission;
    
     public DeepcloneUser(ApexPages.StandardController stdController) {
          // conId=apexpages.currentpage().getparameters().get('id');
        CloneId=new Set<Id>();
        permiId=new Set<Id>(); 
         Listpermission=new List<PermissionSetAssignment>();
     }
     @future 
    Public static void CreateUser(String fname,String LName,String Email,Id Cid,String Pid ,String nickname)
    {
        u=new user();
       // String alias = 'aaa';
            
    
        
        u.FirstName=fname;
        u.LastName=lName;
        u.Email=eMail;
        u.Username=email;
        u.ProfileId=Pid;
       u.ContactId=cid;
       
        //u.CommunityNickname=attributes.get('u.CommunityNickname');   
        u.CommunityNickname=nickname;
        u.EmailEncodingKey='UTF-8';
        u.LocaleSidKey='en_US';
        u.Alias='snsa';
        u.LanguageLocaleKey='en_US';
        u.TimeZoneSidKey='GMT';
        insert u;
    }
    
     @InvocableMethod
   public static void GetDetail()
   {
     
          conId=apexpages.currentpage().getparameters().get('id');  
       
   
       Contact[] co=[select id,firstName,Community_Nickname__c, Clone_Contact__c,LastName, Email from contact where id=:conId limit 1];
     
       //String cCid=co[0].id;
       String ffname=co[0].firstName;
       String llname=co[0].lastName;
       String eemail=co[0].email;
       String nnickname=co[0].Community_Nickname__c;
      // String pfid='00ed00000019frTAAQ';
       String Clone=co[0].Clone_Contact__c;
        uid=[select id, profileid from user where contactid=:Clone limit 1];
      
      
       String pfid=uid[0].profileid;       
     CreateUser(ffname,ffname,eemail,conId,pfid,nnickname);
 
      //Listperm=[SELECT Id FROM PermissionSetAssignment  WHERE AssigneeId=:uid[0].id];
      }
    public void permissionSett()
    {
       List<PermissionSetAssignment> lstp=new list<PermissionSetAssignment>();
        List<PermissionSetAssignment> lstcloUserpert=[SELECT Id, PermissionSet.Name,AssigneeId
                                                                FROM PermissionSetAssignment
                                                                WHERE AssigneeId = :uid[0].id];
        conId=apexpages.currentpage().getparameters().get('id');   
        User Userid=[select id from user where contactId=:ConId limit 1];
       for(PermissionSetAssignment p:lstcloUserpert)
       {
        PermissionSetAssignment pmr=new PermissionSetAssignment();
        pmr.AssigneeId=userId.id;
         pmr.PermissionSetId=p.id;
           lstp.add(pmr);
           
           
           
       }
               
        
       upsert lstp;
        
    }
}
devedeve
Hi,

Please check the values of all the variables you are using in this method(that they are not null) like:
uid[0].id
ConId 


Try this code:

public void permissionSett()
    {
       List<PermissionSetAssignment> lstp=new list<PermissionSetAssignment>();
        If(uid[0].id!=null) {
            List<PermissionSetAssignment> lstcloUserpert=[SELECT Id, PermissionSet.Name,AssigneeId
                                                                FROM PermissionSetAssignment
                                                                WHERE AssigneeId = :uid[0].id];
            conId=apexpages.currentpage().getparameters().get('id');
             if(  ConId != null) {
                 User Userid=[select id from user where contactId=:ConId limit 1];
                    for(PermissionSetAssignment p:lstcloUserpert)
                     {
                        PermissionSetAssignment pmr=new PermissionSetAssignment();
                        pmr.AssigneeId=userId.id;
                          pmr.PermissionSetId=p.id;
                         lstp.add(pmr);  
                       }
               }
      }
       upsert lstp;
        
    }

 
devloper sfdcdevloper sfdc
After using you code  probem is same not solve
 
devedeve
Ok Can you provide line in which you are getting error?
devloper sfdcdevloper sfdc
Attempt to de-reference a null object
Error is in expression '{!permissionSett}' in component <apex:commandButton> in page deepclonevisualforcepage: Class.DeepcloneUser.permissionSett: line 72, column 1
 
Raj VakatiRaj Vakati
try this 
 
public void permissionSett()
    {
		If(uid[0].id!=null){
       List<PermissionSetAssignment> lstp=new list<PermissionSetAssignment>();
        List<PermissionSetAssignment> lstcloUserpert=[SELECT Id, PermissionSet.Name,AssigneeId
                                                                FROM PermissionSetAssignment
                                                                WHERE AssigneeId = :uid[0].id];
        conId=apexpages.currentpage().getparameters().get('id');   
        User Userid=[select id from user where contactId=:ConId limit 1];
       for(PermissionSetAssignment p:lstcloUserpert)
       {
        PermissionSetAssignment pmr=new PermissionSetAssignment();
        pmr.AssigneeId=userId.id;
         pmr.PermissionSetId=p.id;
           lstp.add(pmr);
           
           
           
       }
               
        
       upsert lstp;
		}
        
    }
}