You need to sign in to do that
Don't have an account?

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;
}
}
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;
}
}
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;
}
Error is in expression '{!permissionSett}' in component <apex:commandButton> in page deepclonevisualforcepage: Class.DeepcloneUser.permissionSett: line 72, column 1