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
ravindra reddyravindra reddy 

i got the error like System.NullPointerException: Attempt to de-reference a null object Class.myControllerExtension.getGreeting: line 12, column 1

Hi ,
i am writing extension class for account and when i am running the code i getting above error , here i am posting code also
public class myControllerExtension {
    private final Account acct;
    public myControllerExtension(ApexPages.StandardSetController stdController){
        this.acct=(Account)stdController.getRecord();
    }
    public String getGreeting(){
        return 'hello'+acct.name+'('+acct.id+')';
    }

}
vf page
apex:page standardController="Account" extensions="myControllerExtension" >
    {!greeting}
    <apex:form>
        <apex:inputField value="{!account.name}"/>
        <apex:commandButton value="save" action="{!save}"/>
    </apex:form>
</apex:page>

please help me to slove the issue
Best Answer chosen by ravindra reddy
Amit Chaudhary 8Amit Chaudhary 8
Please update your code like below
public class myControllerExtension 
{
    public Account acct {get;set;}
    public myControllerExtension(ApexPages.StandardController stdController)
    {
        acct=(Account)stdController.getRecord();
        if(acct.id != null)
        {
            acct = [select id,name from account where id = :acct.id ];
        }
    
    }
    public String getGreeting()
    {
        return 'hello'+acct.name+'('+acct.id+')';
    }

}
Page
<apex:page standardController="Account" extensions="myControllerExtension" >
    {!greeting}
    <apex:form >
        <apex:inputField value="{!acct.name}"/>
        <apex:commandButton value="save" action="{!save}"/>
    </apex:form>
</apex:page>
I tested same in my org. Let me know if you need any help

 

All Answers

Amit Chaudhary 8Amit Chaudhary 8
Please try to update your code like below
public class myControllerExtension 
{
    public Account acct {get;set;}
    public myControllerExtension(ApexPages.StandardSetController stdController)
	{
        acct=(Account)stdController.getRecord();
		if(acct.id != null)
		{
			acct = [select id,name from account where id = :acct.id ];
		}
	
	}
    public String getGreeting()
	{
        return 'hello'+acct.name+'('+acct.id+')';
    }

}

Page like below
<apex:page standardController="Account" extensions="myControllerExtension" >
    {!greeting}
    <apex:form>
        <apex:inputField value="{!acct.name}"/>
        <apex:commandButton value="save" action="{!save}"/>
    </apex:form>
</apex:page>

Let us know if this will help you
Amit GhadageAmit Ghadage
Hi ravindra reddy 18,
 instead of 
public myControllerExtension(ApexPages.StandardSetController stdController){

use
public myControllerExtension(ApexPages.StandardController stdController){

Best Regards,
Amit Ghadage.
ravindra reddyravindra reddy
Hi Amit Chaudhary 8,
i am  getting same error, even I am  update your code .
Thanks & Regards
Ravindra
 
Amit Chaudhary 8Amit Chaudhary 8
Please update your code like below
public class myControllerExtension 
{
    public Account acct {get;set;}
    public myControllerExtension(ApexPages.StandardController stdController)
    {
        acct=(Account)stdController.getRecord();
        if(acct.id != null)
        {
            acct = [select id,name from account where id = :acct.id ];
        }
    
    }
    public String getGreeting()
    {
        return 'hello'+acct.name+'('+acct.id+')';
    }

}
Page
<apex:page standardController="Account" extensions="myControllerExtension" >
    {!greeting}
    <apex:form >
        <apex:inputField value="{!acct.name}"/>
        <apex:commandButton value="save" action="{!save}"/>
    </apex:form>
</apex:page>
I tested same in my org. Let me know if you need any help

 
This was selected as the best answer
ravindra reddyravindra reddy
Thank you Amit Chaudhary 8,
now its woking