-
ChatterFeed
-
0Best Answers
-
0Likes Received
-
0Likes Given
-
1Questions
-
2Replies
Apex Error: System.NullPointerException: Attempt to de-reference a null object
Hi,
I try to upload an apex class from the sandbox to the prod. and receiving following error:
System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.ClsApplicationTrainingRequestController.getPickValues: line 57, column 1 Class.ClsAppTrainRequestController_Test.myUnitTest: line 52, column 1
The person who has created the custom code has left the company years ago and I have no apex skills. Can anyone please help me with this?
Apex Class
Test Class
Thanks in advance!
I try to upload an apex class from the sandbox to the prod. and receiving following error:
System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.ClsApplicationTrainingRequestController.getPickValues: line 57, column 1 Class.ClsAppTrainRequestController_Test.myUnitTest: line 52, column 1
The person who has created the custom code has left the company years ago and I have no apex skills. Can anyone please help me with this?
Apex Class
public class ClsApplicationTrainingRequestController { public Application_Training_Request__c appRequest {get;set;} public Id trainRecordType; public ClsApplicationTrainingRequestController(ApexPages.StandardController stdController){ Id oppyId = System.currentPageReference().getParameters().get('oppyId'); Opportunity oppy = [Select OwnerId,AccountId,Market_sub_Segment__c,Market_Segment__c,Id,Business_Unit__c,BNG_Strategic_Market__c From Opportunity where id=:oppyId]; appRequest = new Application_Training_Request__c(); if(oppyId != null){ appRequest.opportunity_name__c = oppyId; //appRequest.market_segment__c = oppy.market_segment__c; //appRequest.market_subsegment__c = oppy.market_sub_segment__c; appRequest.business_unit__c = oppy.business_unit__c; appRequest.opportunity_owner__c = oppy.ownerid; //appRequest.bng_strategic_market__c = oppy.bng_strategic_market__c; appRequest.account_name__c = oppy.accountid; List<OpportunityCompetitor> oppyCompetitorList = [SELECT OpportunityId, Id, CompetitorName FROM OpportunityCompetitor where OpportunityId =:oppyId]; String competitors = ''; Map<String,String> resutlMap = new Map<String,String>(); System.debug('---oppyCompetitorList'); for(OpportunityCompetitor oppyComp : oppyCompetitorList){ System.debug(resutlMap + '---resutlMap' + oppyComp.competitorname); if(!resutlMap.containsKey(oppyComp.competitorname)){ if(competitors != ''){ competitors += ';'; } competitors += oppyComp.competitorname; resutlMap.put(oppyComp.competitorname,oppyComp.competitorname); System.debug(competitors + '----' + oppyComp.competitorname); } } appRequest.competitor__c = competitors; } } public List<RecordType> getRecordTypeList(){ List<RecordType> recordList = [Select Name,Id,Description,developername From RecordType where SobjectType='Application_Training_Request__c']; for(RecordType rt : recordList){ if('Training_Request'.equals(rt.developername)){ trainRecordType = rt.id; } } return recordList; } public List<selectOption> getPickValues(Sobject object_name, String field_name, String first_val) { List<selectOption> options = new List<selectOption>(); //new list for holding all of the picklist options if (first_val != null) { //if there is a first value being provided options.add(new selectOption(first_val, first_val)); //add the first option } Schema.sObjectType sobject_type = object_name.getSObjectType(); //grab the sobject that was passed Schema.DescribeSObjectResult sobject_describe = sobject_type.getDescribe(); //describe the sobject Map<String, Schema.SObjectField> field_map = sobject_describe.fields.getMap(); //get a map of fields for the passed sobject List<Schema.PicklistEntry> pick_list_values = field_map.get(field_name).getDescribe().getPickListValues(); //grab the list of picklist values for the passed field on the sobject for (Schema.PicklistEntry a : pick_list_values) { //for all values in the picklist list options.add(new selectOption(a.getValue(), a.getLabel())); //add the value and label to our final list } System.debug('--options' + options); return options; //return the List } public PageReference saveRequest(){ try{ system.debug('www saveRequet appRequest : ' + appRequest); if(appRequest.recordtypeid != trainRecordType){ //appRequest.request_type__c = 'Sample Analysis'; //appRequest.permission_on_sample_preparation__c = 'permitted'; //appRequest.sample_status_indicator__c = 'received'; } insert appRequest; System.debug('--appRequest---' + appRequest); PageReference requestPage = new ApexPages.StandardController(appRequest).view(); requestPage.setRedirect(true); return requestPage; }catch(Exception ex){ ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, ex.getStackTraceString())); ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage())); System.debug('Method---:saveRequest-- linenumber :' + ex.getLineNumber() + '---message:' + ex.getMessage()); return null; } } }
Test Class
/** * This class contains unit tests for validating the behavior of Apex classes * and triggers. * * Unit tests are class methods that verify whether a particular piece * of code is working properly. Unit test methods take no arguments, * commit no data to the database, and are flagged with the testMethod * keyword in the method definition. * * All test methods in an organization are executed whenever Apex code is deployed * to a production organization to confirm correctness, ensure code * coverage, and prevent regressions. All Apex classes are * required to have at least 75% code coverage in order to be deployed * to a production organization. In addition, all triggers must have some code coverage. * * The @isTest class annotation indicates this class only contains test * methods. Classes defined with the @isTest annotation do not count against * the organization size limit for all Apex scripts. * * See the Apex Language Reference for more information about Testing and Code Coverage. */ @isTest private class ClsAppTrainRequestController_Test { /*static testMethod void myUnitTest() { Account acc = new Account(); acc.Name = 'jinbo test accoutn13'; insert acc; Opportunity oppy = new Opportunity(); oppy.AccountId = acc.Id; oppy.StageName = 'Closed Lost'; oppy.Name = 'test oppy name'; oppy.CloseDate = system.today(); insert oppy; OpportunityCompetitor oppyComp = new OpportunityCompetitor(); oppyComp.competitorname = 'Atominstitut Wien'; oppyComp.opportunityid = oppy.id; insert oppyComp; OpportunityCompetitor oppyComp2 = new OpportunityCompetitor(); oppyComp2.competitorname = 'Bowman'; oppyComp2.opportunityid = oppy.id; insert oppyComp2; List<RecordType> recordList = [Select Name,Id,Description,developername From RecordType where SobjectType='Application_Training_Request__c' and developername='Application_Request']; System.currentPageReference().getParameters().put('oppyId',oppy.id); ApexPages.StandardController extController = new ApexPages.StandardController(new Application_Training_Request__c()); ClsApplicationTrainingRequestController contr = new ClsApplicationTrainingRequestController(extController); contr.getRecordTypeList(); contr.saveRequest(); contr.getPickValues(new Application_Training_Request__c(),'request_type__c',null); if(recordList != null && !recordList.isEmpty()) contr.appRequest.recordtypeid = recordList.get(0).id; }*/ }
Thanks in advance!
- Quang Bui 15
- March 05, 2020
- Like
- 0
Apex Error: System.NullPointerException: Attempt to de-reference a null object
Hi,
I try to upload an apex class from the sandbox to the prod. and receiving following error:
System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.ClsApplicationTrainingRequestController.getPickValues: line 57, column 1 Class.ClsAppTrainRequestController_Test.myUnitTest: line 52, column 1
The person who has created the custom code has left the company years ago and I have no apex skills. Can anyone please help me with this?
Apex Class
Test Class
Thanks in advance!
I try to upload an apex class from the sandbox to the prod. and receiving following error:
System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.ClsApplicationTrainingRequestController.getPickValues: line 57, column 1 Class.ClsAppTrainRequestController_Test.myUnitTest: line 52, column 1
The person who has created the custom code has left the company years ago and I have no apex skills. Can anyone please help me with this?
Apex Class
public class ClsApplicationTrainingRequestController { public Application_Training_Request__c appRequest {get;set;} public Id trainRecordType; public ClsApplicationTrainingRequestController(ApexPages.StandardController stdController){ Id oppyId = System.currentPageReference().getParameters().get('oppyId'); Opportunity oppy = [Select OwnerId,AccountId,Market_sub_Segment__c,Market_Segment__c,Id,Business_Unit__c,BNG_Strategic_Market__c From Opportunity where id=:oppyId]; appRequest = new Application_Training_Request__c(); if(oppyId != null){ appRequest.opportunity_name__c = oppyId; //appRequest.market_segment__c = oppy.market_segment__c; //appRequest.market_subsegment__c = oppy.market_sub_segment__c; appRequest.business_unit__c = oppy.business_unit__c; appRequest.opportunity_owner__c = oppy.ownerid; //appRequest.bng_strategic_market__c = oppy.bng_strategic_market__c; appRequest.account_name__c = oppy.accountid; List<OpportunityCompetitor> oppyCompetitorList = [SELECT OpportunityId, Id, CompetitorName FROM OpportunityCompetitor where OpportunityId =:oppyId]; String competitors = ''; Map<String,String> resutlMap = new Map<String,String>(); System.debug('---oppyCompetitorList'); for(OpportunityCompetitor oppyComp : oppyCompetitorList){ System.debug(resutlMap + '---resutlMap' + oppyComp.competitorname); if(!resutlMap.containsKey(oppyComp.competitorname)){ if(competitors != ''){ competitors += ';'; } competitors += oppyComp.competitorname; resutlMap.put(oppyComp.competitorname,oppyComp.competitorname); System.debug(competitors + '----' + oppyComp.competitorname); } } appRequest.competitor__c = competitors; } } public List<RecordType> getRecordTypeList(){ List<RecordType> recordList = [Select Name,Id,Description,developername From RecordType where SobjectType='Application_Training_Request__c']; for(RecordType rt : recordList){ if('Training_Request'.equals(rt.developername)){ trainRecordType = rt.id; } } return recordList; } public List<selectOption> getPickValues(Sobject object_name, String field_name, String first_val) { List<selectOption> options = new List<selectOption>(); //new list for holding all of the picklist options if (first_val != null) { //if there is a first value being provided options.add(new selectOption(first_val, first_val)); //add the first option } Schema.sObjectType sobject_type = object_name.getSObjectType(); //grab the sobject that was passed Schema.DescribeSObjectResult sobject_describe = sobject_type.getDescribe(); //describe the sobject Map<String, Schema.SObjectField> field_map = sobject_describe.fields.getMap(); //get a map of fields for the passed sobject List<Schema.PicklistEntry> pick_list_values = field_map.get(field_name).getDescribe().getPickListValues(); //grab the list of picklist values for the passed field on the sobject for (Schema.PicklistEntry a : pick_list_values) { //for all values in the picklist list options.add(new selectOption(a.getValue(), a.getLabel())); //add the value and label to our final list } System.debug('--options' + options); return options; //return the List } public PageReference saveRequest(){ try{ system.debug('www saveRequet appRequest : ' + appRequest); if(appRequest.recordtypeid != trainRecordType){ //appRequest.request_type__c = 'Sample Analysis'; //appRequest.permission_on_sample_preparation__c = 'permitted'; //appRequest.sample_status_indicator__c = 'received'; } insert appRequest; System.debug('--appRequest---' + appRequest); PageReference requestPage = new ApexPages.StandardController(appRequest).view(); requestPage.setRedirect(true); return requestPage; }catch(Exception ex){ ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, ex.getStackTraceString())); ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, ex.getMessage())); System.debug('Method---:saveRequest-- linenumber :' + ex.getLineNumber() + '---message:' + ex.getMessage()); return null; } } }
Test Class
/** * This class contains unit tests for validating the behavior of Apex classes * and triggers. * * Unit tests are class methods that verify whether a particular piece * of code is working properly. Unit test methods take no arguments, * commit no data to the database, and are flagged with the testMethod * keyword in the method definition. * * All test methods in an organization are executed whenever Apex code is deployed * to a production organization to confirm correctness, ensure code * coverage, and prevent regressions. All Apex classes are * required to have at least 75% code coverage in order to be deployed * to a production organization. In addition, all triggers must have some code coverage. * * The @isTest class annotation indicates this class only contains test * methods. Classes defined with the @isTest annotation do not count against * the organization size limit for all Apex scripts. * * See the Apex Language Reference for more information about Testing and Code Coverage. */ @isTest private class ClsAppTrainRequestController_Test { /*static testMethod void myUnitTest() { Account acc = new Account(); acc.Name = 'jinbo test accoutn13'; insert acc; Opportunity oppy = new Opportunity(); oppy.AccountId = acc.Id; oppy.StageName = 'Closed Lost'; oppy.Name = 'test oppy name'; oppy.CloseDate = system.today(); insert oppy; OpportunityCompetitor oppyComp = new OpportunityCompetitor(); oppyComp.competitorname = 'Atominstitut Wien'; oppyComp.opportunityid = oppy.id; insert oppyComp; OpportunityCompetitor oppyComp2 = new OpportunityCompetitor(); oppyComp2.competitorname = 'Bowman'; oppyComp2.opportunityid = oppy.id; insert oppyComp2; List<RecordType> recordList = [Select Name,Id,Description,developername From RecordType where SobjectType='Application_Training_Request__c' and developername='Application_Request']; System.currentPageReference().getParameters().put('oppyId',oppy.id); ApexPages.StandardController extController = new ApexPages.StandardController(new Application_Training_Request__c()); ClsApplicationTrainingRequestController contr = new ClsApplicationTrainingRequestController(extController); contr.getRecordTypeList(); contr.saveRequest(); contr.getPickValues(new Application_Training_Request__c(),'request_type__c',null); if(recordList != null && !recordList.isEmpty()) contr.appRequest.recordtypeid = recordList.get(0).id; }*/ }
Thanks in advance!
- Quang Bui 15
- March 05, 2020
- Like
- 0