+ Start a Discussion
Laurent LemazurierLaurent Lemazurier 

[APEX] System.NullPointerException: Attempt to de-reference a null object



I'm trying to create a button from account page, to let the user create an opportunity linked to this account.


Here is the code I wrote to do that. 

Notice, I'm a beginner and I've just copy an existing code wich working well.

The code works but an error occurs while exeuting test methods:

 System.NullPointerException: Attempt to de-reference a null object.

on this line 

PageReference p = new PageReference(Constants.RECORD_TYPE_URL);

public with sharing class New_Opportunity_On_Account

  private string AccountId;
  public New_Opportunity_On_Account()
      AccountId = ApexPages.currentPage().getParameters().get('id');

  public Pagereference init()
    PageReference p = new PageReference(Constants.RECORD_TYPE_URL);
    string save_Url = Constants.OPPORTUNITY_EDIT_URL + '?nooverride=1&';
    save_Url +=  constants.ACCOUNT_ID_FIELD_ID + '=' + AccountId  + '&' +
        constants.CLOSED_DATE_FIELD_ID +'=' +constants.CLOSED_DATE + '&' +  
        constants.RET_URL + '=' + '/'+AccountId;
    return p;
  public static testMethod void test()
    Account acc = New Account();
    insert acc;
    PageReference p  = Page.New_Opportunity_On_Account;
    New_Opportunity_On_Account vf = new New_Opportunity_On_Account();




It seems to be due to the record type selection step.

I tried this and have no more error:


 public Pagereference init()
    string save_url ='/006/e?nooverride=1&opp4_lkid=001R000000iv3fc +'&' +
                    constants.CLOSED_DATE_FIELD_ID +'='
                        +constants.CLOSED_DATE +'&'+constants.RET_URL +'=/'+AccountId;  
    PageReference p = new PageReference(save_url);
return p;



But I don't know why ... and why the original code doesn't generate any error message.

Is there somebody who can help me understand?


(Please use easy english without any expression :) )



Ritesh AswaneyRitesh Aswaney


Can you check what is the variable assigned to RECORD_TYPE_URL in the Contants class